نکات : 
1)  یک فصل جدید هم به نقشه راه معشوقه نرم افزار با عنوان نرم افزارهای بزرگ ، اضافه شد.  

2) این دسته مباحث کاملا بر اساس نظر و تجربه شخصی هستند و به هیچ عنوان نمی توان از آن به عنوان یک راهنمایی استفاده کرد. کل نوشته های این وبلاگ هم بر همین اساس هستند. پس شما این گونه نوشته ها را به عنوان یک گفتگو با یک شخص بیسواد در نظر بگیرید.


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

در بعضی مواقعی که این جمله درست است : 

من خودم برای یک انجام یک پروژه  به نزد یکی از مدیران شرکتی نرم افزاری ، دعوت شدم. سیستم ، سیستم بزرگی بود. برنامه ای برای یکپارچه کردن تعدادی از مدرسه های شهر تهران. به طوری که دانش آموزان بتوانند با در دست داشتن کارت هایی ، خوراکی ها را مطابق سن و برنامه تغذیه ای خود ، از دستگاه های مخصوصی خریداری نمایند.

مدیر شرکت خودش نمی دانست که این سیستم در آینده چقدر می تواند بزرگ شود. خودش دقیقا نمی دانست که چندین مدرسه قرار است به این سیستم متصل شود. خودش نمی دانست که برای انجام این پروژه چقدر نیروی کار می خواهد ؟ 
خودش نمی دانست که این سیستم باید گزارش گیری و پردازش دیتای موازی و ذخیره و بک آپ داشته باشد. 

حتی خودش نمی دانست که برای این پروژه باید سرور تهیه نماید. 

این دسته مشکلات برای مواقعی است که بعضی ها بزرگ فکر نمی کنند.  حالا جواب مدیر را برای این سیستم ببینید. قبل از اینکه من این نیازهایی را که نوشتم ، با او بحث نمایم.

خوب کاری که نداره. این سیستم به درگاه پرداخت بانک ملت وصل میشه و در نهایت یک سایته که با PHP نوشته میشه. مگه بیشتر از اینه؟ 

خب حالا به نظر شما این پروژه چقدری می تونه قیمت داشته باشه ؟  خودت اگر بخوای این رو تنهایی بنویسی چقدری طول میکشه؟ 

بیشتر از سه ماهه ؟

از باقی بحث بگذریم. 

بعضی سیستم ها خیلی بزرگ هستند و در آینده بزرگ و بزرگتر می شوند. 

بعضی از افراد به این گونه نیازها و بزرگ و بزرگتر شدن سیستم در آینده فکر نمی کنند. نمی دانم از تجربه است یا نه؟ این مدیری که من با او ملاقات داشتم 15 سال سابقه کار داشت. خودم هم مانده ام که مشکل از کجاست؟ 

کلا سیستم های نرم افزار پتانسیل خیلی زیادی برای بزرگ شدن را دارند. بگذارید همین مثال را بزرگتر کنم.

من برای یک مدرسه این نرم افزار را می نویسم و این نرم افزار با فرض اینکه خوب کار می کند و صدای مشتری ها را در نمی آورد ، به بقای خودش ادامه می دهد.

حال مدیر همین مدرسه ، با مدیرهای دیگری صحبت می کند و می گوید که از این سیستم راضی هستند و برای گسترش  و جذب هرچه بیشتر دانش آموزان و در آمد بیشتر ، از این سیستم استفاده کنید. 
احتمالا خودتان حدس میزنید که اسم این گونه مدارس چه می شود. مدارس الکترونیک. مدارس سلامت الکترونیک. یا مدارس تغذیه الکترونیک. 
شاید هم با این شعار تبلیغ می کنند که ما به فکر تغذیه و سلامت کودکان شما هستیم. بیایید و در مدارس سلامت الکترونیک ثبت نام کنید.

خب تا اینجا بسه. 
شاید هم با خودتون بگید که مدیر مدرسه مگه مرض داره که این کار رو انجام بده. منظورم صحبت با مدیر مدرسه های دیگه اس. خب اینطوری که درآمدش کم میشه و رقیب هاش زیاد میشه.

اما به طور ضمنی این تبلیغات باعث میشه که مدارس دیگه هم به این فکر بیافتند که چرا ما این کار رو نکنیم؟ 

خب با چند تا پرس و جو ، همراه  با کمی شانس ، شرکت نرم افزاری شما رو پیدا می کنند و از شما درخواست همچین سیستمی رو می کنند.

بعدش ممکنه  که من نوعی ، این سیستم را همراه با کمی تغییرات ، کپی کنم و تحویل مدیر مدرسه بیچاره میدم. 

درآینده هم ممکنه که این سیستم و این دسته مدارس خیلی زیاد بشه. 

مدارس که تا چند وقتی با این سیستم مشکلی ندارند و به قولی کول cool ، هستند. اما وقتی گندش در میاد که  یک خطایی یا مشکلی در سیستم بروز میکنه. 
خب من رو خبر می کنند و بعدش مشکل رو حل کنم. بعد از حل مشکل متوجه میشم که این مشکل در کلیه نرم افزارهایی که شرکت به مدراس فروخته ، وجود داره. 
بدبختی من شروع میشه. همین طور بدبختی و مشکلات مدیر و شرکت هم شروع میشه. 
آقای مدیر من نمی تونم این مشکلات رو به تنهایی حل کنم. 
مدیر : خب کار خودته تو میگی من چیکار کنم ؟ فعلا کلی کار روی سرمون ریخته باید سیستم این مدرسه جدید رو هم تحویل بدیم.
ای داد بی داد. 
حالا بعد از کلی خر کاری متوجه میشم که این مشکل حل میشه. اما برای مشکلات بعدی چیکار میشه کرد؟ 
بازم میرم پیش مدیر عزیز و میگم که : 

آقا من دیگه نمی تونم این سیستم رو به تنهایی ساپورت کنم. خیلی کارهام زیاد میشه و نمی تونم به کارهای اصلی شرکت برسم.
مدیر: خب باشه کارمندهای جدید استخدام می کنم.

بعدش هر کارجویی که میاد برای استخدام با این جمله مدیر رو خوشحال میکنه. 
 " من کدهای سیستمی که کسی دیگه اون رو نوشته ، اصلاح نمی کنم یا به عبارتی توسعه نمیدم. من کلا روی سیستم هایی که خودم نوشته ام کار می کنم


ادامه دارد...