«یک روز پیش از نوبت، به بیمار پیامک یادآوری بده. متن: نوبت شما فردا ساعت فلان است. اطلاعات از دفتر نوبتدهی خوانده شود.» این سفارش یک کلینیک زیبایی است؛ یک نمونهی فرضی که برای این نوشته ساختهایم. دو خط است، روشن به نظر میرسد، و هر سازندهای میگوید «باشه، ساده است».
سه هفته بعد، بیماری که نوبتش را لغو کرده بود یادآوری میگیرد و فکر میکند لغوش ثبت نشده. بیمار دیگری در جواب پیامک مینویسد «نمیتوانم بیایم» و هیچکس آن پیام را نمیخواند. کلینیک میگوید سازنده بد ساخت. سازنده میگوید همان را ساختم که خواستید. هر دو راست میگویند.
سفارش دوخطی کجایش ناقص بود
هر سفارش اتوماسیون، هر قدر هم کوچک، هشت پرسش دارد. کسی که سفارش میدهد معمولا به سه یا چهارتای آنها جواب میدهد و بقیه را بدیهی میداند. سازنده هم برای بقیه تصمیم میگیرد، چون نمیشود برنامهای نوشت که در آن «بستگی دارد» وجود داشته باشد.
سفارش کلینیک را روی این هشت پرسش بگذاریم:
| پرسش | در سفارش کلینیک |
|---|---|
| چه چیزی کار را شروع میکند؟ | هست: یک روز پیش از نوبت |
| از کجا میخواند؟ | هست: دفتر نوبتدهی |
| چه وقت بکند و چه وقت نه؟ | نیست |
| دقیقا چه چیزی بیرون میرود؟ | هست: متن پیامک |
| چه کسانی هرگز نباید بگیرند؟ | نیست |
| چه وقت بایستد و کار را به آدم بدهد؟ | نیست |
| کجا میشود دید چه کرده؟ | نیست |
| اگر خراب شد چه کسی میفهمد؟ | نیست |
سه تا از هشت تا. و دو اتفاق بدی که افتاد، هر دو از خانههای خالی آمد: بیمار لغوشده از خانهی پنجم، و جواب خواندهنشده از خانهی ششم.
چهار پرسشی که تقریبا همه جواب میدهند
این چهار تا را معمولا مینویسی، ولی نه بهاندازهی کافی دقیق. برای هر کدام یک آزمون ساده هست: اگر جوابت را به یک غریبه بدهی، پرسشی برایش میماند؟
شروع
«وقتی مشتری جواب نداد» شروع نیست. تا چند روز؟ اگر یک شکلک فرستاد، جواب حساب میشود؟ در مثال کلینیک هم «یک روز پیش» مبهم است: اگر نوبت همان روز گرفته شده باشد چه؟
ورودی
«اطلاعات مشتری» ورودی نیست. کدام فایل، کدام ستون، و چه کسی آن ستون را پر میکند؟ این پرسش گاهی نشان میدهد کار هنوز قابل ساختن نیست: اگر برنامه باید بداند نوبتی لغو شده و لغو فقط تلفنی به منشی گفته میشود، اول باید جایی برای ثبت لغو ساخته شود.
قاعده
چند بار، در چه ساعتی، در کدام روزها. برنامه همان لحظهای که شرط برقرار شود کارش را میکند، حتی اگر دو بامداد باشد. بازهی ساعت مجاز را خودت بنویس.
خروجی
«یک پیام مناسب» خروجی نیست. متن دقیق را خودت بنویس، با لحن خودت. متنی که مشتری میبیند کار سازنده نیست. و اگر کارت به سلامت یا مسائل شخصی آدمها ربط دارد، نوع خدمت را در پیام نیاور؛ آن پیام را ممکن است کس دیگری روی گوشی ببیند.
چهار پرسشی که تقریبا هیچکس جواب نمیدهد
اینها جایی هستند که برنامهها در عمل خراب میشوند.
- استثنا: چه کسانی هرگز؟ این را از کسی بپرس که الان همان کار را با دست انجام میدهد. منشی کلینیک میداند به چه کسی زنگ یادآوری نمیزند و چرا؛ هیچجا ننوشته، چون تا حالا لازم نبوده. بپرس: «تا حالا شده عمدا به کسی خبر ندهی؟»
- ایست: چه وقت دست نگه دارد؟ دستکم دو شرط بنویس. یکی برای وقتی که ورودی مشکوک است (مثلا دفتر آن روز خالی یا ناقص است) و یکی برای وقتی که آدم طرف مقابل چیزی نوشته که برنامه نباید به آن جواب بدهد.
- ثبت: کجا ببینم چه کرد؟ یک ستون در همان فایل کافی است: به چه کسی، چه وقت، چه نتیجهای.
- صاحب: چه کسی هر روز نگاه میکند؟ نبودن یک پیام دیده نمیشود. اگر برنامه یک هفته چیزی نفرستد، هیچ بیماری زنگ نمیزند بگوید یادآوری نگرفتم. یک نفر با اسم باید هر صبح ثبت دیروز را نگاه کند. جواب «سازنده» برای این خانه قبول نیست.
همه مینویسند برنامه چه کار کند. کمتر کسی مینویسد چه وقت نباید کاری کند، و بیشتر شرمندگیها جلوی مشتری از همینجاست.
خانهای که پر نمیشود چه میگوید
اگر خانهای خالی ماند، برگه را کنار نگذار. هر خانهی خالی خبر مشخصی دارد:
- شروع پر نمیشود: خودتان هم هنوز توافق ندارید این کار چه وقت باید انجام شود. این یک جلسهی داخلی است، نه کار فنی.
- ورودی پر نمیشود: دادهای که لازم است جایی ثبت نمیشود. کار اول واقعیات ساختن جای ثبت است.
- استثنا خالی است: تقریبا همیشه یعنی از آدم درست نپرسیدهای.
- صاحب خالی است: تا این خانه اسم ندارد، چیزی را روشن نکن.
و اگر بیشتر خانهها پر نمیشود، این کار هنوز آمادهی خودکار شدن نیست. یک ماه با دست و با ثبت دقیق انجامش بده؛ برگه خودش پر میشود.
ده موقعیت، پیش از اینکه یک خط ساخته شود
برگه بهتنهایی کافی نیست. پیش از شروع ساخت، ده موقعیت واقعی بنویس و کنار هر کدام اینکه برنامه باید چه کند. اینها بعدا معیار «تمام شد» هستند.
چند قاعده برای نوشتنشان:
- از آدمهای واقعی هفتهی پیش بردار، نه از خیال. موقعیت ساختگی همیشه از واقعیت مرتبتر است.
- دستکم یکسوم موقعیتها باید «هیچ کاری نکن» باشد. اینها همان استثناها هستند و بیشتر از بقیه جا میافتند.
- موقعیتهای لب مرز را بنویس: نوبتی که همان روز گرفته شده، بیماری که دو نوبت دارد، شمارهای که اشتباه ثبت شده.
- کنار هر کدام بنویس اشتباهش چقدر بد است. بعضی اشتباهها فقط خندهدارند؛ بعضی مشتری را میبرند.
چرا پیش از ساخت؟ چون اگر بعد از ساخت بنویسی، ناخواسته همانهایی را مینویسی که برنامه از پسشان برمیآید. و جملهی «کار میکند» بدون این فهرست یک نظر است، نه یک نتیجه.
چهار ایستگاه تا تحویل، و اینکه در هر کدام چه چیزی را ببینی
از سفارش تا تحویل یک خط مستقیم نیست. اگر با سازندهای کار میکنی، در هر ایستگاه چیز مشخصی را بخواه:
| ایستگاه | چه میشود | تو چه چیزی را میبینی |
|---|---|---|
| موقعیتها | همان ده موقعیت، با نتیجهی درست | فهرست به زبان خودت |
| تماشا | برنامه روی دادهی واقعی اجرا میشود ولی کاری نمیکند | فهرست روزانهی «اگر روشن بودم این را میفرستادم» |
| گروه کوچک | برای بخش کوچکی واقعا روشن میشود | ثبت هر کار، و راه خاموش کردن فوری |
| همه | برای همه روشن است | یک عدد هفتگی و یک صاحب با اسم |
برای گذشتن از هر ایستگاه یک شرط بنویس، آن هم پیش از شروع. مثلا: سه روز پشت سر هم در مرحلهی تماشا هیچ ردیف اشتباهی نباشد. شرطی که بعدا نوشته شود همیشه برآورده میشود.
این ترتیب کار را یکی دو هفته کندتر میکند و این هزینهی واقعی است. در برابرش، خطا را تو میبینی و مشتری نمیبیند.
چهار خرابی که فقط روی دادهی واقعی دیده میشود
مرحلهی تماشا برای دیدن چیزهایی است که در هیچ موقعیت ازپیشنوشتهای نمیگنجند. چهار نمونهاش تقریبا در هر برنامهی پیام و یادآوری تکرار میشود: یک نفر با دو شکل نوشتن شماره دو بار در فهرست است و دو پیام میگیرد؛ پیام همان لحظهی برقرار شدن شرط میرود، حتی نیمهشب؛ کارمند همان صبح به مشتری زنگ زده و برنامه عصر پیام تکراری میفرستد؛ و برنامه یک روز بیصدا از کار میافتد و کسی نمیفهمد. هیچکدام نشانهی ساخت بد نیست. اینها را فقط وقتی میبینی که برنامه روی آدمهای واقعی هفتهات اجرا شود و هنوز دستش به جایی نرسد.
این برگه چه چیزی را تضمین نمیکند
برگه و موقعیتها خطا را کم میکنند، صفر نمیکنند. برنامهای که با دادهی واقعی کار میکند گاهی اشتباه میکند؛ هدف این است که زود و پیش از مشتری ببینیاش. و این نوشته دربارهی «چه بخواهی» است، نه «چطور بسازی». اگر کار به پرداخت، پروندهی پزشکی یا دادهی حساس مشتری میرسد، ساخت و نگهداریاش کار کسی است که مسئولیتش را بپذیرد.
برگهی خالی هشتخانهای و یک نمونهی پرشده در مینیدورهی رایگان «کار تکراری» هست. اگر میخواهی برگهی کسبوکار خودت با هم پر شود، در جلسهی ارزیابی و طراحی ایجنت همین کار انجام میشود؛ و اگر با برگهی نیمهپر بیایی، وقت جلسه صرف همان چهار خانهی سخت میشود.