بهجای کم کردن کیفیت، دامنه رو کم کن
خلاصهٔ کاملتر
کارل کوک داره تیم design engineering (یعنی آدمهایی که بین طراحی و کد وایستادن و جزئیات تجربه رو واقعاً پیاده میکنن) رو تو DuckDuckGo میسازه. یکی از اصولی که نوشته اینه که قبل از کم کردن کیفیت، دامنه رو کم کن. خودش میگه اصل رو دوست داره، ولی سختترین بخش اینه که وقتی ددلاین هست و کار از وقت بیشتره، این جمله واقعاً معنی پیدا کنه.
مثالش یه فیچر export فرضیه: کاربر باید یه گزارش دانلود کنه و قراره چند فرمت، تنظیمات ذخیرهشده و تاریخچهٔ خروجیهای قبلی هم داشته باشه. نسخهٔ وسوسهکنندهٔ برنامه همین قابلیتها رو لیست میکنه و برای هرکدوم تخمین میزنه. بعد وسط پیادهسازی معلوم میشه ساختن گزارش طول میکشه و یکی باید این انتظارو توضیح بده، خروجی ممکنه شکست بخوره، و دکمه ممکنه دوبار فشرده بشه.
به گفتهٔ نویسنده، اگه اسم این کارها رو بذاریم «پولیش»، خیلی راحت میفتن به بعد. آخه export که کار میکنه: دکمه رو میزنی و بالاخره یه فایل میاد. ولی آدمی که دکمه رو زده نمیدونه اصلاً اتفاقی افتاده یا نه، باید دوباره امتحان کنه یا چیزی رو خراب کرده. برای همین پیشنهادش اینه که بهجای قابلیتها، خودِ تجربهٔ «درخواست دادن و گرفتن گزارش» تخمین زده بشه؛ فرمتهای اضافه و تنظیمات ذخیرهشده هم باید تصمیمهای جدا با هزینهٔ خودشون باشن.
نکتهٔ دومش اینه که craft نباید یعنی هر چیزی که سختگیرترین آدمِ اتاق دوست داره. خودش میگه عاشق موشن و تایپوگرافیه، ولی این باعث نمیشه هر بهبودی به یه اندازه مهم باشه. باید بشه توضیح داد این کار اضافه به کاربر کمک میکنه چی رو بفهمه یا انجام بده. برای export، بازخوردی که تأیید میکنه درخواست ثبت شده مهمتر از انیمیشن ورودِ اون بازخورده، و خطای خوانا مهمتر از خطای خوشانیمیشن.
همین کار به ریویو هم یه نقطهٔ شروع مشخص میده: بهجای «حسش بهتر بشه»، میشه گفت «دکمه رو زدم و نفهمیدم درخواست شروع شد یا نه». درس آخرش هم اینه که تموم کردن کار باید صاحب داشته باشه. یه کامپوننت مشترک میتونه به فیچر بعدی بهصورت پیشفرض یه loading state درست بده، ولی جای مرور فیچر تو بستر واقعی رو نمیگیره. این وقت باید از اول تو برنامه دیده بشه، نه اینکه هر بار یکی با وقت آزادش نجاتش بده.
نکات کلیدی:
- اصل کارل کوک تو DuckDuckGo: قبل از کم کردن کیفیت، دامنهٔ کار رو کم کن
- تخمین باید کل تعامل رو پوشش بده، نه فقط لیست قابلیتها
- تو نسخهٔ اول export: یک فرمت، بازخورد واضح پیشرفت، خطای قابلفهم با امکان تلاش دوباره، و دسترسی کیبورد
- برای نسخههای بعد: فرمتهای اضافه، تنظیمات ذخیرهشده، تاریخچهٔ خروجی، افکتهای حرکتی پیچیدهتر
- هشدارش: نیمهکاره موندنِ تعامل اصلی همون صرفهجویی نامرئیه که باعث میشه زمانبندی سر وقت جا بشه




