امیر صدیقی
امیر صدیقی
خواندن ۴ دقیقه·۵ سال پیش

چند تجربه‌

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

تبدیل کله‌قند به حبه‌قند

روش‌های بشکن و غلبه‌کن (Divide and Conquer) رو می‌شناسیم. اینا با این تکنیک زندگی می‌کنن. مسئله رو به اجزای کوچک و قابل بررسی/مدیریت می‌شکنن. فرض کنید یک نیازمندی در حد بسیار کلان و گنگ تعریف شده و تا شش ماه آینده به تعریف نهایی و طراحی‌های جزئی می‌رسن. فعلا فقط یک تصویر کلی از نیازمندی دارن. در این مرحله تصویر کلی رو به تعدادی PoC یا Proof of Concept می‌شکنن که شبیه به ایناست:

  • نوشتن پیوسته روی دیسک در فایل‌سیستم فلان
  • فشرده‌سازی فایل‌های با فرکانس بهمان در فایل‌سیستم بهمان
  • سینک نگه داشتن نوشتن در دو دیتابیس نوع پرتقال و آلبالو
  • خواندن با سرعت فلان رکورد در ثانیه به صورت همزمان از دیتابیس‌های پرتقال و آلبالو

و ...

تیم فنی توسعه‌ی این پروژه‌های کوچک انتزاعی (PoC) رو بسیار قبل از در اختیار داشتن طراح محصول، شروع می‌کنن. در حالی که پرتقال و آلبالو دیتابیس‌هایی هستن که در حال حاضر ازشون استفاده می‌شده و دانش بکارگیری‌شون رو دارن، ممکنه تیم فنی به این نتیجه برسه که به جای دیتابیس آلبالو بهتره از دیتابیس کدو استفاده کنن. پس کنار PoC ای که برای استفاده از آلبالو توسعه داده، یکی دیگه هم بر پایه‌ی کدو توسعه می‌ده.

در حالی که تیم طراحی هنوز درحال بالا پایین کردن نیازمندی‌ها و رسیدن به طرحی قابل اجراست، حالا تیم فنی بهشون آگاهی می‌ده که برای رسیدن به اندازه‌های مورد نظر (کلان) کدو کارایی بهتری ارائه می‌ده. و البته کدو محدودیت‌ها و ویژگی‌های خودش رو داره که در اختیار تیم طراحی قرار می‌گیره.

همینطور که PoC‌‌ها آروم آروم پیش می‌رن، تیم فنی با زیر و بم چالش‌ پیش رو آشنا می‌شه. فرهنگ کلامی (ترمینولوژی) خاص اون بخش از کار شکل می‌گیره بین اعضای تیم. تیم طراحی و تیم فنی به این شفافیت می‌رسن که کدام نیروهاشون برای پیش بردن کدام بخش توان بالاتری دارن. در یک بده بستون دائمی و پربار که از یک سو به نیازمندی‌های مشتری و از سوی دیگه بر قابلیت‌ها و ظرفیت‌های تیم فنی متکی‌ست، کار جلو می‌ره. طراحی به آرامی کامل می‌شه. همزمان با تکمیل طراحی و رسیدن به جزئیات، پیاده‌سازی‌ هم جلو می‌ره و کامل‌تر می‌شه.

بر اساس تعریف نیازمندی تست‌های مختلف روی PoC‌ها انجام می‌شه و حالا با اطمینان خاطر وارد مرحله‌ی چسبوندن قطعات (تجربه‌ها) و اعمال نیازمندی‌های جزئی‌‌تر طراحی (که حالا خیلی کاملتر شده) می‌شن. فرایند زیبایی‌ست. پر از یادگیری، شکل‌گیری ارتباطات تیمی، پیش‌روی‌های آرام و مبتنی بر واقعیت.

احترام به قوانین بازی

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

رقابت جوانمردانه

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

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

تفریحات تیمی

بچه‌های تیم به بهانه‌های مختلف دور هم جمع می‌شن. هر کسی به خرج خودش (ممکن کمپانی تمام یا بخشی از هزینه رو بده). از همه چیز صحبت می‌کنن به جز کار. گاهی یک نیم روز طول می‌کشه. بعضا می‌رن اسکی، شنا یا حتی سفر به جزایر گرمسیری. اینطوری با ویژگی‌های شخصیتی هم آشنا می‌شن. بهتر اعتماد می‌کنن. همچنین می‌فهمن کجاها به حمایت نیاز دارن و کی می‌تونه حمایتشون کنه.

فضای کار بی‌طرف

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

جناب صورتی
جناب صورتی

فرض کنید در یک فضای کاری، تصویر جناب پلنگ صورتی رو به دیوار زدن. و فرض کنید ۳ نفر توی اون فضا کار می‌کنن.

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

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

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




اینجا صمیمی و بی‌پرده از خودم و زندگی روزمره می‌نویسم. مطالب فنی نیست. ولی احتمالا واژه‌ها برای برنامه‌نویس‌ها آشناست.
شاید از این پست‌ها خوشتان بیاید