
چگونه مدت زمان مورد نیاز برای یک پروژه را برآورد کنیم؟
به گزارش اپست به نقل از codecademy ، “چه زمانی می توانیم این را ارسال کنیم؟” اگر این سوال باعث تپش قلب شما می شود، نگران نباشید. دلایل زیادی وجود دارد که چرا رهبر تیم یا مدیر محصول شما ممکن است از شما زمان تخمینی بخواهد – و احتمالاً آنها سعی ندارند شما را عجله کنند.
جدول زمانی و تاریخ های مقرر برای همه بخش های یک کسب و کار حیاتی هستند. فروش باید بتواند به مشتریان بالقوه بگوید که چه زمانی یک ویژگی منتشر می شود و پشتیبانی مشتری باید بتواند به کاربران بگوید که چه زمانی یک رفع اشکال در راه است. در حالی که مدیران محصول یا پروژه اغلب مسئول تدوین و اطلاع رسانی جدول زمانی به ذینفعان پروژه هستند، آنها تمام زمینه های لازم برای تخمین مدت زمان بخش برنامه نویسی را نخواهند داشت.
تخمین زمان (یا پیچیدگی) یک پروژه کدنویسی بسیار دشوار است. اغلب مهندسان پیشنهاد می کنند که تخمین خود را به سادگی دو برابر یا چهار برابر کنید تا به چیزی واقع بینانه نزدیک شوید. اما وقتی تازه شروع میکنید، ممکن است نقطه مرجعی برای سنجیدن مدت زمان یک پروژه نداشته باشید، بنابراین باید حدس آگاهانهای بزنید – در اینجا نحوه انجام آن آمده است.
چگونه تخمین کار مهندسی نرم افزار را انجام دهیم
روشهای بسیاری برای تخمین وجود دارد که برخی از آنها حتی میتوانند سرگرمکننده باشند (مانند پوکر برنامهریزی و تخمین با تاس). این روشها معمولاً زمانی مفیدتر هستند که تجربه پروژههای گذشته را برای پایه قرار دادن تخمینها داشته باشید. در اینجا چند مرحله وجود دارد که میتوانید برای تعیین محدوده پروژهای که قبلاً انجام ندادهاید، انجام دهید. صرف نظر از رویکرد تخمین خود، ثبات کلید است. به یک روش پایبند باشید تا دقت تخمینهای خود را پیگیری کنید و آنها را بر اساس نتایج هر پروژه اصلاح کنید.
تهیهی یک طرح
برنامهریزی و تخمینزدن دو مقولهٔ مرتبط هستند. نمیتوانید بدون فکر کردن در مورد مسئلهای که باید حل کنید و تمام عناصر پروژه، تخمین بزنید. با کدام قسمتهای کد کار خواهید کرد؟ سایر تیمها چگونه تحت تأثیر قرار خواهند گرفت؟ آیا راهحلهای موجودی وجود دارد که بتوانید آنها را ادغام کنید؟ پاسخ به این سؤالات میتواند موانع و جایگزینها را آشکار کند. البته، پیشبینی همه چیز غیرممکن است، به همین دلیل است که نظرات دیگران ارزشمند است.
از فرد دیگری بپرس
گفتگو با یک هم تیمی دیگر می تواند به شما در پردازش نیازها کمک کند. یک هم تیمی یا همکار مورد اعتماد پیدا کنید و با هم همکاری کنید تا آنچه فکر می کنید برای اجرای درخواست نیاز دارید را تجزیه کنید و در هر جایی که درخواست ثبت شده است، مانند تیکت Jira یا مسئله GitHub، مستند کنید. همکاری با هم تیمی ها یک مهارت بین فردی کلیدی برای توسعه دهندگان است و مستند کردن فرآیندهای فکری شما به این روش به دیگران اجازه می دهد تا بازخورد موثر تری ارائه دهند. پس از آن، رهبر تیم شما می تواند تخمین شما را بررسی کرده و هر حوزه ای را که ممکن است نادیده گرفته باشید، برجسته کند.
از یک متریک استفاده کنید
در حالی که برخی از تیمها از امتیازهای داستان یا امتیازهای پیچیدگی برای تعیین ارزش کارهای مهندسی استفاده میکنند، مفهوم چابک «روزهای ایدهآل» ممکن است معیاری مفید برای کارهای ناآشنا باشد. چند روز کامل و بدون وقفه طول میکشد تا یک کار را از ابتدا تا انتها تکمیل کنید؟ با شکستن کار به این روش، تخمین کمتر انتزاعی میشود. مراقب باشید که به ذینفعان اطلاع دهید که چه پروژههای دیگری یا رویدادهای غیرمنتظره ممکن است روزهایی را که برای کار اختصاص میدهید مختل کنند. میتوانید اطلاعات بیشتری در مورد روزهای ایدهآل در دوره رایگان برنامهریزی پروژه چابک کسب کنید.

درک تکلیف
بسیاری از روشهای تخمین زمان کار، فرض میکنند که شما در یک تیم کار میکنید. اما وقتی یک فریلنسر یا پیمانکار مستقل هستید، باید قبل از فکر کردن به زمان تکمیل، همه جزئیات تحویلپذیر را بدانید. مثلاً آیا به یک مشخصات نیازمندی، داستانهای کاربری، یا اپیک نیاز دارید؟ این ممکن است به معنای تماس با مشتری برای جزئیات بیشتر باشد تا مطمئن شوید که در مورد دامنه پروژه همسو هستید و میتوانید یک جدول زمانی دقیق ارائه دهید.
اگر تلاشهای تخمین شما نشان میدهد که کار بیش از حد زمان موجود است، درخواستها را به موارد ضروری و موارد دلخواه تقسیم کنید. در برخی موارد، شما و مشتری یا مدیر محصول ممکن است بتوانید بر روی یک محصول حداقل قابل عرضه (MVP) توافق کنید – یک نسخه محدود از درخواست که هنوز حداقل الزامات را برآورده میکند.
7 عامل شگفتانگیز که بر زمانبندی پروژهها تأثیر میگذارند
زمانبندی پروژهها به عوامل مختلفی بستگی دارد که خارج از کنترل شما هستند – در اینجا برخی از مشکلات رایجی که میتوانید مراقب آنها باشید، آورده شده است.
وقت خواندن و تفکر
باید زمانی را برای خواندن، تأمل و درک درخواست اختصاص دهید، و سپس همین کار را برای راهحل پیشنهادیتان انجام دهید. به همه چیزهایی که نیاز دارید فکر کنید: آیا برای انجام یک کار به تیمهای دیگر وابسته هستید؟ آیا اطلاعات ناقصی وجود دارد که باید تکمیل شود؟ همه این عوامل بر زمان کلی لازم برای تحویل محصول تأثیر میگذارند.
وابستگی به تیم های دیگر
کار توسعه نرم افزار در انزوا انجام نمیشود. برای مثال، بهعنوان یک مهندس فرانتاند، ممکن است برای دریافت دادهها برای یک ماژول فرانتاند، نیاز به همکاری با تیم بکاند برای دریافت کمک در رابطه با یک API داشته باشید. شناسایی این وابستگیها و ارتباط بین عملکردهای مختلف مهندسی، بخش مهمی از تخمین است.
همچنین به یاد داشته باشید که نیروهای بزرگتری در حال بازی هستند. درخواستهای ویژگی و بهبودهای کیفیت زندگی که از شما خواسته میشود تخمین بزنید، ممکن است قبلاً تعهداتی به مشتریان یا مشتریان بالقوه برای تضمین یک معامله باشند. با گذراندن دوره رایگان ما، ارتباطات مؤثر ذینفعان برای متخصصان فناوری، اعتماد به نفس خود را در جهتیابی وابستگیهای بین تیمی افزایش دهید.
توسعه در مقابل زمان سپری شده
دو عنصر اصلی در مدت زمان پیادهسازی یک کار وجود دارد: زمان توسعه پیوستهای که صرف آن میکنید و زمان کل سپری شده از زمانی که درخواست ارسال میشود تا زمانی که راهحل به تولید منتقل میشود. مهندسان به ندرت روی یک کار یا تیکت در یک زمان کار میکنند، بلکه چندین مورد (مانند درخواست محصول و تیکت باگ) را همزمان مدیریت میکنند.
تعویض زمینه اجتنابناپذیر است، بنابراین حتماً آن را در برآورد پروژه در نظر بگیرید. همچنین میتوانید با استفاده از دوره رایگان ما، مدیریت زمان خود را بهبود بخشید: “مدیریت زمان شما به گونهای که شما را مدیریت نکند”.
بازبینی کد و تست
نوشتن کد فقط یک بخش از پازل است – شما همچنین باید زمانی را برای ادغام ایمن کد در نظر بگیرید. هر سازمان فرآیندهای خاص خود را دارد که میتواند شامل ادغام مداوم و سایر بررسیهای خودکار به عنوان بخشی از درخواست کشیدن، و همچنین بررسیهای همتا باشد. سپس استقرار وجود دارد، زمانی که طول میکشد تا از محیط توسعه به مرحله میانی و سپس به تولید بروید.
تست نیز همیشه به جدول زمانی شما اضافه خواهد شد، چه خودتان آن را انجام دهید یا به یک تیم تضمین کیفیت بسپارید. برخی از توسعهدهندگان باتجربه تخمین میزنند که نوشتن تستهای واحد به طور موثر زمان توسعه را دو برابر میکند (حتی بدون در نظر گرفتن زمانی که برای اجرای تستها لازم است)، بنابراین مهم است که مشخص کنید آیا باید زمان تست را در برآوردهای خود بگنجانید یا خیر.
سرعت انتشار
برنامه انتشار شرکت شما ممکن است متفاوت باشد، با انتشار ماهانه، سه ماهه یا حتی کمتر. فقط به این دلیل که کد آماده است، به این معنی نیست که بلافاصله در تولید زنده خواهد شد، بنابراین می تواند مفید باشد که هنگام تخمین به تاریخ های انتشار مراجعه کنید.






