چگونه برای یک پروژه نرم افزاری زمان و هزینه اعلام میکنید؟

چند بار از خود این سوال را پرسیده اید ، "چقدر طول میکشد که برنامه ای را بنویسید" یا "چقدر اجرا و برنامه نویسی این نرم افزار هزینه خواهد داشت؟"وقتی چنین سوالاتی مطرح میشود ما به دنبال شاخص هایی میگردیم تا برآوردهای خودمان را انجام داده و نتیجه را اعلام کنیم. اما در اکثر موارد میزان دقت برآورد ما چیزی مانند پرتاب یک سکه برای شیر یا خط است.احتمال دقیق بودن این برآوردها آنقدر کم است که همواره برنامه نویسان و مدیران تیم های برنامه نویسی برای خود حاشیه ریسک ایجاد کرده ، زمان و هزینه را بالاتر از برآورد خود اعلام می کنند. در نهایت نیز همیشه این سوال را از خود می پرسند که "آیا تمامی جوانب کار را بررسی کرده ایم و برآورد ما چقدر دقیق بوده است؟"خوشبختانه برای تیم های با سابقه ی بالا شاخص های دقیق تر و مناسبتری نسبت به تیم های با سابقه ی کمتر داشته و بر اساس آنها برآوردهای خود را به واقعیت نزدیک میکنند، شاخص هایی مانند : تعداد فرم ها ، میزان بزرگی جامعه ی مصرف کننده ، اندازه ی تیم پیاده سازی ، هزینه های زمان طراحی محصول و غیره.اما چگونه پروژه ها را با توجه به پارامترهای بالا میتوان برآورد و برنامه ریزی کرد؟برای دست یابی به این شاخص ها و استفاده از آن ها متدهای فراوانی وجود دارد.یکی از موفق ترین فرآیندها در تمام صنعت نرم افزار مدل Team Software Process (TSP) می باشد که توسط دانشگاه Carnegie Mellon معرفی و توصیه شده است. در واقع مدل TSP توسط چند تیم داخلی در مایکروسافت پیاده سازی و اجرا شده است.اما باید ابتدا به این سوال پاسخ داد که ، مزایای استفاده از پروتکل TSP در بین تیم های توسعه یا تست نرم افزار چیست؟تضمین ارائه محصولات نرم افزاری با کیفیتتضمین ارائه محصولات نرم افزاری امن و قابل اعتمادبهبود مدیریت فرایند درون تیم و در کل سازمان یا شرکترعایت کامل اصول و الگوهای برنامه نویسی و تست نرم افزارتیم های نرم افزاری و مدیریت پروژه از متد TSP برای تطبیق مفاهیم مهندسی نرم افزار در تیم های نرم افزاری استفاده مینمایند.برای راه اندازی این متد در قالب تیم های برنامه نویسی ، طی یک برنامه ریزی چهار روزه باید موارد ذیل را آماده نماییم:تعیین اهداف کلیدی که تیم بدنبال دستیابی به آنهاستتعیین نقش افراد در تیمارزیابی ریسک ها و برنامه های کاهش میزان ریسک و خطابرنامه ریزی برای تیم تولیدچگونه با متد TSP کار کنیم؟پیش از هر چیزی برای پیاده سازی متد TSP در سازمان خود نیاز دارید تا متد PSP را برای کارکنان سازمان شرح داده و از آموزش کامل آنها متناسب با مدل PSP اطمینان حاصل نمایید. در مدل PSP ما برای نقش هایی مانند : برنامه نویس ، تستر ، مدیر پروژه و مدیر محصول برنامه ریزی می نماییم. در واقع پس از آماده شدن این نقش ها با استفاده از مدل PSP ما قادر به پیاده سازی مدل TSP خواهیم بود.زمانی که پروژه ای به یک تیم برنامه نویسی ارجاع میگردد ، تیم باید سریعا مراحل آماده سازی برای اجرای پروژه را در قالب TSP فراهم آورد.با فرض اینکه تمامی نیازهای تجاری و عملیاتی محصول توسط مدیران پروژه و محصول پیشبینی و برآورد شده ، راه اندازی TSP به طور معمول بین 3 تا 5 روز به طول می انجامد. در انتهای این چند روز کل پروژه به زیرسیستم های کوچکتری شکسته خواهند شد. هر کدام از زیر سیستم ها شامل وظایفی مانند : طراحی ، تست طراحی ، برنامه نویسی ، پیاده سازی ، تست کد ، تست محصول و … می باشند. وظایف بسته به نقش افراد در تیم بین آنها تقسیم خواهد شد. برای مثال برنامه نویسی و پیاده سازی اولیه به توسعه دهندگان و همچنین تست طراحی و تست کد به تستر ها سپرده میشود.در همین مرحله نیز بابت تمامی کارها زمان برآورد شده و اعلام میگردد که اصولا بر مبنای نفر ساعت است. علاوه بر این موارد موارد غیر مرتبط با اصل پیاده سازی پروژه نیز برآورد شده و به این لیست افزوده خواهند شد.مواردی مانند خواندن تیکت ها و ایمیل ها ، حضور در جلسات اجباری شرکت ، پرکردن فرم های گزارش کار و برگه های TSP .پس از برآورد و شناسایی کل ساعتهای اصلی و فرعی ، آنها را با هم جمع کرده و زمان تخمینی پروژه را برآورد می نماییم. معمولا اگر تیمی برای اولین بار TSP را پیاده سازی میکند زمان های برآورد شده ی آنها بیش از ساعات مورد نیاز بوده و بیشتر بر اساس احساسات است تا واقعیت. به همین علت در اکثر مواقع برای برآورد های بعدی سعی میشود از برآوردهای واقعی بدست آمده در دورهای اولیه ی پیاده سازی TSP استفاده شود. یعنی اگر برای پیاده سازی ماژول دسترسی کاربران در پروژه قبلی برآورد ما 7 ساعت بوده اما در واقعیت 5 ساعت زمان برده ، در پروژه های بعدی ما 5 ساعت را برای چنین کاری ملاک کار خود قرار میدهیم . برخی مواقع ممکن است مدیران در میانه راه پیاده سازی محصول مواردی را به این لیست افزوده یا از آن کم کنند که به نسبت اهمیت و الویت انجام آن به بالا یا پایین لیست افزوده خواهد شد و به طبع تاریخ انتشار محصول را دست خوش تغییر مینماید. همچنین یکی از اتفاقات مهم و حیاتی در طول راه اندازی TSP ثبت تجربیات و مستندسازی آن ها برای تجربیات آینده است.این موارد باید در قالب فرم های طرح پروژه و برنامه ریزی به مدیران پروژه ارائه گردد. در مدل TSP تیم پیاده سازی و عوامل آن موظفند فرم های گزارش کار و مستندات خود را بصورت هفتگی و طی جلساتی به مدیران خود تحویل نمایند.در این مدل کار عوامل پروژه کاملا وظیفه محور بوده و هر بار یک وظیفه را از صف وظایف خود برداشته ، اجرا کرده و آن را بعنوان کار انجام شده در گزارش کار خود قید می نماید.همانطور که پیش تر نیز گفته شد این وظایف و الویت انجام آنها توسط مدیران تعیین میگردند.باید در طول اجرای مدل TSP ساز و کارهایی نیز برای مستند سازی اشتباهات ، زمان های اتلاف شده و تکراری نیز وجود داشته باشد. با اجرای TSP در هر سازمانی علاوه بر بالا بردن بهره وری به بیشترین میزان ممکن ، کار هدایت تیم های و برنامه ریزی برای آنها نیز سازماندهی میگردد که متعاقب آن میتوان اهداف و فرآیندهای آینده ی سازمان را نیز بهبود بخشید. تیم هایی که این مدل را پیاده سازی مینمایند هیچ محدودیتی در تعداد نداشته و میتوانند شامل 3 تا 30 نفر ، نقش یا ماژول باشند.TSP به سازمان شما کمک میکند تا کار مدیریت پروژه نرم افزار و یا محصول خود را کاملا به یک عمل مهندسی شده و منضبط تبدیل نمایید و بدینوسیله بلوغ ، قابلیت اطمینان و کیفیت محصولات خود را بالا ببرید.TSP همچنین بعنوان یک چارچوب اندازه گیری برای توسعه دهندگان و مشتریان نرم افزاری محسوب مورد استفاده قرار میگیرد.هنگامی که شما بعنوان مدیر یک تیم نرم افزاری منصوب میگردید از شما انتظار می رود تا بتوانید موارد ذیل را در سازمان خود پوشش دهید:اعلام هزینه دقیق و اطلاعات کامل پروژهارائه روش های اثبات شده جهت انتشار محصولات با کیفیتآگاهی از خطرات و ریسک های پیش رودر نهایت TSPو PSP بدنبال ایجاد یک چارچوب رشد پذیر و خود مکمل هستند تا شما بعنوان مدیر پروژه یا محصول بتوانید در هر زمان و با هر میزان پیشرفت از پروژه به دو سوال زیر پاسخ دهید:کجای برنامه ریزی های خود هستید؟چه میزان میتوان به موفقیت این پروژه اطمینان داشت؟امیدوارم این یادداشت کوتاه و مختصر بتواند راه گشای شما عزیزان برای آشنایی بیشتر با این مدل باشد. واضح است هر مدلی برای پیاده سازی در سازمان ها و شرکت ها بسته به شکل و اندازه ی آن سازمان/شرکت دارد. اما مدل TSP از معدود مدل هایی است که در هر اندازه ای قابل پیاده سازی بوده و نیاز به تغییرات بنیادینی در ساختار سازمانی ندارد.