«مارک اندرسن» کارآفرین مطرح آمریکایی میگوید: «نرمافزار در حال بلعیدن دنیاست». این مساله در دنیای امروزی یک واقعیت است اما در دهه 60 میلادی حتی خبری از مهندسی نرمافزار هم نبود.
در واقع در آن سالها نرمافزار به عنوان یک ایده آنقدر جدید بود که حتی اسم درستی هم نداشت. گاهی اوقات آن را software میخواندند و گاهی از آن به عنوان Softwear یاد میکردند. این دو کلمه در روزنامهها و مجلات به صورت جایگزین یکدیگر استفاده میشدند و حتی شرکتهای بزرگ دنیای کامپیوتر هم برای آگهیهای شغلی خود از هر دوی این کلمات استفاده میکردند.
در چنین برههای در تاریخ دنیای مهندسی نرمافزار، مشکل فقط املای نادرست آن نبود بلکه کاملا نامشخص بود که چگونه میتوان یک پروژه نرمافزاری بزرگ، پیچیده و در هم تنیده را به انجام رساند. سوالهای بزرگی برای دنیای نرمافزار مطرح بود؛ از جمله اینکه برنامهنویسی کامپیوتر در چه ردهای قرار می گرفت، دانش، نویسندگی یا مهندسی؟
در دهه 60 میلادی، نرمافزار حتی املای درستی هم نداشت
در آنزمان پروتکلهای مشخص زیادی برای مدیریت پروژههای سختافزاری طراحی شد که نزدیک به نیم قرن تجربه پشت آنها اندوخته بود. اما هیچ استاندارد خاصی برای مدیریت پروژههای نرمافزاری عظیم وجود نداشت. در واقع وقتی که برنامهنویسان کامپیوتری در MIT نوشتن نرمافزارهای لازم برای پرواز به ماه را در سال 1961 شروع کردند، هیچ پروژه توسعه نرمافزاری دیگری در دنیا به پیچیدگی و عظمت آن وجود نداشت. دانشگاه MIT به مدت بیش از یک سال روی کامپیوترها و نرمافزارهای مربوط به یک سفینه فضایی کار کرد که هنوز حتی به وجود هم نیامده بود.
مارگارت همیلتون، سرپرست بخش نرمافزاری ماموریت آپولو 11 که کدهای مورد نیاز برای انجام این ماموریت در سال 1969 را توسعه داد.
مارگارت همیلتون اولین شخصی بود که استفاده از عبارت مهندسی نرمافزار را شروع کرد
مهندس نرمافزار MIT؛ «مارگارت همیلتون» به عنوان شخصی شناخته میشود که عبارت «مهندسی نرمافزار» را در آن زمان به عمومیت رساند. همیلتون سال 1958 از دانشگاه فارغالتحصیل شد، سال 1963 به پروژه Apollo دانشگاه MIT پیوست و قبل از 1969 یعنی تنها 11 سال پس از فارغالتحصیلی، به عنوان سرپرست نرمافزار ماژول فرمان این فضاپیما فعالیت خود را ادامه داد. همیلتون درباره روند کار در بخش نرمافزاری چنین گفته:
در ابتدای پروژه آپولو، به نرمافزار با دید یک فرزندخوانده نگاه میشد که اهمیتی به اندازه سایر بخشها مثل مهندسی سختافزار ندارد. از آن به عنوان یک هنر یا جادوگری و نه یک علم یاد میشد. من در همان زمان از عبارت مهندسی نرمافزار استفاده کردم تا آن را از سختافزار و سایر مهندسیها متمایز کنم.
البته این عبارت از همان ابتدا بین همه جا نیفتاد. اولین باری که استفاده از آن را شروع کردم برای خیلیها گیج کننده بود و برای مدت طولانی از آن لطیفه میساختند.
تلاشهای همیلتون برای جا انداختن مفهوم مهندس نرمافزار چند سال بعد به ثمر نشست و از سال 1966 این عبارت در آگهیهای استخدام مورد استفاده قرار گرفت. این پروژه بزرگ نرمافزاری Apollo در MIT جنبههای متناقضی را هم به همراه داشت.
اول اینکه زمان و حجم کد بسیار بیشتری نسبت به آنچه که برای آن برنامهریزی شده بود را اشغال کرد. در سال 66 کدنویسهای MIT چهل درصد بیشتر از ظرفیت کامپیوترها کد نوشته بودند و ناسا اعلام کرد که نرمافزار مذکور، آمریکا را به ددلاین 1969 نخواهد رساند. البته این مساله تا به امروز تغییر چندانی نکرده و روند بیشتر پروژههای نرمافزاری بزرگ به همین صورت طی میشود.
با این حال در آن زمان نرمافزار MIT و کامپیوترهایی که آن را اجرا میکردند به عنوان یک معجزه شناخته شدند؛ کامپیوترهایی که قدرت پردازشی کمتر از ماشینهای ظرفشویی امروزه داشتند توانستند 9 از 11 فضاپیمای آپولو را با 2504 ساعت پرواز، معادل 100 روز به ماه رسانده و برگردانند.