ولی چطور

روشنایی و آرامش صبح جمعه خبر از روزی خوبی میداد. وسایلم رو با دقت زیادی توی کوله ام گذاشتم و برای اطمینان دوباره چک کردم.

چهارشنبه صبح برای رفتن به همایش بانکداری با ا.ع. قرار داشتم که تصادفا همکار سابقمون س.ن رو دیدیم، بین حرفاش گفت شرکت جدیدی که رفته میخواد یه هکاتون برگزار کنه، مشتاق شدیم و یه باره تصمیم این شد که اگه بشه شرکت کنیم. چند هفته ای بود که توی فکرم همچین چیزی رو تصور میکردم. بماند که تجربه ی اینجور برنامه ها رو تا به حالا بعنوان شرکت کننده نداشتم. درسته کمی دیر فکرش افتادم ولی دوست داشتم خودم رو حتما یه محکی بزنم.

شماره ام رو داد و گفت جلوی اسمم رو تیک بزنم. سریع و با صدای کم گفت. یه بخشی از حرفاش رو بهمین دلیل متوجه نشدم. محیط مسابقه هم کوورکر خوبی بود دو سه هفته قبل هم اونجا رفته بودم. توی برگه ای چالش هکاتون نوشته شده بود که به ما داد.

در میز مستقر شدیم و آرامشی خاصی بود که در ما موج میزد، صورت شرکت کننده های دیگه نشون از جوونی و خامی خاصی میداد. اینطور که از حرفهای س. فهمیدم ما خفنترین و با تجربه ترین تیم شرکت کننده بودیم. چالش کمی ساده میزد و در عین سادگی ابهامی رو توی ذهنمون شکل میداد. بعد صرف صبحونه جلسه اولیه ای برامون برگزار کردن و مدیر عامل شروع به سخنرانی کرد، چهره اش برام آشنا میزد، بله شناختم ح.ر. مدیر عامل قبلی ت. بود. خوش آمدی گفت و ...، که الان خاطرم نیست، قبلا فکر میکردم، فقط حافظه خوبی ندارم ولی الان مطمئنم علاوه بر آن و بر خلاف نظر دوستانم شنونده خوبی هم نیستم. غرق در افکار خودم بودم که صحبتهاش تموم شد. و سوالاتی پرسیده شد که بیشترین آنها رو ما پرسیدیم.

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

تقسیم کار شد و سرچ درباره موضوعات فنی رو شروع کردیم، که چطور پیاده کنیم. نزدیک یازده بود و این حس بهم دست داد که نه انگار پیاده سازی این موضوع داستان داره، و من قبلا تجربه این تکنولوژی رو ندارم، و چندان زمانی هم باقی نمانده!

نیم ساعت به دوازده دیگه مطمئن شدم باید هوشمندی ایده رو کنار گذاشت!

سریع مطرح کردم و اون بخش مهم رو حذف کردیم! سخت بود چون لذت داشتن اون رو دلمون میخواست بچشیم ولی نمیشد باید سیستمون حتما کار میکرد تا ارزیابی شه! دیگه خیالمون راحت شد!!

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

دیگه مثل قبل منتورها بهمون سر نمیزدن، توی دور قبل کلیت کار رو بهشون توضیح دادم. حس خوبی نبود، توضیح کاری به این سادگی!

ا.ع. روی رابط کاربری کار میکرد ولی بنظر میاومد کارش خوب پیش نمیره، همچنان تو انتخاب پروتکل ارتباطی مردد بود، ابتدا قرار بود rest کار کنیم ولی بعد اینکه س.ن. بهمون سر زد، مصمم شد وب سوکت باشه اعتقاد داشت کار رو راحت میکنه، ولی قبلا کدش رو نزده بود سرچ رو سریع کرد.

دوازده و نیم بود و من دامین مدل رو تموم کردم، هنوز شک داشتم خیلی نرمال شد، دیتابیسمون nosql بود و نرمال شدنش کمی تو ذوقم زد!

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

شروع کردم لایه های دیگه رو زدن، بسرعت کلاس میساختم و کدش رو میزدم، آه چقدر کند کد میزنم، اصلا خوب پیش نمیرفت.

دو بعدظهر بود و لایه سرویس رو شروع کردم! هنوز هیچ عملیاتی آماده نبود!

ا. برگشته بود مجدد سمت rest، دلیلش این بود که نمیدونست چطور سمت js رو به سوکت بک اند وصل کنه، چنتا فریمورک رو هم امتحان کرده بود ولی نتونست درش بیاره، restسرویسها اماده نبود شروع کرد ماک کردنشون تا بتونه کال کنه، قرار شد html ساده بزنه جای angular. تاییدش کردم. ما نباید روحیه امون رو از دست میدادیم، چون هنوز زمان خوبی مونده بود.

اولین سرویس تموم شد خواستم براش تست بنویسم کلاسش رو ایجاد کردم تا بیام بنویسم ساعت رو نگاه کردم نیم ساعت به سه بود و هنوز کلی سرویس و یه لایه دیگه باقی مانده بود! دستام سنگین شده بود. به ا. بدون اینکه حرفی بزنم نگاه کردم نامیدی رو توی چشماش میشد دید.

سه و نیم بود وضعیت سمت بک اند رو بهش گزارش کردم، و قرار شد فرآیند دوم رو هم کلا حذف کنیم!

ساعت چهار سرویسها تموم شد ولی بدون تست! و هنوز یه لایه باقی مونده بود، اولین rest سرویس رو زدم یه مپر هم لازم شد، چقدر زمان داشت سریع میگذشت! نگاهم به کیبورد بود و به ا. میگفتم ادامه بده هنوز وقت هست!

منتوری سری به ما زد و مشکل رو که فهمید پیشنهاد داد برای ui صرفا cli کار کنیم!

ا. شروع کرد به اینکه از کنسول چطور rest کال کنه!

منم سرویس بعدی رو داشتم اماده میکردم. مجدد قرار گذاشتیم حالا که اینطور شده لا اقل سه مرحله فرآیند رو بریم و نصفش رو هم حذف کردیم! چیزی از ایده اولیه امون باقی نمونده بود!

یه ربع به پنج شد، منتورها نکاتی رو برای کامیت کردن و ایمیل ادرس ریپوی کد گفتن، وقفه کوتاهی بود.

قرار بود پنج مسابقه و نیم ساعت هم اگه دوست داشتیم باز میتونستیم کد بزنیم، من کد رو ادامه دادم.

ا. روحیه اش رو کامل از دست داده بود و برای نوشتن کال سرویس ها از کنسول نمیتونست تمرکز کنه، یه سرویس دیگه rest هم اماده تست شد. ولی دو تا مشکل پیش امد، دیتای توی دیتابیس نداشتیم و خطای 401 میخوردیم!

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

پنج دقیقه به پنج و نیم اولین سرویس کالمون با پستمن کال شد! لذت بخش بود! من سریع رفتم سراغ کال سرویس دوم آن رو هم دیتا اینتری کردم و اوکی بود!

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

ارائه و داوریها انجام شد، و ما که خیالمون راحت بود انصراف دادیم!

جوایز اعطا شد. عکس یادگاری هم گرفتیم. از اینکه آخر شدیم حس بدی نداشتم. پیتزا رو بیرون خوردیم. بسختی تو تاریکی شب راهم رو میدیدم. خسته خوابیدم.

از لحظه خداحافظی، ذهنم درگیر سوال که آیا ما کند کد نوشتیم یا زبان و سبک برنامه نویسی مون باعث این کندی شده بود یا شاید هم هر دو! یا ...

دوست دارم قبل هکاتون بعدی پاسخ این سوال رو بدونم و راه حل خوبی هم پیدا کنم. چون خیلی مصمم در مسابقه ی دیگه ای دوباره شرکت کنم.