لزومی ندارد که برای چندمین بار بنویسم تمامی این مطالب شخصی هستند و از منظر یک نفر بیسواد( خودم رو میگم) بررسی و تحلیل می شود.


مهندس نرم افزار یعنی چی ؟ 

اصلاً مهندس نرم افزار چی کار باید بکنه و چه چیز هایی بلد باشه ؟ 

آیا همه کسانی که نرم افزار بلدند و برنامه نویسی می کنند ، مهندس نرم افزارند ؟ 

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

 خب بریم سر اصل مطلب.

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

باید بدونه که هر سازمانی سطوح مختلفی داره و هر سطحی نیاز های خاص خودش رو داره. 

بگذارید با یک مثال توضیح بدم. 

یک مهندس نرم افزار می خواد برای سازمان ایکس یک نرم افزار بنویسه. کاری که روال عادی برنامه نویس ها شده ، اینکه که بدونِ اینکه شناختی از سیستم داشته باشند ، شروع می کنند به کد زدن. کاری که از مبنا غلطه  و زحمت چند برابر رو می خواد که یک نرم افزار ساخته بشه تا زمانی که نیاز سنجی انجام بشه.

فکر کنم بیشتر توضیح بدم بهتره. با یک دیالوگ بین یک برنامه نویس و یک نفر کارمند اون اداره شروع می کنم. ( + ) برنامه نویسه و ( - )کارمند.

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

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

+ سلام آقا میشه بگید که چه نرم افزاری از ما می خواید ؟ 

- سلام یک نرم افزار میخوام که کارهای قرداد های ما رو سیستمی و نرم افزاری کنه.

+ خب. حالا میشه که یک نمونه از قرارداد هاتون رو نشون من بدید ؟

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

+ فعلا نه من این چند تا قرارداد رو کپی میگیرم و میبرم. اشکالی که نداره ؟

-خیر قربان مشکلی نیست. فقط بذارید تا کپی اش  کنم و تحویل تون بدم.

+ مشتری هاتون از بیرون باید این کارها رو انجام بدن دیگه. درسته ؟ یعنی باید اینترنتی انجامش بدن ؟

- بله جناب باید اینطوری باشه. 

+ خب دیگه حرفی نیست. خدانگهدار شما.

- ممنونم خدا نگه دار 

این یک نمونه از گفتگوهای میان کارمند و برنامه نویس برای ساختن یک نرم افزار برای یک اداره دولتی و زیرساخت ( اداره آب و فاضلاب) ، است. همین و همین.

بعد از سه ماه آقای برنامه نویس عزیز برمیگرده و یه سیستم تحویل میده.

کارمند همون بخش درجا سیستم رو میشوره و میذاره کنار و میگه که من همچین چیزی رو نمی خوام.

اصلا قواعد اداری توش رعایت نشده. یعنی چی که مدیر عامل باید از قرارداد های انشعاب خبردار بشه. اصلا قانون این اداره نیست.

در ضمن من چطوری بفمم که زمین فلان شخص توی کجا قرار داره. با آدرس که نمیشه . ما کارهامون رو با نقشه انجام میدیم. کو نقشه ؟

برنامه نویس بدبخت داغون داغون و میشه و همون جا با صدای بلند میگه که من سه ماهه دارم برای شما کُد می زنم و شب و روز ندارم. یعنی چی اصلاً ؟

من دیگه کار نمی کنم. 

این شد اتمام کار.

سه تیم دیگه هم اومدن و همین کارها رو انجام دادن و رفتند. البته با کمی پیشرفت. که اون هم در حدی نیست که اسمش رو گذاشت پیشرفت.

اداره آب هم دیگه نمی تونست به هیچ برنامه نویسی اعتماد کنه و سیستم رو بده دستش. 


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