مناسبترين روش براي توليد نرمافزارهاي كوچك
پيروي از يك رويه منظم توليد نرمافزار به توليدكنندگان نرمافزار كمك ميكند امور مربوط بهتوليد نرمافزار را منظم و پروژه را در حداقل زمان ممكن و با كارايي بالايي انجام دهند. در حقيقت يك رويه يا Process از مراحل مختلفي تشكيل شده است. اين مراحل فعاليتهاي مربوط به رويه را مشخص مينمايند و تعيين ميكنند كه اين فعاليتها بايد چگونه انجام شوند. پيروي از اين مراحل به اعضاي پروژه دريابند ياري ميرساند كه چه كاري را چه موقع و چگونه انجام دهند همچنين اين كار ميان اعضاي گروه نيز هماهنگي به وجود ميآورد. از آن جايي كه منابع موجود و نيازهاي كاربران هر نرمافزار با ديگري تفاوت دارد، فرايند توليد نرمافزارهاي گوناگون نيز متفاوت است.
انجمن IEEE رويه يا فرايند توليد نرمافزار را اين گونه تعريف ميكند: رويه توليد نرمافزار در واقع شامل مراحلي مانند جمعآوري نيازهاي كاربران ، طراحي سيستم با استفاده از تحليل اين نيازها و نوشتن كدهاي نرمافزار با استفاده از طرح نرمافزار است. همچنين بر اينباور است كه از آن جايي كه كيفيت و بهرهوري نيروي كار با كيفيت روند توليد نرمافزار ارتباط مستقيم دارد، طراحي و مديريت رويه توليد نرمافزار از اهميت شاياني برخوردار است.
براي طراحي يك رويه توليد نرمافزار مي توان از روشهاي متفاوتي استفاده نمود و از آن جايي كه هر پروژه نرمافزاري با ديگر پروژهها متفاوت است، ميتوان گفت كه رويه توليد آن پروژه نيز با ديگر پروژهها تفاوت دارد. در واقع ميتوان گفت: انتخاب اين روشها رابطه مستقيمي با اندازه گروه در پروژه دارد و نرمافزارهاي بزرگ و كوچك نياز به رويههاي توليد متفاوت دارند.
در ادامه اين مقاله روشهاي توليد نرمافزارها، به خصوص نرمافزارهاي نسبتاً كوچك كه از گروههاي توليد نرمافزاري كوچكتري استفاده ميكنند، بررسي ميشوند و مورد ارزيابي قرار ميگيرند.
ش SCRUM
در روشهاي قديمي و معمول ساخت نرمافزار، طراحان نرمافزار معمولاً ابتدا فرض ميكنند كه تمامي نيازهاي كاربران سيستم را درك كردهاند. اما هميشه نيازهاي كاربران سيستم در ابتدا مشخص نيست و كاربران ممكن است در همان مراحل ابتدايي، نيازهاي خود را تغيير دهند و اين چيزي است كه برنامهنويسان و طراحان سيستم هميشه از آن شكايت ميكنند و به دنبال راهحلي براي رفع اين موضوع ميگردند. بهعنوان مثال مدل قديمي آبشاري (waterfall) را در نظر بگيريد.
اين مدل حاوي مشكلات فراواني است كه به صورت مستقيم به غيرقابل انعطافبودن اين مدل ارتباط دارد. اين مدل مانند يك جاده يك طرفه ميباشد كه وقتي اتومبيل در آن حركت ميكند، نميتواند مسير خود را تغيير دهد و در جهت ديگري حركت كند. در ابتداي كار كاربر سيستم ممكن است نظراتي در مورد سيستم داشته باشد ولي نميتواند ببيند كه سيستم چگونه كار خواهد كرد و در نتيجه ممكن است وقتي كه سيستم آماده شد، از ساختار و كارايي آن راضي نباشد و تقاضاي تغيير در سيستم را بنمايد. در نتيجه اگر بتوانيم كاربر را از ابتدا در جريان ساخت نرمافزار قرار دهيم، ممكن است كه اين مشكل حل شود؛ زيرا ميتواند نظرات خود را در طول مدت ساخت و قبل از اتمام كار اعلام كنند و در نتيجه از نرمافزار تهيه شده راضي باشد.