Technical Debt: From Metaphor to Theory and Practice

  • یوسف مهرداد بی‌بالان

Introduction

The metaphor of technical debt in software development was introduced two decades ago by Ward Cunningham to explain to nontechnical product stakeholders the need for what we call now “refactoring.” It has been refined and expanded since, notably by Steve McConnell in his taxonomy, Martin Fowler with his four quadrants, and Jim Highsmith and his colleagues from the Cutter Consortium with their model of the impact of technical debt on the total cost of ownership.

Consequently, the concept of technical debt in software development has become somewhat diluted lately. Is a new requirement, function, or feature not yet implemented “requirement debt”? Do we call postponing the development of a new function “planning debt”? The metaphor is losing some of its strength.

Organizing the Technical Debt Landscape

95_Q1_Technical_Debt_01Figure 1. The technical debt landscape. On the left, evolution or its challenges; on the right, quality issues, both internal and external.

95_Q1_Technical_Debt_02

Figure 2. Four colors in a backlog.

The element areas reconcile four types of possible improvements—the tasks to attend to in the future to increase value, such as adding new features (green) or investing in the architecture (yellow), and to reduce the negative effects on value of defects (red) or technical debt (black).

A Unified Theory?

Kevin Sullivan suggested that a simple model for tackling technical debt represents a software development endeavor as a sequence of changes, most of them improvements.9 At a given point in time, the past set of changes is what defines the current state of the software. Some of these past changes are the events that triggered the current debt: the change or the way it was implemented isn’t quite right from the current perspective.

The main issue facing the software development organization is how to decide about future changes: What evolution should the software system undergo, and in which sequence? This evolution is, in most cases, constrained by cost: the resources available to apply to making these changes, most likely driven by value, as viewed by external stakeholders.

The decision-making process about which sequence of changes to apply could be the main reconciling point across the whole landscape shown in Figure 1, from adding new features and adapting to new technologies to fixing defects and improving the quality, intrinsic or extrinsic. Because this decision process is about balancing cost and value, perhaps economic or financial models could become the unifying concept behind the whole landscape.

A few have already been explored to some degree:

  • Net Present Value (NPV) for a product, from the finance world;
  • Opportunity cost;
  • Real option analysis (ROA), or valuation;
  • Total cost of ownership (TCO) for an IT system.

These four models were discussed in a recent ICSE workshop on technical debt,9 with one of them (NPV) offering the most promise: it’s better formalized than opportunity cost and simpler and less proprietary than TCO, while ROA can be seen as a probabilistic extension to NPV.

Reference:

Technical Debt: From Metaphor to Theory and Practice
Philippe Kruchten, University of British Columbia, Vancouver; Robert L. Nord and Ipek Ozkaya, Software Engineering Institute
Quote:

“Improving daily work is even more important than doing daily work.” Gene Kim,

یادگیری کانبان (2)

  • یوسف مهرداد بی‌بالان

مترجم‌ها: یاسر کازرونی، مریم معصومی‌راد

به کانبان کاربردی خوش آمدید!

شما سفری آموزشی درباره‌ی کانبان را شروع کرده‌اید و این فصلِ دیباچه، اصول کانبان را با روایت داستانی به شما می‌آموزد. نیازی به هیچ‌گونه پیش‌زمینه­‌ای درمورد کانبان نداريد. شما نيز مربیان داستان یعنی مارکوس و یوآخیم (هِی! ما اینجاییم) را دنبال كنید؛ آنها کانبان را به تیم توسعه­ي نرم­افزار آموزش مي­­دهند و به آنها کمک می­کنند تا آموخته‌های خود را در کارشان استفاده كنند.

هدف از روایت این داستان ساختگی این است که مقدمه­ای برای کمک به شما باشد تا اصول کانبان را به راحتی و کم‌کم یاد بگیرید. در این فصل، روش استفاده از تکنیک‌­های تصویرسازی[1] مانند تابلوی کانبان و اقلام آن را مي‌­آموزيد تا درك بهتری از نتایج کانبان داشته باشید. همچنین یاد می­گیرید که چگونه مقدار کار در جریان را محدود کنید و می‌فهمید که چگونه چنین کاری، سرعت جریانِ کارهایتان را افزایش می‌دهد و كمك مي‌کند تا فرصت­های بهبود را شناسایی كنيد. همچنین تاحدودی روش استفاده از معیارهای بهبود را یاد می‌گیرید.

بازخوردهاي دریافت‌شده درباره‌ی این فصل به دو دسته تقسیم می‌شدند. بعضی از افراد رویکرد داستانی را می­‌پسندیدند و برخی نیز علاقه‌ی چندانی به آن نداشتند. اگر نمی‌خواهید با خواندن داستان کارتان را شروع کنید، می­توانید مستقیماً به فصل­های بعدی بروید. موضوعات اشاره‌شده در این فصل با جزئيات بيش­تری در فصل‌های بعدی بررسی می‌شود. ولی امیدواریم این فصل را بخوانید و برایتان مفید باشد. پس از خواندن این فصل، با به‌کارگیری اصولی که ما در داستان به تیم می­‌آموزیم، باید بتوانید اجرای کانبان را شروع کنید.

در فصل‌های بعدی کتاب به جزئیاتي مانند اصول حاکم در کانبان، روش‌های پیشنهادی و تجربه‌های مطرح‌شده توسط تیم‌های کانبان در سراسر دنیا خواهیم پرداخت. اگر پس از خواندن بخش اول، احساس کردید که برخی از پرسش‌ها بی­‌پاسخ گذاشته شده است، مطمئن باشید که پاسخ تمامي پرسش‌ها را در بخش­های بعدی کتاب پیدا خواهید کرد.

اما کارها را باید به ترتیب اولویت انجام داد؛ بیایید به داستان بازگردیم.

مقدمه

اعضای تیم در اتاق كناری جمع شده­‌اند. آنها سعي مي‌­كنند با توصیف ویژگی‌های همدیگر، خودشان را به مارکوس و یوآخیم معرفی ­کنند، تکنیکی که به نظر می‌رسد تجربه‌ی ماهرانه‌ای است و با قضاوتی اغراق‌آمیز و طنزآمیز همراه است.

k4

«آدام[2] آزمون­گره. مدت­ زیادیه که به این کار مشغوله و تقریباً به همه‌­چيز مشكوکه: به موضوعات جدید، به قابلیت‌های­ دیگران و بیش­ از همه به کیفیت کاری که دیگران انجام می­دن. او سعی می­کنه انتقادهای خودش رو به­شکلی دوستانه مطرح کنه و معمولاً در این کار موفقه».

«آدام دوست داره به­ روش خودش کار کنه. او تغییر را دوست نداره؛ تغییر از نظر اون یعنی آزمون رگرسیونِ[3]».

k5

«بِث[4] کارمند جدیده. او مسئول تحلیل نیازمندی­ها در تیمه. کارش شامل موضوعات زیادیه؛ از پرسیدن خواسته‌های کسب‌­وکار و نوشتن آن­ها گرفته تا کسب اطمینان از اینکه توسعه ­دهنده­‌ها درست فهمیدن چی رو باید انجام بدن».

«بِث همیشه دنبال کشف راه‌های جدید برای انجام کاراست.»

k6

«سزار[5] مسئول کسب‌­وکاره. مدت­ها قبل و به‌‌تنهایی، اولین نسخه‌­ي اینترنت بانک رو که تیم الان روی اون کار می­کنه، نوشته.»

« حالا دیگه بخش آی‌تی رو ول کرده و مسئول بخش کسب­‌وکار در واحد عملیاته[6] سزار دوست داره هنوز خودش رو یک توسعه‌­دهنده بدونه و البته اکثراً «در صحنه» حضور داره!»

k7

«دافنه یک توسعه­‌دهنده­‌ی محشره. او به این معروفه که می­تونه توی یک ساعت بیشتر از کد یک‌هفته‌ی خیلی از توسعه­دهنده‌­ها کد بزنه.»

«ولی اون دوست داره فقط تنهایی کار کنه؛ بقیه­ی افراد فقط سرعتش رو کم می­کنند. اگر از دافنه بپرسید که بهترین روش کارکردن چیه، به شما می‌گه: با سزار دوتایی بشینیم و در مورد طراحی سیستم تصمیم­ بگیریم. بعدم که همه‌چیز فراموش می­شه. همه‌ی این تشریفات و سلسله ‌مراتب‌ اداری مانع کارشند.»

k8

«اریک[7] توسعه‌دهنده‌ایه که فقط روزا کار می­کنه … چون مجبوره. اما شب­ها، گیتاریست معروفیه که در سالن­ها و محافل موسیقی گیتار می­زنه. به زودی بخت و اقبال بهش رو می‌کنه. به‌زودی!»

«کدنویسی خیلی خوبه ولی فهمیدن این‌که چرا داریم این کار رو می­‌کنیم معمولاً خیلی سخته.»

«اریک دوست داره کارهاش رو تمام کنه تا بتونه به سؤالات سایت http://guitar.stackexchange.com بیشتر پاسخ بده.»

k10

«فرانک[8] مدیر بخش آی‌تی در واحد عملیاته. 36 نفر تحت مدیریت او هستن و سعی می­کنه حداقل ماهی یک بار با تک‌تک‌ آن­ها جلسه داشته باشه؛ اما جلسات دیگه‌ای هم داره که باید توش شرکت کنه.»

«او به محصول خیلی اهمیت می‌­ده، اما خیلی براش سخته که پا به پای ویژگی­های جدید محصول حرکت کنه. فرانک اوقات فراغت خود را صرف توسعه‌ی نیروی انسانی و کارمنداش مي‌­كنه.»

بخش بعدی

بخش قبلی

[1] Visualization Techniques

[2] Adam

[3] Regression test

[4] Beth

[5] Cesar

[6] Business part of the operation

[7] Eric

[8] Frank

گزیده:

“kanban is something you strive to get rid of, not to be proud of” 😯
a Toyota person

یادگیری کانبان (1)

  • یوسف مهرداد بی‌بالان

مترجمان: یاسر کازرونی، مریم معصومی‌راد

پیشگفتار

بخشهایی از کتاب Kanban in Action نوشته مارکوس هامربرگ و یوآخیم ساندن به فارسی برگردانده شده است؛ قسمتهایی از آن به مرور در اینجا منتشر خواهد گردید.

بخش اول

بخش اول کتاب به معرفی کاربردی کانبان می‌پردازد. هدف بخش اول این است که شما بتوانید اجرای کانبان را شروع کنید و در کنار آن، درک اولیه‌ای از اصول حاکم بر کانبان پیدا کنید و با بعضی از موضوعات پیشرفته‌ی آن نیز آشنا شوید تا اشتیاق‌تان ­برای ادامه‌ی این مسیر بیشتر شود.

با یک داستان کوتاه شروع می‌کنیم که داستانِ آشنایی یک تیم توسعه‌­ي نرم‌­افزاری با کانبان و استفاده از آن را روایت می­کند. اگر رویکرد داستانی را دوست ندارید، می­‌توانید از این فصل بگذرید و مستقیماً به سراغ فصل بعد بروید؛ نگران نباشید، بخش عمده‌ای از مطالب فصل یک با جزئیات بیش­تری در فصل‌های بعد بررسی می‌شوند.

گروه كانبانِروس[1] كار خود را شروع مي­‌كند

مارکوس[2] و یوآخیم[3] در حال سخنرانی در یک گردهمایی‌اند که موضوع آن، «معرفی کاربردی کانبان» است. سخنرانی در حال اتمام است. بیایید به آن­ها ملحق شویم.

k1

«جمع‌بندی: کانبان رویکردي برای توسعه­ي نرم­افزاره که مبتنی بر اصول نابه[4]. خیلی از شرکت‌های دنیا به سرعت کانبان رو انتخاب کردند. شما هم می­تونید كانبان رو انتخاب کنید! از فردا شروع کنید، باید شروع کردن رو متوقف کنید و تمام کردن رو شروع کنید.». یوآخیم سخنرانی را با این جمله تمام کرد: «معرفی کوتاه و كاربردي ما درباره‌ی کانبان تمام شد. ولی گفته‌های قبلی ما رو فراموش نکنید؛ شما می­‌تونید از فردا شروع کنید. شروعش سخت نیست. اجراش می‌تونه اثرات شگفت‌­انگیزی روی بهره­وری شما داشته­ باشه.»

مارکوس در حالی‌که تلاش می‌­کرد سخنانش را تمام کند تا برای یک بار هم که شده ارائه‌اش را سروقت تمام کند، گفت: «از همه­‌ي شما که تشریف آوردید متشکرم! اگه سوالی داشتید ما برای چند دقیقه‌ای همین دور و برا هستیم.»

k2

یوآخیم مشغول پاک کردن تابلو و جمع کردن یادداشت­ها از روی دیوار شد؛ مارکوس درحالي­‌كه به سمت درب خروج می‌رفت، به تعدادی از پرسش‌های کوتاه، پاسخ داد و به بعضی از افراد هم گفت که برای پیدا کردن پاسخ پرسش‌های خود، اسلایدها را دانلود کنند. هنوز چند قدم بیشتر نرفته بود که وسط راه، ناگهان خانمی جلوی او را گرفت.

زن مانند کسی که کلاه سرش رفته با ناامیدی نگاهی ‌کرد و گفت: «اینجا چه خبره؟ چرا دارید می‌­رید؟ به من نگید که سخنرانی رو کلاً از دست دادیم؟»

مارکوس پاسخ داد: «چی رو از دست دادید؟ سخنرانی رو؟ بله، سخنرانی همین الآن تموم شد، ولی می‌­تونید فیلمش رو آنلاین ببینید.»

زن شروع کرد به گریه: «اوه نه!». با سرش به مردی که گروهی را به داخل اتاق راهنمایی می­کرد اشاره کرد و گفت: «ما فقط برای این سخنرانی اینجا اومدیم! اون رو ببین! شبیه کسی‌ یه که فقط چند دقيقه‌ی ابتدایی یک سخنرانی رو از دست داده.»

k3

مارکوس در­حالی­که سعی می­کرد مشکل را حل کند گفت: «خب، اگه دوست دارید در سخنرانی حضور داشته باشین، احتمالاً توی پاییز سخنرانی دیگه‌ای داریم.»

زن با چهره‌ای واقعاً غمگین گفت: «این حرفها مشکل ما رو حل نمی­کنه؛ ما می‌­خواستیم فوراً کار رو شروع کنیم! همه‌ی تیم هم اینجان؛ حتی بچه‌های کسب­‌وکار هم به توصیه‌­ي من، برای این دوره‌ی آموزشی همراه ما اومدند. راستی! سلام، من دافنه[5] هستم.»

یوآخیم به آنها ملحق شد، خودش را به دافنه معرفی کرد و بعد پیشنهاد داد: «خب؛ اگر عجله دارید، چرا من یا مارکوس رو برای گرفتن مشاوره، یک روز به شرکت‌تون دعوت نمی‌کنید؟»

مرد محترمی که خودش را به دافنه رسانده بود گفت: «خب، ما می­‌تونیم این کار رو بکنیم اما در حال حاضر، شکایت­‌های زیادی هم از طرف تیم و هم افرادی که با ما کار می‌­کنند وجود داره. می­‌خواستیم کاری برای حل آنها انجام بدیم و امیدوار بودیم که امروز چیزی یاد بگیریم که توی این کار به ما کمک کنه».

یوآخیم پرسید: «منظور شما چه نوع مشكلاتيه؟»

مرد خیلی صریح و رک گفت: «تیم حس می­‌کنه در باتلاقی از کارها گیر کرده و افرادی هم که در انتظارند تا کارها رو تحویل بگیرند، فکر می­کنند این کارها حالا حالاها تمام نمیشه و تا ابد طول می‌کشه».

دافنه وسط حرفهای او پرید و گفت: «با وجودی که کارهای زیادی برای انجام داریم، درباره‌ی اینکه کدام پروژه­ مهم‌تره و اول باید شروع بشه بحث­‌های طولانی داریم. با همه‌ی این کارها، باز هم در انتخاب پروژه­ی درست­ اشتباه می­کنیم».

مرد گفت: «و … خب، مشکلات که زیاده ولی نمی­خواهیم وقت شما رو بگیریم.» و در حالی که منتظر پاسخ بود پرسید: «داشتید می­‌رفتید؟ آره؟»

مارکوس خیلی‌ سریع جواب داد: «بله! مگر اين­كه شما پیشنهاد بهتری داشته باشید». و گفتن این جمله، شروع یک چالش جذاب بود.

رییس محترم گفت: «این کاری است که ما می‌خواهیم انجام بدیم! همین الآن و همین جا شما دو نفر را به عنوان مشاور استخدام می‌کنم. روی اسلایدی كه روی پرده است نوشته «از فردا شروع کنید». به شما فرصت می­دم که نشان بدید به حرف­هایی که می­زنید اعتقاد دارید؛ دو صد گفته چون نیم کردار نیست. چقدر مي­تونيد وقت بذاريد؟» سپس سکوت کرد و به چشم‌های مارکوس و یوآخیم خیره شد.

یوآخیم به ساعتش نگاه كرد و گفت: « هنوز دو ساعت تا زمان حرکت ما مونده.»

ریيس دستش را دراز کرد و گفت: «خب! اگه این طوره: کانبان را در دو ساعت راه می‌اندازیم».

یوآخیم به مارکوس نگاه ­کرد و گفت: «نمي­‌تونيم همه‌ی مسأله‌ها را حل کنیم، فقط می‌­تونیم شما را توی مسیر درست قرار بدیم». آنها به یکدیگر نگاه کردند و سرشان را به نشانه‌ی تأیید تکان دادند و گفتند: «خب! دو ساعت وقت داریم. چالش پیشنهادی شما پذیرفته شد!»

بخش بعدی

[1]Kanbaneros

[2] Marcus

[3]Joakim

[4] Lean

[5] Daphne

گزیده:

“Those who cannot change their minds cannot change anything.” George Bernard Shaw

سال نو مبارک

  • یوسف مهرداد بی‌بالان

 

کای تازه بهار عالم افروز
هر روز تو عید باد و نوروز

بخت تو بهار بی‌خزان باد
عالم ز تو رشگ بوستان باد

 

دوستان و همراهان گرامی، سال نو بر شما خوش باد

در سال نو،
دلی خوش، لبی خندان، تنی سالم، آرزوهای زیبا، روزهایی قشنگ، پیروزی‌های پی‌درپی و آینده‌ای درخشان
برایتان آرزومندم

 

بهار 1395 خورشیدی

حرفهایی برای نگفتن

  • یوسف مهرداد بی‌بالان

مقدمه:

در دوره هایی که برگزار می کنم معمولا دانشجویان باید یک پروژه را انجام بدهند. میزان مشارکت دانشجویان در پروژه، شدت و ضعف دارد. اما در یکی از دوره ها، دانشجویان آن قدر خوب کار کردند که خیلی تحت تأثیر قرار گرفتند. این نوشته را برای آنها نوشتم.

نامه:

سلام، شب به خیر!
کارهای شما در پروژه‌ی دوره متدهای چابک، مرا بسیار تحت تاثیر قرار داد. این نوشته را در پی آن نوشتم.

«حرفهایی برای نگفتن»
ای کاش آن قدر سرمایه داشتم که می‌توانستم هزینه‌ی یک زندگی راحت را برایتان فراهم کنم و ازتان می‌خواستم که ایده‌ای را انتخاب کنید و آن را اجرا کنید. همان طور که به دنبال تاکسی‌یاب هستید. ایده‌ای که زندگی را برای مردم راحت‌تر کند و رفاه آنان را افزایش دهد.
ای کاش می‌توانستم فضایی برایتان فراهم کنم که همان قدر که در تاکسی‌یاب خوشحال هستید، در آنجا نیز کار کنید و خوشحال باشید.
نه به سیستم حضور و غیاب نیازی بود و نه به مدیری!
فقط هیجان بود، شادی بود و تلاش!
مسابقه‌ای که رقیب‌اش، فقط خودمان بودیم.
ای کاش می‌توانستیم با این عمر، با این نعمت خدادادی، کاری کنیم که بتوانیم با افتخار زیرش را امضاء کنیم.
به امید آینده
یوسف مهرداد
چهارم اسفند نود و چهار

برنامه‌ریزی چندسطحی در اسکرام – بخش سوم

  • یوسف مهرداد بی‌بالان

مترجم: یاسر کازرونی

برنامه‌ریزی انتشار

هدف از برنامه‌ریزی انتشار، ایجاد توازن[1] بین محدوده، تاریخ انتشار و بودجه در تحویل‌ تدریجی محصول است.

معمولاً در توسعه­ی محصول، منطقی و ضروری است که برنامه‌ریزی انتشار پس از ترسیم چشم‌انداز (برنامه‌ریزی محصول) و قبل از شروع اولین اسپرینتِ هر انتشار انجام شود. در این مقطع از کار می‌توانید برنامه‌ای برای انتشار تهیه کنید که بین میزان کاری که می­توانید انجام دهید و تاریخ انتشار، تعادل ایجاد ‌کند.

برای تعیین تعداد ویژگی‌هایی که می‌توانید در تاریخ معینی تحویل دهید (انتشار با تاریخ ثابت) یا تعیین تاریخ تحویل مجموعه‌ای از ویژگی­ها (انتشار با محدوده‌ی ثابت) باید تعداد قابل قبولی از اقلام بک‌لاگ محصول را ایجاد و برآورد کنید.

یک روش ساده برای تصویرسازی[2] یک انتشار، کشیدن خطی افقی بر روی بک‌لاگ محصول است (شکل 15-3). اقلام بالای این خط در این انتشار قرار دارند و اقلام زیر این خط در این انتشار قرار نمی‌گیرند. به مرور زمان که دید بهتری از محصول پیدا می‌کنید، ممکن است این خط به سمت بالا یا پایین جا‌به‌جا شود. در فصل 18 درباره­ی روش تعیین محل این خط توضیح خواهیم داد.

شکل 15–3: استفاده از خط انتشار در بک‌لاگ محصول

1-1

حالا به آسانی می‌توانید ارتباط بین نقشه‌ی راه محصول و بک‌لاگ محصول را برقرار کنید و به کمک آن جزییات بیش‌تری از محتوای چند انتشار آتی در نقشه‌ی راه محصول دست پیدا کنید (شکل 15-4). هر انتشار در نقشه‌ی راه محصول با مجموعه‌ای از ویژگی‌ها در بک‌لاگ محصول در ارتباط است.

شکل 15–4: نگاشت انتشارهای نقشه‌ی راه محصول به بک‌لاگ محصول

2-1

برنامه‌ی انتشار باید دارای بُعد زمان نیز باشد. بُعد زمان را می‌توان با اسپرینت‌هایی که برای تکمیل انتشار لازم است نشان داد. اغلب انتشارها از نظر حجم کار، بزرگ هستند و ویژگی‌های موجود در آنها را نمی­توان در یک اسپرینت انجام داد و تمام کرد (شکل 15-5).

شکل 15–5: هر انتشار می­تواند شامل یک یا چند اسپرینت باشد

3-1

ممکن است در برنامه‌ریزی انتشار بخواهید پا را فراتر بگذارید و ویژگی‌هایی را که در چند اسپرینت اول قابل تحویل‌اند تخمین بزنید. این کار می­تواند برای ایجاد هماهنگی بین چند تیم یا درخواست زودتر از موعد یک تیم برای سخت‌افزار، ابزار یا کمکِ دیگران، مفید باشد. اما تخمین بیش از چند اسپرینت معمولاً بی‌فایده است و اصلِ«به‌موقع»[3] و «به اندازه‌ی کافی»[4] بودن برنامه‌ریزی را نقض می‌کند.

برنامه‌ریزی اسپرینت

برنامه‌ریزی اسپرینت در ابتدای هر اسپرینت انجام می‌شود و طی آن در مورد اقلامی از بک‌لاگ محصول که در اسپرینت جاری انجام خواهند شد، توافق می‌شود. تیم در این فعالیت، بک‌لاگ اسپرینت را تهیه می‌کند که شامل کارهایی است که در سطح وظیفه­اند[5] و انجام آنها برای تکمیل اقلام بک‌لاگ محصول ضروری است (شکل 15-6).

تیم در برنامه‌ریزی اسپرینت، سطح بعدی از رویکرد برنامه‌ریزی تفصیلی[6] و به‌موقع را انجام می­دهد[7]. جزییات برنامه‌ریزی اسپرینت را در فصل 19 بررسی خواهیم کرد.

برنامه‌ریزی روزانه

جزیی‌ترین سطح برنامه‌ریزی تیم در جلسات روزانه‌ی اسکرام اتفاق می‌افتد. همان‌طور که قبلاً گفته شد برنامه‌ریزی روزانه فعالیتی است که در آن، اعضای تیم دور هم جمع می‌شوند و هر کس به­نوبت توضیح می‌دهد که:

  • از اسکرام روزانه‌ی قبلی تا حالا چه کارهایی انجام داده است
  • چه کارهایی را برای امروز برنامه‌ریزی کرده است
  • با چه مشکلات و موانعی روبه­روست

شکل 15–6: هر اسپرینت دارای یک بک‌لاگ اسپرینت است

4-1

در اسکرام روزانه، اعضای تیم به صورت دسته­جمعی و به شیوه‌ای بسیار شفاف، تصویر کلانی از برنامه‌ی روزانه‌ی­ تیم را ارائه می‌دهند. چنین کاری به تیم کمک می‌کند تا از هشدار و آماده­باش­ اعضایش استفاده کند. مثلاً ممکن است یکی از اعضا بگوید: «امروز می‌خواهم روی رویه‌ی ذخیره­شده‌ی‌[8] پایگاه داده کار کنم و باید آن را تا ظهر تمام کنم. کسی که می‌خواهد روی منطق کسب‌وکار[9] کار کند باید آماده باشد تا بلافاصله بعد از ناهار کارش را شروع کند و حواسش باشد که پیاده‌سازی منطق کسب‌وکار برای تکمیل کارِ ما در این اسپرینت روی مسیر بحرانی[10] قرار دارد». چنین گفتگوهایی باعث می‌شود تا موانع احتمالی در اولین فرصت شناسایی شوند و رفع آنها منجر به بهبود اجرای اسپرینت گردند.

سخن پایانی

در این فصل نشان داده شد که برنامه‌ریزی در توسعه به روش اسکرام، چگونه در چندین سطح و هر یک با جزییات متفاوت انجام می‌شود. در شکل 15-7 فراورده‌های هر یک از این سطوح (به جز برنامه‌ریزی سبد محصول و برنامه‌ریزی روزانه) و نحوه‌ی ارتباط آنها با یکدیگر به تصویر کشیده شده است.

در فصل‌های بعد به طور عمیق‌تری به برنامه‌ریزی سبد محصول، برنامه‌ریزی محصول، برنامه‌ریزی انتشار و برنامه‌ریزی اسپرینت خواهیم پرداخت.

شکل 15–7: برنامه‌ریزی سلسله‌مراتبی[11] در اسکرام

5-1

[1] Trade-off

[2] Visualize

[3] Just in time

[4] Just enough

[5] Task-level

[6] Detailed planning

[7] همان‌طور که گفته شد، برنامه‌ریزی در اسکرام در سطوح مختلفی از جزییات مانند استراتژی، سبد محصول، محصول، انتشار، اسپرینت و روزانه انجام می‌شود. هر سطح، جزییات موارد تعیین‌شده‌ در سطح قبلی را برنامه‌ریزی می‌کند. برنامه‌ریزی اسپرینت پس از برنامه‌ریزی انتشار انجام می‌شود که در آن جزییات روش انجام اقلام بک‌لاگ در یک اسپرینت را برنامه‌ریزی می‌شود. [مترجم]

[8] Stored procedure

[9] Business logic

[10] Critical path

مسیر بحرانی، مجموعه‌ای از فعالیت‌ها هستند که بلندترین مسیر در طول پروژه را تشکیل می‌دهند. جمع زمان فعالیت‌های موجود در مسیر بحرانی نشان‌گر حداقل مدت ممکن برای انجام پروژه است و هرگونه تغییری در آنها باعث افزایش مدت پروژه خواهد شد. [مترجم]

[11] Hierarchical

The Illusive Definition of Agile

  • یوسف مهرداد بی‌بالان

What is Agile? Is it a set of practices, a set of values, or a set of mind—or some combination of the three? Is it “Doing Agile” or “Being Agile?”

Is agile defined by a checklist of offered practices—the Nokia test for Scrum, or checking 9 of 12 practice boxes for XP?

Is agile a mindset, an amalgamation of adaptation, embracing change, transparency, collaboration, complex systems theory, or courage?

Is agile the frequent delivery of high quality customer value while effectively adapting to change, regardless of specific practices? (Ken Collier)

The right-brained and the left-brained are alive and well in this debate. Daniel Pink (A Whole New Mind) refers to this as L-directed thinking, “sequential, literal, functional, textual, and analytic,” versus R-directed thinking, “simultaneous, metaphorical, aesthetic, contextual, and synthetic.” This agile definition debate is a classic one that pits these two halves of ourselves against each other.

Is agile a management style, one that encourages self-organization, servant leadership, controlled chaos, or light-touch management?

Is agile a set of technical practices—iterative development, refactoring, coding standards, pair programming, or test-driven development?

Is agile a methodology or a set of core values and guiding principles?

There are many people and organizations who want a prescriptive, non-ambiguous definition of agile (or Scrum or XP or …). They are the L-directed thinkers, the ones who still want predictable plans and measures for the un-measurable. Conversely, there are those who insist that agile is a state of mind, a style of management, a wisp of content and a whisper of context.

And, there are those who are comfortable in-between—realizing that while at one level agile might be evaluated by a core set of practices, the essence of agile involves more philosophy than tutorial.

Is agile a set of rules established by some prescient guru, or an adaptive learning process that uses rules merely as a starting point?

Is agile a transcendent concept for bringing purpose, meaning, satisfaction, and fun to work?

The motto of the Scrum Alliance, “Transforming the World of Work,” speaks to agile’s wider purpose and meaning. In the final chapter of Adaptive Software Development I make two statements about work:

“People want to succeed; given the right environment, people motivate themselves to heroic achievements.

The right environment is one of adaptation through self-organization.”

In its search for purpose and meaning the core of agile has a secular spirituality feel to it. This core is why thousands upon thousands of individuals have signed the Agile Manifesto. It’s why hundreds of thousands around the world have embraced agile—even though they can’t quite define it.

Agile is one of those illusive things that the harder you try to grasp it, the more it slips through your fingers.

For me, the day we explicitly define agile, is the day it becomes sterile and lifeless.

For me, the day agile becomes whatever someone wants it to be, is the day it becomes useless.

For me, agile is a whole-minded philosophy, one that combines the left-brained and the right-brained—balancing on the precarious edge between the literal and the metaphysical, between performance and meaning. We need to revel in that balance and ambiguity, not try to define away its awe, grandeur, and paradox.

Jim Highsmith

برای خروج از جستجو کلید ESC را بفشارید