هزینه تغییر را پایین بیاورید¶
با کم کردن مانعهای تغییر، منعطف بمانید¶
تغییر بهترین دوست شماست. هرچه تغییر دادن گرانتر باشد، احتمال اینکه واقعاً تغییر بدهید کمتر میشود. اگر رقبا بتوانند سریعتر از شما تغییر کنند، در نقطهضعف بزرگی هستید. اگر تغییر بیش از حد گران شود، کارتان تمام است.
اینجاست که لاغر ماندن واقعاً کمک میکند. توانایی تغییر فوری چیزی است که تیمهای کوچک بهصورت پیشفرض دارند و تیمهای بزرگ هرگز ندارند. همینجاست که بزرگها به کوچکها حسادت میکنند. چیزی که در یک سازمان عظیم ممکن است هفتهها طول بکشد، در یک سازمان کوچک و لاغر شاید فقط یک روز وقت ببرد. این مزیت بیقیمت است. تغییر ارزان و سریع، سلاح پنهان کوچک بودن است.
و یادتان باشد: همه پول، همه بازاریابی و همه آدمهای دنیا نمیتوانند چابکیای را بخرند که از کوچک بودن میآید.
در فناوری وب، تغییر باید آسان و ارزان باشد. اگر نتوانید در لحظه تغییر کنید، از کسی که میتواند عقب میمانید. برای همین باید دنبال جرم کمتر باشید.
پدیداری¶
پدیداری یکی از اصلهای بنیادین چابکی است و از همه بیشتر به جادو نزدیک است. ویژگیهای پدیدار نه طراحی میشوند و نه از قبل ساخته میشوند؛ آنها بهعنوان نتیجه پویای بقیه سیستم رخ میدهند. واژه emergence از لاتین میانه قرن هفدهم میآید، به معنای «رخداد پیشبینینشده». نمیتوانید برایش برنامهریزی یا زمانبندی کنید، اما میتوانید محیطی بسازید که در آن اجازه دهید اتفاق بیفتد و از آن سود ببرید.
نمونه کلاسیک پدیداری در رفتار دستهجمعی پرندگان است. یک شبیهسازی کامپیوتری میتواند با سه قاعده ساده، مثلاً «به هم نخورید»، ناگهان رفتاری بسیار پیچیده بسازد: دسته پرندگان با ظرافت در آسمان میچرخد، دور مانعها دوباره شکل میگیرد و همینطور ادامه میدهد. هیچکدام از این رفتارهای پیشرفته در قاعدهها مشخص نشدهاند؛ از پویایی سیستم پدیدار میشوند.
قاعدههای ساده، مثل شبیهسازی پرندگان، به رفتار پیچیده میرسند. قاعدههای پیچیده، مثل قانون مالیات در بیشتر کشورها، به رفتار احمقانه میرسند.
بسیاری از روشهای رایج توسعه نرمافزار عارضه جانبی بدی دارند: هر شانسی برای رفتار پدیدار را حذف میکنند. بیشتر تلاشها برای بهینهسازی، یعنی محکم بستن چیزی به شکل بسیار صریح، پهنا و دامنه تعاملها و رابطهها را کم میکند؛ همان چیزی که سرچشمه پدیداری است. در مثال پرندگان، مثل یک سیستم خوب طراحیشده، همین تعاملها و رابطهها هستند که رفتار جالب میسازند.
هرچه چیزها را محکمتر ببندیم، فضای کمتری برای راهحل خلاق و پدیدار میماند. چه requirements را پیش از فهم درست قفل کنیم، چه کد را زودتر از موعد بهینه کنیم، چه قبل از اینکه کاربران واقعی با سیستم بازی کنند navigation و workflow پیچیده اختراع کنیم، نتیجه یکی است: سیستمی بیشازحد پیچیده و احمقانه، به جای سیستمی تمیز و ظریف که از پدیداری بهره میبرد.
کوچک نگهش دارید. ساده نگهش دارید. بگذارید اتفاق بیفتد.
—Andrew Hunt، The Pragmatic Programmers
منبع اصلی: Lower Your Cost of Change