100 اصل در توليد و توسعه نرمافزار
در توليدنرمافزار نکاتي وجود دارد که يا از طريق تجربه بدست مي آيد و يا از طريق مطالبنهفته در متون علمي. اما به دليل ماهيت پيچيده و متغير مفاهيم و روشهاي توسعه وتوليد نرمافزار، استفاده از تجربيات سايرين در پروژههاي قبلي مي تواند بسيارراهگشا باشد و از بسياري دوبارهکاريها جلوگيري نمايد.
در اين مقاله سعيشده است به نکاتي اشاره شود که ميتواند شما را در اجراي پروژههاي نرمافزاري ياريدهد در پس هر يک از اين نکات مطالب بسياري نهفته است که با دقت در هر کدام از آنهاميتوان بخشي از مشکلات درگير در زمان اجراي پروژه را مرتفع نمود.
يکی ازنکاتی که در اين مقاله آورده شده اين جمله است که «هرچه را میخوانيد باور نکنيد»،بنابراين هر يک از اين نکات را به دقت با دوستان و هم تيميهايتان بحث کرده و آنگاهبه کار بريد.
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- برنامه زماني پروژهها را به ريز نگه داريد و هميشه آن را به روز نگه داريد.
10 87- ريسک اول راشناسايي کنيد.
88- براي پروژه حتي در حين اجرا نام و شماره نسخه در نظربگيريد.
89- همه چيز را ثبت و مستندسازي نمائيد.
90- سعي نکنيد علائم مربوطبه مشکلات را حذف کنيد، بلکه آنها را حل کنيد.
91- هرچه از عمر نرمافزار بيشترمي گذرد پشتيباني آن سخت تر خواهد بود.
92- براي کنترل پيشرفت نرمافزار جلساتبررسي پيشرفت کار را به شکل دائمي برگزار کنيد.
93- برنامه نويسانتان را به دوگروه تقسيم کنيد : گروه اول برنامه نويساني که بر روي منطق و الگوريتم نرمافزارکار مي کنند، گروه دوم آناني که برروي کارهاي روتين و تکراري کار مي کنند.
94- براي نوشتن نرمافزارهاي جديد حتما از مشاور مرتبط با موضوع در تيم تحليل استفادهنمائيد.
95- به افراد تيم تان بياموزيد که اين مشتري است که قرار است ازنرمافزار استفاده نمايد نه آنان.
96- استانداردهاي لازم جهت مراحل مختلف ازقبيل تحليل، طراحي و برنامه نويسي را قبل از شروع به کار در هر يک از مراحل تدويننمائيد.
97- با توجه به محدوده و بزرگي يا کوچکي نرمافزار، متدلوژي توسعهنرمافزار را به درستي انتخاب نمائيد.
98- قبل از شروع کردن هر پروژه اي، تيماجرايي آن را به دقت تشکيل دهيد.
99- در ابتداي پروژه مسئوليتها و وظايف هر يکاز افراد تيم را به روشني به آنها توضيح دهيد.
100- در صورت امکان يک نفر را بهعنوان مشاور فني در تيم در نظر بگيريد.