برنامه‌نویسی تا کجا؟ - 2

قبل از این‌که نظر خودم رو بگم، بذارید خاطره‌ای تعریف کنم (که درواقع باعث شد تا من این سلسله پست‌ها رو بنویسم): استادی داشتیم که برایمان درس مهندسی نرم‌افزار پیشرفته ارائه میکرد. استاد، در یک شرکت نرم‌افزاریِ معظم سهیم بود و گویا در آن‌جا نقشِ معمارِ نرم‌افزار را هم برعهده داشت. انصافاً شناخت خوبی از فرآیند تولید نرم‌افزار داشت و اطلاعات تئوریک خودش رو هم بروز نگه می‌داشت.

هدف درس، تعریف یک سیستم نرم‌افزاری بعنوان پروژه بود و دانشجوها در طی ترم باید مرحله به مرحله‌ی تحلیل و طراحی سیستم رو انجام می‌دادند و طی جلسات درسی، اون رو برای بقیه هم توضیح می‌دادند تا نظر بقیه رو هم در موردش بشنون. مشکل (از نظر من) زمانی شروع شد که در حال گذر از تحلیل به طراحی بودیم. مواردی پیش می‌اومد که استاد نظراتی می‌داد که من 100٪ با اون‌ها مخالف بودم. حالا چرا؟‌ چون در تفکرات ایشون، محدودیت‌ها و ویژگی‌های پلتفرم نهایی پیاده‌سازی هیچ جایی نداشتند. عقیده داشت که اگر چیزی از لحاظ منطقی درسته، پس حتماً قابل طراحی و پیاده‌سازی شدنه. از نظر استاد، مرحله‌ی پیاده‌سازی صرفاً نگاشت مدل طراحی به یک مدل پیاده‌سازی بود و ازقضا نگاشتی ساده و کم دردسر! من کاملاً مطمئن بودم که استاد هیچ دیدی از برنامه‌‌نویسی نداره و البته خودش هم یک‌بار اعتراف (از دیدِ خودش:‌ افتخار) کرد که بیش از 15 ساله که دیگه هیچ کدی ننوشته!

تنها دلیلی که می‌تونم حرف استاد رو تا حدودی قبول داشته باشم اینه که طراح و معمار یک سیستم نرم‌افزاری، باید دید کلان‌نگر نسبت به پروژه داشته باشن، اما برنامه‌نویسی باعث می‌شه که تاحدودی این کلان‌نگری از بین بره و درگیری با جزییات پیاده‌سازی جای اون رو بگیره. بعلاوه، برنامه‌نویسی پهنای باند (!) زیادی از ذهن فرد رو به خودش اختصاص می‌ده. (و البته بعضی افراد با کلاسِ کاری برنامه‌نویسی هم مشکل دارن!!!)

شخصاً برنامه‌نویسی رو برای تمامی کسانی که بصورت فنی درگیر تولید نرم‌افزار هستند، مفید می‌دونم (فنی، دربرابر مدیریتی) و برای اون‌هم دلایل فراوانی دارم که توضیحشون یک یا دو پست مستقل احتیاج داره.

مثلاً، جلوگیری از دچار شدن در دامِ تبلیغات کمپانی‌های توسعه‌دهنده‌ی پلتفرم‌ها. (خواهشاً یه دفعه‌ی دیگه عنوان دلیل رو بخونید!) توجه دارید که هیچ ماست‌بندی نمیگه ماست من ترشه، در نتیجه کمپانی‌های پلتفرم‌ساز همیشه درمورد پلتفرمی که ارائه می‌دن اغراق میکنن (اگه نخوایم بگیم خالی‌بندی). قبول دارید که تصمیم‌گیری درمورد مسیر آتی شرکت، فقط براساس یک فهرست از ویژگی‌ها چقدر می‌تونه خطرناک باشه. تا زمانی‌که خودتون با رابط پلتفرم نهایی کد ننوشته باشید، نمی‌تونید ریسک کنید و به اون فهرستِ ارائه شده اعتماد کنید. در بهترین حالت، بلایی که ممکنه سرتون بیاد اینه که کمپانی مذکور لیست ویژگی‌ها رو بدون اغراق و با کمال صداقت تهیه کرده باشه، اما طراحی API رو به مزخرف‌ترین شکل ممکنه انجام داده باشه، در نتیجه شما می‌مونید و یه دوره‌ی طولانی از غرزدن‌های developerهای شرکتتون که “آخه اینم شد API” !!!

 

سرتون رو درد آوردم، اگه مجالی بود باز هم در موردش صحبت می‌کنم.

8 Responses to “برنامه‌نویسی تا کجا؟ - 2”

  1. دانستن علم برنامه نویسی و شناخت خصوصیات و محدودیت های پلت فرم های نرم افزاری برای هر معمار نرم افزاری لازم است. کسی که به جزئیات اشراف نداشته باشه نمیتونه کلیات رو درک کنه. وقتی میگم علم برنامه نویسی، یعنی الگوریتم نویسی و منطق برنامه نویسی را بداند و با چند زبان برنامه نویسی روز دنیا برنامه نوشته باشد.
    نه تنها به قول شما برنامه نویسی برای این اشخاص مفیده بلکه به نظر من کاملاً ضروری است. همون طور که میدونید یکی از بخش های اساسی تولید نرم افزار، بحث برنامه نویسی و انتخاب پلتفرم مناسب است. برنامه نویسی هیچ وقت جدا از نرم افزار نبوده و نخواهد بود، مهمترین بخش تولید یک نرم افزار بر عهده برنامه نویسان است.
    در ضمن من تا حالا با یک استاد رشته ی نرم افزار که سواد درست حسابی داشته باشه برخورد نکردم، شما زیاد استادتو جدی نگیر!

  2. اتفاقاً باید اساتید رو جدی گرفت (خصوصاً جوانترهاشون رو)، چون احتمالاً تنها نقطه‌ی اشتراک صنعت و دانشگاه در ایران هستند. ما باید نسلی از اساتید رو داشته باشیم که قادر باشند تجربه‌های کاری خودشون رو به دانشجوها و دانشگاه منتقل کنند و درعین حال بتونند زمینه‌ی مساعدی برای اتصال صنعت و دانشگاه فراهم کنند.

  3. فرمایش شما درست، اما .قتی اونها خودشونو جدی نمی گیرن نباید انتظار داشته باشید دانشجوهای باسواد و به روز هم اونا رو جدی بگیرن.
    باید چنین نسلی از اساتید رشته ی نرم افزار که شما می فرمایید را در ایران تجربه کنیم اما من تا به حال با یک مورد هم که چنین خصوصیاتی داشته باشه برخورد نکردم.

  4. قیل‌طر شک‌ن پرسرعت!!!
    http://javad33.wordpress.com/2007/10/21/قیل‌طر-شک‌ن-پرسرعت/

  5. سلام هموطن ایرانی. سایت یاهو که آدرس ایمیل من و شما در آن قرار دارد و روزانه با مسنجرش چت می‌کنیم، نام کشور من و تو را از لیست کشورهایش در صفحه‌ی ثبت نام حذف کرده. اگر غیرت و عرق ملی‌ات اجازه نمی‌دهداین ننگ را بپذیری، با لینک دادن به صفحه‌ی http://helloyahoo.net از طریق کلیدواژه‌ی Yahoo mail به بمب درحال پیشرفت علیه یاهو کمک کنید تا کوچکترین وظیفه‌ی ما به کشورمان ادا شده باشد… متشکرم

  6. نوشته خوبی بود، منتظر بخش های بعدی آن می مانم.
    همین!

  7. http://rooznote.wordpress.com/2007/10/31
    مطلبت عالی بود.
    به لینک بالا یه سری بزن و ثبت نام کن.خودت یه هدیه انتخاب کن و در خونتون تحویل بگیر.امتحانش مجانیه

  8. [...] و یا این‌که دو نوشته‌ی قبلی من (برنامه‌نویسی تا کجا 1 و 2) قرار بود از دید یک فرد «فنی» به مشکلات بپردازه. [...]

Leave a Reply