در مورد برآورد: چرا پروژه های نرم افزاری مانند سفرهای اتومبیل هستند و چگونه می توان با آنها کنار آمد
آیا هنوز نزدیک هستیم؟
اگر بچه دارید و تا به حال مدت زیادی در سفر بوده اید در سفر با آنها ، این عبارت احتمالاً به طرز آزاردهنده ای آشنا به نظر می رسد. شاید حتی به خاطر داشته باشید که خودتان آن را در جوانی گفته اید.
در مورد این عبارت: "آیا آن بلیط هنوز تمام نشده است؟"
یا این یکی: "پروژه شما کی تمام می شود؟ ؟ "
یا این یکی:" آیا می توانید به من بگویید نسخه بعدی کی ارسال می شود؟ "
همه این س questionsالات به یک موضوع خلاصه می شود:" این تکه تا کی توسعه نرم افزاری لازم است؟ "
به عنوان مدیران محصول ، اغلب ما وظیفه نداریم پاسخی ارائه دهیم ، اما با این وجود ما اغلب از سوي مافوق و تيم های وابسته س askedال می کنیم. و از طرف دیگر وقتی در حال بررسی گزینه های نقشه راه خود هستیم ، ممکن است ما کسانی باشیم که می پرسند ، بنابراین احتیاط ما این است که س theال را عمیق تر درک کنیم. معمولاً بسیار خوب معنی می دهد اما در نهایت یک حدس بزرگ چربی است. و وقتی حدس ها اشتباه می شوند ، مردم را ناراحت می کند.
در زندگی گذشته ام به عنوان یک توسعه دهنده نرم افزار ، اغلب سعی کرده ام توضیح دهم که چرا برآورد پروژه های توسعه نرم افزار سخت است ، اما به نظر نمی رسد هرگز از پس آن برآیم. .
خوب ، این بهترین قیاس من است ، بنابراین بیایید ببینیم آیا می چسبد یا خیر. آنچه در پی می آید این است که چرا برآورد نرم افزار بسیار سخت است و چه کاری می توانیم در مورد آن انجام دهیم.
بنابراین ، به س atال پیش رو بازگردید: "آیا هنوز نزدیک هستیم؟"
< p> یک پاسخ متداول که والدین ممکن است بدهند این است: "نه ، دو ساعت دیگر باقی است"
ده دقیقه بعد ، کودک می پرسد: "آیا هنوز دو ساعت گذشته است؟"
< p> اما تقصیر آنها نیست! همانطور که یک مدیر 40 ساله نمی تواند بفهمد چرا به عنوان یک س questionال ساده از یک پنجره 60 درصدی 8 هفته ای مطمئن شده است ، یک کودک 4 ساله نمی تواند گذر زمان و مفهوم یک ساعت را درک کند. < /p>
برای درک اینکه برآورد توسعه نرم افزار چقدر دشوار است ، برای لحظه ای نحوه تخمین سفرهای اتومبیل خود را در نظر بگیرید…
فرض کنید شما در کاردیف زندگی می کنید و از دوستان خود در لیدز دیدن می کنید. به مسافتی در حدود 230 مایل در سراسر انگلستان. اگر دوست شما در لیدز به شما بگوید: "چه ساعتی به خانه من می آیی؟" ، چه پاسخی می دهی؟
من شرط می بندم که نمی گویی: "من دقیقاً ساعت 3:07 بعد از ظهر برسید "
به احتمال زیاد می گویید:" حدود ساعت 3 بعد از ظهر می رسم ، 30 دقیقه وقت می دهم یا می گیرم "(یک پنجره 60 دقیقه ای)
یا اگر محتاط تر هستید: "بسته به ترافیک ، بین ساعت 2 بعد از ظهر تا 4 بعد از ظهر می آیم" (یک پنجره 120 دقیقه ای). توجه داشته باشید برای سفری که به طور متوسط تقریباً 4 ساعت طول می کشد ، 50 درصد خطا به خود می دهید!
اما چرا نمی توانید زمان دقیقی بدهید؟
شما قبلاً با ماشین رانندگی کرده اید ، بنابراین می دانید چگونه این کار را انجام دهید. بسیاری از افراد دیگر از کاردیف به لیدز رانندگی کرده اند ، بنابراین مطمئناً می توان این کار را انجام داد و نمی تواند به این سختی یا خیلی ها باشد. مردم قبلاً این کار را نمی کردند. و شما از خانه خود در کاردیف به دوستان دیگر رانده اید.خانه در منچستر قبلاً ، که به نوعی مسیری مشابه است ، بنابراین شما تجربه ای در منطقه دارید. اما با وجود همه اینها ، نمی توانید زمان دقیق تری بدهید؟ چرا اینطور نیست؟
صرفاً به ماهیت غیرقابل پیش بینی سفرهای اتومبیل برمی گردد.
بیایید راههای مختلفی را که سفر اتومبیل شما می تواند به صورت جانبی انجام دهد مرور کنیم. بسیاری از این موارد برای شما بسیار آشنا خواهد بود…
راهسازی. اگر کسی جاده را کنده باشد ، در صف ها گیر خواهید کرد. یا بدتر اینکه ممکن است جاده شما به طور کامل بسته شود ، یعنی انحراف غیر منتظره. حوادث. شما نمی توانید به شخص دیگری کمک کنید که با شما برخورد کند ، یا خودتان تصادف کنید یا در صف هایی که پس از برخورد دیگران ایجاد می شود ، گیر کنید. خرابی. علیرغم سرویس منظم خودرو ، این خودرو به طور تصادفی خراب می شود و زمان و پول نامعلومی برای تعمیر نیاز دارد. پیچ های اشتباه. میانبری که فکر می کردید می دانید ، بن بست است. وای. هوای بد. رعد و برق ، برف ، برف ، یخ در جاده ها ، سیل - همه این بدان معناست که شما باید کندتر حرکت کنید و ممکن است شما را مجبور به انتخاب مسیر دیگری کند. چیدمان جاده جدید. افراد متفکر در شورای محلی متوجه شدند که تنها 40٪ از جاده های آنها یک طرفه است ، بنابراین برای کمک به همه ، 25٪ دیگر را در پیچیده ترین ساختار شناخته شده برای بشر بازسازی کرده اند ، فقط برای اطمینان از اینکه دو ماشین هرگز عبور نمی کنند. هنگام حرکت در جهت مخالف یکدیگر. به دلایلی این شما را گیج می کند و شما باید برای مدت زمان نامشخصی کنار بروید تا آرام شوید. زمین های دشوار. برای بخشی از سفر باید از جاده خارج شوید ، از طریق یک رودخانه ، از برخی تپه های شیب دار باورنکردنی ، در یک گله گوسفند حرکت کرده و همزمان دوچرخه سواران را فرار کنید ، و سپس هزینه های گزاف عوارضی بپردازید. ترافیک. آفتابی ترین آخر هفته سال ، بنابراین همه با وحشت دیوانه وار به ساحل می روند. اکنون می توان برخی از این موارد را هنگام محاسبه برآورد زمان سفر در نظر گرفت ، اما بدون جزئیات دقیق از کدام یک از این موارد اتفاق می افتد و چگونه اتفاق می افتد ، نمی توان دقیقاً از تأثیر آنها بر زمان کلی سفر مطمئن بود.
و دقیقاً پروژه های نرم افزاری نیز همینطور است.
بیایید آن را مرور کنیم لیستی از چیزها اما از نظر توسعه نرم افزار. امیدوارم بتوانید موازی ها را مشاهده کنید…
تغییرات زیرساختی. تیم پلتفرم تصمیم گرفت که باید تمام کابل های شبکه را در این ماه ارتقا دهد و به طور دوره ای دسترسی به Github ، NPM ، interweb و غیره را کاهش دهد. حوادث. شخصی پایگاه داده را حذف کرد ، شاخه اشتباهی مرتکب شد و سایت زنده را سرخ کرد ، یا قهوه را روی تنها سرور پشتیبان فعال ریخت. اکنون همه چیز برای رفع این مشکل روی عرشه است. خرابی تجهیزات. لپ تاپ شما ، سرورها ، مجوزهای نرم افزاری منقضی می شود ، پیکربندی از بین می رود ، بیماری های انسانی ، اعضای تیم کنار می روند ، لیست همچنان ادامه دارد. گزینه های طراحی. روزی احساس می کنیم که با در نظر گرفتن همه چیزهایی که می دانیم ، یک انتخاب طراحی فوق العاده را انجام داده ایم. روز بعد ما چیز دیگری یاد می گیریم - یک الزام جدید یا اطلاعاتی در مورد یک الگوی طراحی بهتر - و voila دوباره برمی گرددبه صفحه طراحی. سر و صدا. الزامات جعلی ، کار BAU ، سربار در قالب جلسات ، مینی پروژه های بسیار فوری و مهم که توسط C-suite از حصار عبور می کند. ارتقاء فناوری. نسخه جدیدی از زبان برنامه نویسی مورد علاقه ، IDE ، محیط سرور یا زنجیره ساخت به تازگی منتشر شده است و بنابراین همه چیز نیاز به ارتقا دارد. مفید است که هیچ یک از آنها با گذشته سازگار نیست و چندین ویژگی مهم جدید وجود دارد که باید با آنها کنار بیایید. پیچیدگی. همیشه پیچیدگی پنهانی در یک سیستم وجود دارد زیرا ما تعاملات برنامه ریزی نشده بین اجزا را کشف می کنیم و به عنوان الزامات در پروانه های بی نظمی زیبا ظاهر می شوند. در ظاهر این ویژگی ساده به نظر می رسید ، اما یکبار وارد پیچ و مهره ها شد ، واقعاً سخت است. اضافه بار منابع. اگر 15 تیم هر کدام 3 شغل بیلد را از طریق یک سرور بی نظیر شما هل می دهند و دود از کنار جعبه خارج می شود ، دچار مشکل می شوید. من می توانم کار را ادامه دهم ، اما فکر می کنم تصویر!
به عنوان یک جامعه ، همه ما درک می کنیم که سفرهای اتومبیل را نمی توان به طور دقیق و دقیق تخمین زد ، بنابراین ما مردم را برای پاسخ های دقیق تر فشار نمی دهیم. ما فقط آن را می پذیریم.
به این دلیل است که ما (اکثرا) تجربه دست اول داریم که چقدر برآورد یک سفر با ماشین دشوار است ، بنابراین هنگامی که شخص دیگری نمی تواند مطمئن باشد زیرا ما نمی خواهیم " مطمئن نیستید. موارد موجود در لیست بالا.
اما نکته اینجاست ...
گاهی اوقات کسب و کار نیاز به پاسخ دارد. یک جواب مناسب یکی که می تواند برای توجیه و تخصیص مبالغ هنگفت ، بسیج منابع و برنامه ریزی و هماهنگی برنامه های بزرگتر کار در بسیاری از تیم ها مورد استفاده قرار گیرد.
بنابراین ، با رعایت قیاس سفر با خودرو ، بیایید استراتژی هایی را که قبلاً مورد بررسی قرار داده ایم ، بررسی کنیم. به طور ناخودآگاه برای ارائه یک پاسخ کارآمد از این روش استفاده کنید:
زودتر راه بیفتید (به طور موثر قبل از مهلت مقرر به خود اتاق بافر بدهید) از بدترین سناریو استفاده کنید (بگویید "تا 5 بعد از ظهر می رسم در کمترین زمان ”) پیش از موعد تحقیقات زیادی انجام دهید (آب و هوا ، کار جاده ها ، دوربین های ترافیکی بزرگراه ، سرویس خودرو - همه اینها زمان می برد!) ، سپس در صورت لزوم برآورد را تنظیم کنید "برنامه B" (اگر برآورد اولیه من دچار خطا شود چه اتفاقی می افتد؟) بیشتر این استراتژی ها در مورد اجازه دادن به طرف مقابل برای برنامه ریزی مناسب است. اگر انتظار دارید شخصی ساعت 3 بعد از ظهر به آنجا برسد ، اما او نمی آید - بسیار ناامیدکننده است؟
همه اینها در نرم افزار مشابهی دارند ، همه آنها ارزشمند هستند و می توان آنها را خلاصه کرد 3 مرحله:
قبل از بحث: "آب و هوا باید بد باشد ، اینطور نیست؟ آره؟ من چند کار جاده ای هم دیدم. آه کشیدن. »
در نرم افزار این بدان معنی است که همه مواردی را که ممکن است شما را تحت تاثیر قرار دهد برجسته کرده و مورد بحث قرار دهید. به مواردی که در حال حاضر کمی خاردار هستند توجه ویژه ای داشته باشید و حداقل مواردی را که در حال حاضر خوب به نظر می رسند اما ممکن است در مرحله ای منفجر شوند ذکر کنید. مطمئن شوید که این کار را پیش از این انجام می دهید تا در واقع مشکل ساز شود. با برنامه های مربوط به موافقت موافقت کنید: "اگر دیر رسیدم ، به جای آن مستقیماً در تئاتر ملاقات می کنیم."
در نرم افزار این به معنی داشتن a استبرنامه پشتیبان برای پروژه که بیش از مهلت مقرر است ، و همچنین در حال اجرا است. شما می توانید پاداش اضافی "برای کار خوب است" را تنظیم کنید ، یا از یک سیستم رتبه بندی MoSCoW استفاده کنید تا کارهای غیر بحرانی را در انتها وارد منطقه خطر کنید. همچنین در صورت بروز برخی سناریوهای بد ، باید اقدامات تخفیفی را آماده کنید. همه اینها را برای همه طرف ها به خوبی بشناسانید. به روز رسانی های منظم: "کار راه ها خوب بود ، بنابراین من به مسیر خود برگشتم ، سپس بزرگترین طوفان تگرگ جهان شروع شد و من در یک چاله به پایان رسیدم ، بنابراین من هنوز هم می روم سر وقت حاضر نبودن."
در نرم افزار این به معنای طبل مرتب به روز رسانی است. هر هفته ، هر ماه ، هر آنچه که مناسب است. هر بار که پیشرفت یا فرافکنی را ارائه می دهید ، توجه داشته باشید که آن پیش بینی در چه زمانی به روز می شود و دلیل بهتر شدن آن (دقیق تر/دقیق تر) را توضیح دهید. وقتی برگشتید ، دوباره توضیح دهید که اطلاعات شما در مورد پروژه بهبود یافته است و کجا می توانید دقیق تر و دقیق تر باشید. حتی اگر کسی نپرسد. یک کلید اضافی دیگر برای نرم افزار:
کار خود را نشان دهید: رویکردی منسجم و شفاف برای تولید پاسخی داشته باشید که دلایل اصلی عدم قطعیت ، توضیح می دهد که چرا برآوردها فازی هستند و همچنین توضیح می دهد که چگونه فازی هستند. واقعیت داشته باشید ، نه نظری. درمورد آنچه نمی دانید صادق باشید و برای کشف آن برنامه داشته باشید. ذینفعان شما نیز باید روش شناسی شما را به خوبی درک کنند. هنگامی که آنها در مورد این فرآیند به توافق رسیدند ، نمی توانند در مورد نتایجی که این فرآیند تولید می کند بحث کنند. بنابراین این برای مدیران محصول چه معنایی دارد؟ یکی از آنها س askedال می شود: ابتدا به مدیر پروژه خود بسپارید ، اما اگر این پروژه را ندارید ، از این قیاس استفاده کنید و در مورد برنامه های پروژه/تحویل خود استفاده کنید. شما همچنین می توانید هنگام به اشتراک گذاشتن نقشه راه محصول خود با افراد از عناصر این مورد استفاده کنید.
اگر شما س askingال می کنید: درک کنید که پاسخ دقیقی دریافت نخواهید کرد و اگر این کار را انجام دهید احتمالاً اشتباه است. برنامه اضطراری خود را داشته باشید.
در مورد اینکه دفعه بعد که فرزند شما می پرسد آیا تقریباً آنجا هستید چه چیزی بگویید ... خوب ، من هیچ نظری ندارم.
ساخت سری اتومبیل های RC خودران #1-تجهیزات و برنامه
[ بازدید : 9 ] [ امتیاز : 0 ] [ نظر شما :
]