1-
یک برنامهنويس، حدود ده الی بيست درصد زمان خود را به کدنویسی مشغول است
و بيشتر برنامهنویسها بدون توجه به تجربه و مهارت، در هر روز حدود ده
الی دوازده خط کدبرنامه که در محصول نهایی بهکار گرفته خواهد شد،
مینویسند.
برنامهنويسهای حرفهای نود درصد زمان خود را صرف
فکرکردن، تحقیق و آزمایش برای پیداکردن بهترین طراحی میکنند، اما
برنامهنويسان بد، نود درصد زمان خود را صرف تغییر تصادفی کد، مشاهده
نتیجه و اشکالزدایی آن میكنند. بیل گیتس دراینباره میگوید:«یک
تراشکار ماهر و شایسته حقوقی چندین برابر یک تراشکار معمولی دريافت ميكند،
اما ارزش یک برنامهنويس خیلی خوب و ماهر ده هزار برابر یک برنامهنويس
معمولی است.»
2- یک برنامهنويس خوب، ده برابر بیشتر از یک
برنامهنويس ساده تولیدکننده، مولد و مفید است و یک برنامهنويس حرفهای و
ماهر بيست تا صد برابر بیشتر از یک برنامهنويس ساده مفید خواهد بود. این
یک اغراق نیست. مطالعات از دهه 1960 تاکنون بدون تناقض مؤید این امر است.
یک برنامهنويس بد، تنها بیفایده نیست. او نه تنها هیچ کاری را انجام
نمیدهد، بلکه کارهای بسیاری ایجاد کرده و برای حل آنها برای دیگران دردسر
ایجاد ميكند!
3- برنامهنويسان حرفهای زمان خیلی کمی را به
کدنویسی (کدی که در محصول نهایی بهکار خواهد رفت) اختصاص میدهند. افرادی
که بيشتر زمان خود را صرف کدنویسی میکنند بسیار تنبل، سهل انگار و
متکبر هستند و زمانی برای پیدا کردن راه حل قدیمی برای مسئله پیش روی خود
اختصاص نمیدهند. برنامهنويسان حرفهای استاد تشخیص و استفاده دوباره از
الگوهای برنامهنويسی هستند.
آنها از بازنویسی و استفاده دوباره
کد خود برای دستیابی به بهترین طراحی نمیترسند و تا دستیابی به نتیجه
مطلوب، دست از تلاش بر نمیدارند. در مقابل، یک برنامهنويس بد کدهایی
مینویسد که از عدم وجود یکپارچگی مفهومی رنج میبرند، قوانین و قواعد
تکرار، بازنویسی و وراثت در آنها رعایت نشده و از هیچ الگویی پیروی
نمیکنند و به همین دلیل، بازنویسی و ایجاد تغییر در آنها بسیار مشکل است.
همیشه، کنار گذاشتن کد نامناسب و شروع اصولی همه چیز، بسیار بهتر از تغییر
و دست و پا زدن در انواع مشکلات است.
4- نرم افزارها نیز مانند
مفاهیم دیگر از قوانین بی نظمی (Entropy) پیروی میکنند. تغییرات پی در پی
به خرابی و فرسایش کد منجر شده و در نهایت یکپارچگی طراحی اصلی را از بین
میبرند. با اینکه تغییرات و به تبع آن فرسایش کد امری اجتنابناپذیر است،
اما برنامهنويسی که در بهکارگیری یکپارچگی مفهومی طرح خود خوب عمل
نمیكند، نرمافزاری تولید میکند که خیلی خیلی سریع دچار فرسایش کد شده و
قبل از اتمام، از ارزش و اعتبار مناسب ساقط ميشود.
به همین دلیل،
مهمترین دلیل مشترک شکست پروژههای نرمافزاری، شکست درزمینه حفظ نظم در
یکپارچگی مفهومی طرح نرمافزار به شمار میرود. دومین دلیل مهم مشترک در
زمینه شکست پروژههای نرمافزار، ارائه محصولی غیر از آنچه مشتری خواسته
است،به حساب ميآيد.نکته قابل توجه دیگر آن است که فرسایش کد، سرعت
پروژههای برنامهنويسی را به شدت و به صورت نمایی کاهش میدهد و به همین
دلیل، بسیاری از پروژهها در زمان برنامهریزی شده به اتمام نمیرسند و
هزینههای بسیاری به سیستم تحمیل میكنند و در نهایت نیز کنار گذاشته
میشوند.
5- براساس تحقیقي كه در سال 2004 انجام شده حدود 51 درصد
از پروژههای نرمافزاری در وضعیت حیاتی خود دچار شکست شده و حدود پانزده
درصد از آنها بهطور کلی به شکست منتهی میشوند. با این حال، این آمار
حکایت از پیشرفت شرکتها و توسعهدهندگان در رابطه با برنامهریزی و طراحی
نسبت به ده سال قبل از آن دارد. در سال 1994 آمار گویای آن بودند که 31
درصد پروژههای نرمافزار به شکست منجر شدهاند.
6- برنامهنويسی یک
کار بسیار دشوار، تمام وقت و یک فعالیت ذهنی سنگین است. برنامهنويسان
حرفهای در تمام مدت روز و هفت روز هفته به کار خود فکر میکنند. آنها
بهطور معمول حجم بسیاری از کد برنامه خود را در حمام یا در تختخواب
مینویسند و به این دلیل که حجم بسیاری از کار برنامهنويسی جایی غیر از
روبهروی صفحهكليد انجام میشود، افزایش ساعت کاری افراد در دفتر اداری یا
افزایش افراد پروژه کمکی به افزایش سرعت پیشرفت پروژه نخواهد كرد.