Y@SiN
11-19-2009, 07:21 PM
ايتنا - در توليد نرمافزار نکاتي وجود دارد که يا از طريق تجربه بدست مي آيد و يا از طريق مطالب نهفته در متون علمي. اما به دليل ماهيت پيچيده و متغير مفاهيم و روشهاي توسعه و توليد نرمافزار، استفاده از تجربيات سايرين در پروژههاي قبلي مي تواند بسيار راهگشا باشد و از بسياري دوبارهکاريها جلوگيري نمايد.
100 اصل در توليد و توسعه نرمافزار
امين نظارات - عضو هيئت مديره و مدير نرمافزار شرکت پويا رايانه دنا
Amin_Nezarat@hotmail.com
در توليد نرمافزار نکاتي وجود دارد که يا از طريق تجربه بدست مي آيد و يا از طريق مطالب نهفته در متون علمي. اما به دليل ماهيت پيچيده و متغير مفاهيم و روشهاي توسعه و توليد نرمافزار، استفاده از تجربيات سايرين در پروژههاي قبلي مي تواند بسيار راهگشا باشد و از بسياري دوبارهکاريها جلوگيري نمايد.
در اين مقاله سعي شده است به نکاتي اشاره شود که ميتواند شما را در اجراي پروژههاي نرمافزاري ياري دهد در پس هر يک از اين نکات مطالب بسياري نهفته است که با دقت در هر کدام از آنها ميتوان بخشي از مشکلات درگير در زمان اجراي پروژه را مرتفع نمود.
يکی از نکاتی که در اين مقاله آورده شده اين جمله است که «هرچه را میخوانيد باور نکنيد»، بنابراين هر يک از اين نکات را به دقت با دوستان و هم تيميهايتان بحث کرده و آنگاه به کار بريد.
1- کيفيت حرف اول را ميزند.
2- کيفيت در چشمان بيننده است.
3- کيفيت و کارائي دو جز، جدا نشدني هستند.
4- بالاترين کيفيت در نرمافزار امکان پذير است.
5- قابليت اعتماد کم، بدتر از کارايي کم است.
6- محصول را هر چه زودتر به مشتري/کاربر بدهيد.
7- دائما با مشتري/کاربر در ارتباط باشيد.
8- محرکهايي را براي برنامهنويسان و مشتريان ايجاد کنيد.
9- يک نمونه اوليه درست ارائه نمائيد(ProtoType).
10- قابليتهاي عملياتي را در نمونه اوليه بسازيد.
11- نمونه اوليه را خيلي سريع بسازيد.
12- سيستم را به صورت افزايشي توليد کنيد.
13- بيشتر ببينيد تا احساس ضرورت بيشتري کنيد.
14- تغييرات در زمان توسعه نرمافزار اجتناب ناپذير است.
15- در صورت امکان، بجاي توليد اجزا، آنها را بخريد.
16- بعد از توليد نرمافزار نياز به يک راهنماي کاربري کوچک داريد.
17- هر مسئله پيچيده اي راه حلي دارد.
18- فرضياتتان را ثبت کنيد.
19- تکنولوژي قبل از ابزار اهميت دارد.
20- از ابزارها استفاده کنيد اما واقع بين باشيد.
21- هميشه ابزارهاي خوب را به مهندسين خوب بدهيد.
22- دانستن «چه موقع» مهم تر از دانستن «چطور» است.
23- زماني که به اهدافتان رسيديد پروژه را متوقف کنيد.
24- روشهاي مرسوم توسعه نرمافزار را خوب بشناسيد.
25- تکنولوژي را هرگز فراموش نکنيد.
26- از استانداردهاي مستندسازي استفاده نمائيد.
27- هر مستندي به واژه نامه نياز دارد.
28- هر مستندي به يک فهرست نياز دارد.
29- براي مفاهيم يکسان از اسامي يکسان استفاده نمائيد.
30- مفاهيم را جستوجو کنيد و سپس انتقال بدهيد.
31- مسئوليت پذير باشيد.
32- نيازمنديهاي ضعيف زمينه برآورد هزينه اشتباه است.
33- قبل از ثبت نيازمنديها، مسئله را تعريف کنيد.
34- خطاها را در توضيحات نيازمنديها شناسايي و برطرف نمائيد.
35- نمونه اوليه، ريسک انتخاب UI مناسب را کم مي کند.
36- اينکه نيازمنديها شامل چه چيزهايي هستند را به خوبي ثبت نمائيد.
37- زيرسيستمها را به خوبي شناسايي کنيد.
38- نيازمنديها را بازبيني نمائيد.
39- از طراحي در مرحله شناخت نيازمنديها اجتناب کنيد.
40- به نيازمنديها از زواياي مختلف نگاه کنيد.
41- نيازمنديها را اولويت بندي کنيد.
42- خلاصه نويسي کنيد.
43- ابهام را در نيازمنديها برطرف نمائيد.
44- قبل از تبديل به هرگونه مدل رسمي، نيازمنديها را به صورت توضيحات زمان طبيعي بنويسيد.
45- انتقال از مرحله شناخت نيازمنديها به طراحي آسان نيست.
46- طراحي بدون مستندسازي طراحي نيست.
47- چرخ را دوباره اختراع نکنيد.
48- خطاهاي مفهومي بسيار مهم تر از خطاهاي Syntax مي باشند.
49- طراحي کنيد که تغييرات داشته باشيد.
50- طراحي را به گونه اي انجام دهيد که نگهداري آن امکان پذير باشد.
51- طراحي بايستي به نحوي باشد که خطاها به راحتي قابل تشخيص باشند.
52- از الگوريتمهاي با کارايي بالا استفاده نمائيد.
53- به کاربر فقط اطلاعاتي را نمايش دهيد که مورد نياز وي مي باشد.
54- طراحي بايستي چند بعدي باشد.
55- نرمافزاري که قصد توليد آن را داريد به خوبي بشناسيد.
56- « ورود اطلاعات نادرست –- خروج دادههاي غلط » را در پي دارد.
57- از به کار بردن متغيرهاي غير محلي خودداري نمائيد.
58- به شکلي کدنويسي نمائيد که بتوان آن را از بالا به پائين خواند.
59- مراقب اثرات جانبي کدي که مي نويسيد باشيد.
60- از اسامي با مفهوم در نامگذاري ها استفاده نمائيد.
61- قبل از اينکه به فکر سريع اجرا شدن کد باشيد به فکر درست کارکردن آن باشيد.
62- قبل از اينکه کد را به پايان برسانيد توضيحات آن را بنويسيد.
63- هر بخش از کد را جداگانه هم اجرا کنيد.
64- کد نوشته شده را مميزي کنيد.
65- از زبان برنامه نويسي مناسب استفاده کنيد.
66- کد نويسي را خيلي زود شروع نکنيد.
67- تست را از نيازمنديها شروع کنيد.
68- نرمافزار را خودتان تست نکنيد.
69- طرح تست را خودتان ننويسيد.
70- نيمي از خطاها در 15 درصد از کدها مي باشند.
71- هميشه از تست فشار استفاده نمائيد.
72- قبل از تست واحدها يکپارچه سازي را اعمال نکنيد.
73- مديريت قوي بسيار مهمتر از تکنولوژي قوي مي باشد.
74- هر چه را که مي خوانيد باور نکنيد.
75- نيروي انساني راه رسيدن به پيروزي مي باشد.
76- نيروي انساني خوب ولي کم بهتر است از نيروي انساني زياد ولي ضعيف.
77- به پرسنل تان گوش دهيد.
78- به نيروهايتان اطمينان کنيد.
79- مهارتهاي ايجاد ارتباط بسيار مهم مي باشند.
80- به پرسنل تان بوسيله ابزارهاي مختلف روحيه دهيد.
81- محيط کاري تان را آرام و ساکت نگه داريد.
82- دو چيز قابل برگشت نيستند يکي نيروي انساني و ديگري زمان.
83- هر چيزي را که در حال انجام آن مي باشيد مي توان به بهترين شکل به اجرا در آورد.
84- موارد غير ممکن را کنار بگذاريد.
85- کار تيمي را هرگز فراموش نکنيد.
86- برنامه زماني پروژه ها را به ريز نگه داريد و هميشه آن را به روز نگه داريد.
87- 10 ريسک اول را شناسايي کنيد.
88- براي پروژه حتي در حين اجرا نام و شماره نسخه در نظر بگيريد.
89- همه چيز را ثبت و مستندسازي نمائيد.
90- سعي نکنيد علائم مربوط به مشکلات را حذف کنيد، بلکه آنها را حل کنيد.
91- هرچه از عمر نرمافزار بيشتر مي گذرد پشتيباني آن سخت تر خواهد بود.
92- براي کنترل پيشرفت نرمافزار جلسات بررسي پيشرفت کار را به شکل دائمي برگزار کنيد.
93- برنامه نويسانتان را به دو گروه تقسيم کنيد : گروه اول برنامه نويساني که بر روي منطق و الگوريتم نرمافزار کار مي کنند، گروه دوم آناني که برروي کارهاي روتين و تکراري کار مي کنند.
94- براي نوشتن نرمافزارهاي جديد حتما از مشاور مرتبط با موضوع در تيم تحليل استفاده نمائيد.
95- به افراد تيم تان بياموزيد که اين مشتري است که قرار است از نرمافزار استفاده نمايد نه آنان.
96- استانداردهاي لازم جهت مراحل مختلف از قبيل تحليل، طراحي و برنامه نويسي را قبل از شروع به کار در هر يک از مراحل تدوين نمائيد.
97- با توجه به محدوده و بزرگي يا کوچکي نرمافزار، متدلوژي توسعه نرمافزار را به درستي انتخاب نمائيد.
98- قبل از شروع کردن هر پروژه اي، تيم اجرايي آن را به دقت تشکيل دهيد.
99- در ابتداي پروژه مسئوليتها و وظايف هر يک از افراد تيم را به روشني به آنها توضيح دهيد.
100- در صورت امکان يک نفر را به عنوان مشاور فني در تيم در نظر بگيريد.
100 اصل در توليد و توسعه نرمافزار
امين نظارات - عضو هيئت مديره و مدير نرمافزار شرکت پويا رايانه دنا
Amin_Nezarat@hotmail.com
در توليد نرمافزار نکاتي وجود دارد که يا از طريق تجربه بدست مي آيد و يا از طريق مطالب نهفته در متون علمي. اما به دليل ماهيت پيچيده و متغير مفاهيم و روشهاي توسعه و توليد نرمافزار، استفاده از تجربيات سايرين در پروژههاي قبلي مي تواند بسيار راهگشا باشد و از بسياري دوبارهکاريها جلوگيري نمايد.
در اين مقاله سعي شده است به نکاتي اشاره شود که ميتواند شما را در اجراي پروژههاي نرمافزاري ياري دهد در پس هر يک از اين نکات مطالب بسياري نهفته است که با دقت در هر کدام از آنها ميتوان بخشي از مشکلات درگير در زمان اجراي پروژه را مرتفع نمود.
يکی از نکاتی که در اين مقاله آورده شده اين جمله است که «هرچه را میخوانيد باور نکنيد»، بنابراين هر يک از اين نکات را به دقت با دوستان و هم تيميهايتان بحث کرده و آنگاه به کار بريد.
1- کيفيت حرف اول را ميزند.
2- کيفيت در چشمان بيننده است.
3- کيفيت و کارائي دو جز، جدا نشدني هستند.
4- بالاترين کيفيت در نرمافزار امکان پذير است.
5- قابليت اعتماد کم، بدتر از کارايي کم است.
6- محصول را هر چه زودتر به مشتري/کاربر بدهيد.
7- دائما با مشتري/کاربر در ارتباط باشيد.
8- محرکهايي را براي برنامهنويسان و مشتريان ايجاد کنيد.
9- يک نمونه اوليه درست ارائه نمائيد(ProtoType).
10- قابليتهاي عملياتي را در نمونه اوليه بسازيد.
11- نمونه اوليه را خيلي سريع بسازيد.
12- سيستم را به صورت افزايشي توليد کنيد.
13- بيشتر ببينيد تا احساس ضرورت بيشتري کنيد.
14- تغييرات در زمان توسعه نرمافزار اجتناب ناپذير است.
15- در صورت امکان، بجاي توليد اجزا، آنها را بخريد.
16- بعد از توليد نرمافزار نياز به يک راهنماي کاربري کوچک داريد.
17- هر مسئله پيچيده اي راه حلي دارد.
18- فرضياتتان را ثبت کنيد.
19- تکنولوژي قبل از ابزار اهميت دارد.
20- از ابزارها استفاده کنيد اما واقع بين باشيد.
21- هميشه ابزارهاي خوب را به مهندسين خوب بدهيد.
22- دانستن «چه موقع» مهم تر از دانستن «چطور» است.
23- زماني که به اهدافتان رسيديد پروژه را متوقف کنيد.
24- روشهاي مرسوم توسعه نرمافزار را خوب بشناسيد.
25- تکنولوژي را هرگز فراموش نکنيد.
26- از استانداردهاي مستندسازي استفاده نمائيد.
27- هر مستندي به واژه نامه نياز دارد.
28- هر مستندي به يک فهرست نياز دارد.
29- براي مفاهيم يکسان از اسامي يکسان استفاده نمائيد.
30- مفاهيم را جستوجو کنيد و سپس انتقال بدهيد.
31- مسئوليت پذير باشيد.
32- نيازمنديهاي ضعيف زمينه برآورد هزينه اشتباه است.
33- قبل از ثبت نيازمنديها، مسئله را تعريف کنيد.
34- خطاها را در توضيحات نيازمنديها شناسايي و برطرف نمائيد.
35- نمونه اوليه، ريسک انتخاب UI مناسب را کم مي کند.
36- اينکه نيازمنديها شامل چه چيزهايي هستند را به خوبي ثبت نمائيد.
37- زيرسيستمها را به خوبي شناسايي کنيد.
38- نيازمنديها را بازبيني نمائيد.
39- از طراحي در مرحله شناخت نيازمنديها اجتناب کنيد.
40- به نيازمنديها از زواياي مختلف نگاه کنيد.
41- نيازمنديها را اولويت بندي کنيد.
42- خلاصه نويسي کنيد.
43- ابهام را در نيازمنديها برطرف نمائيد.
44- قبل از تبديل به هرگونه مدل رسمي، نيازمنديها را به صورت توضيحات زمان طبيعي بنويسيد.
45- انتقال از مرحله شناخت نيازمنديها به طراحي آسان نيست.
46- طراحي بدون مستندسازي طراحي نيست.
47- چرخ را دوباره اختراع نکنيد.
48- خطاهاي مفهومي بسيار مهم تر از خطاهاي Syntax مي باشند.
49- طراحي کنيد که تغييرات داشته باشيد.
50- طراحي را به گونه اي انجام دهيد که نگهداري آن امکان پذير باشد.
51- طراحي بايستي به نحوي باشد که خطاها به راحتي قابل تشخيص باشند.
52- از الگوريتمهاي با کارايي بالا استفاده نمائيد.
53- به کاربر فقط اطلاعاتي را نمايش دهيد که مورد نياز وي مي باشد.
54- طراحي بايستي چند بعدي باشد.
55- نرمافزاري که قصد توليد آن را داريد به خوبي بشناسيد.
56- « ورود اطلاعات نادرست –- خروج دادههاي غلط » را در پي دارد.
57- از به کار بردن متغيرهاي غير محلي خودداري نمائيد.
58- به شکلي کدنويسي نمائيد که بتوان آن را از بالا به پائين خواند.
59- مراقب اثرات جانبي کدي که مي نويسيد باشيد.
60- از اسامي با مفهوم در نامگذاري ها استفاده نمائيد.
61- قبل از اينکه به فکر سريع اجرا شدن کد باشيد به فکر درست کارکردن آن باشيد.
62- قبل از اينکه کد را به پايان برسانيد توضيحات آن را بنويسيد.
63- هر بخش از کد را جداگانه هم اجرا کنيد.
64- کد نوشته شده را مميزي کنيد.
65- از زبان برنامه نويسي مناسب استفاده کنيد.
66- کد نويسي را خيلي زود شروع نکنيد.
67- تست را از نيازمنديها شروع کنيد.
68- نرمافزار را خودتان تست نکنيد.
69- طرح تست را خودتان ننويسيد.
70- نيمي از خطاها در 15 درصد از کدها مي باشند.
71- هميشه از تست فشار استفاده نمائيد.
72- قبل از تست واحدها يکپارچه سازي را اعمال نکنيد.
73- مديريت قوي بسيار مهمتر از تکنولوژي قوي مي باشد.
74- هر چه را که مي خوانيد باور نکنيد.
75- نيروي انساني راه رسيدن به پيروزي مي باشد.
76- نيروي انساني خوب ولي کم بهتر است از نيروي انساني زياد ولي ضعيف.
77- به پرسنل تان گوش دهيد.
78- به نيروهايتان اطمينان کنيد.
79- مهارتهاي ايجاد ارتباط بسيار مهم مي باشند.
80- به پرسنل تان بوسيله ابزارهاي مختلف روحيه دهيد.
81- محيط کاري تان را آرام و ساکت نگه داريد.
82- دو چيز قابل برگشت نيستند يکي نيروي انساني و ديگري زمان.
83- هر چيزي را که در حال انجام آن مي باشيد مي توان به بهترين شکل به اجرا در آورد.
84- موارد غير ممکن را کنار بگذاريد.
85- کار تيمي را هرگز فراموش نکنيد.
86- برنامه زماني پروژه ها را به ريز نگه داريد و هميشه آن را به روز نگه داريد.
87- 10 ريسک اول را شناسايي کنيد.
88- براي پروژه حتي در حين اجرا نام و شماره نسخه در نظر بگيريد.
89- همه چيز را ثبت و مستندسازي نمائيد.
90- سعي نکنيد علائم مربوط به مشکلات را حذف کنيد، بلکه آنها را حل کنيد.
91- هرچه از عمر نرمافزار بيشتر مي گذرد پشتيباني آن سخت تر خواهد بود.
92- براي کنترل پيشرفت نرمافزار جلسات بررسي پيشرفت کار را به شکل دائمي برگزار کنيد.
93- برنامه نويسانتان را به دو گروه تقسيم کنيد : گروه اول برنامه نويساني که بر روي منطق و الگوريتم نرمافزار کار مي کنند، گروه دوم آناني که برروي کارهاي روتين و تکراري کار مي کنند.
94- براي نوشتن نرمافزارهاي جديد حتما از مشاور مرتبط با موضوع در تيم تحليل استفاده نمائيد.
95- به افراد تيم تان بياموزيد که اين مشتري است که قرار است از نرمافزار استفاده نمايد نه آنان.
96- استانداردهاي لازم جهت مراحل مختلف از قبيل تحليل، طراحي و برنامه نويسي را قبل از شروع به کار در هر يک از مراحل تدوين نمائيد.
97- با توجه به محدوده و بزرگي يا کوچکي نرمافزار، متدلوژي توسعه نرمافزار را به درستي انتخاب نمائيد.
98- قبل از شروع کردن هر پروژه اي، تيم اجرايي آن را به دقت تشکيل دهيد.
99- در ابتداي پروژه مسئوليتها و وظايف هر يک از افراد تيم را به روشني به آنها توضيح دهيد.
100- در صورت امکان يک نفر را به عنوان مشاور فني در تيم در نظر بگيريد.