پرش به محتویات

مسابقه تا نرم‌افزار قابل اجرا

سریع چیزی واقعی و قابل اجرا بالا بیاورید

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

اگر باعث شود زودتر به نرم‌افزار قابل اجرا برسید، اشکالی ندارد کمتر انجام دهید، از جزئیات بگذرید و در فرایند میان‌بر بزنید. وقتی به آنجا برسید، با دیدگاهی بسیار دقیق‌تر درباره ادامه مسیر پاداش می‌گیرید. storyها، wireframeها و حتی mockupهای HTML فقط تقریب‌اند. نرم‌افزار قابل اجرا واقعی است.

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

چیزهای واقعی واکنش واقعی می‌آورند. و این‌گونه به حقیقت می‌رسید.

چیز واقعی به توافق می‌رسد

وقتی گروهی از آدم‌های متفاوت تلاش می‌کنند بفهمند چه چیزی هماهنگ است... اگر mockup کامل و واقعی بسازند، نظرهایشان به هم نزدیک می‌شود. البته اگر فقط sketch بزنند یا ایده پرت کنند، توافق نمی‌کنند. اما اگر شروع کنید چیز واقعی را بسازید، آدم معمولاً به توافق می‌رسد.

—Christopher Alexander، استاد معماری (از Contrasting Concepts of Harmony in Architecture)

هرچه زودتر راهش بیندازید

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

این در همه سطح‌های توسعه صدق می‌کند و «چیزی واقعی و قابل اجرا بالا بیاور» یک مانترای fractal است. فقط درباره کل پروژه نیست؛ دست‌کم به همان اندازه درباره توسعه کوچک‌تر componentهایی هم صدق می‌کند که اپلیکیشن از آن‌ها ساخته می‌شود.

وقتی پیاده‌سازی در حال کاری از یک component کلیدی وجود دارد، توسعه‌دهندگان می‌خواهند بفهمند چطور با بخش آن‌ها از اپلیکیشن کار می‌کند یا نمی‌کند و معمولاً تلاش می‌کنند هرچه زودتر از آن استفاده کنند. حتی اگر پیاده‌سازی اول کامل یا بی‌نقص نباشد، این همکاری زودهنگام معمولاً به interfaceهای روشن و قابلیت‌هایی منجر می‌شود که دقیقاً همان کاری را می‌کنند که لازم است.

—Matt Hamer، توسعه‌دهنده و product manager، Kinja


منبع اصلی: Race to Running Software