خلاق،محافظه کار یا گیک کدوم برنامه نویس برای کار شما مناسب است؟
چند هفته پیش تر در یک پست لینکدین به این نکته اشاره کردم که بهتره افراد بر اساس نوع نگرش و استعداد هاشون در جای مناسب خودشون در سازمان قرار بگیرن تا بدون هیچ هزینه اضافی هم کار ها بهتر پیش بره و هم افراد از کارشون راضی تر باشند.
اینجا میخواهم در مورد یکی از این موارد و دسته بندی ها تو حوزه توسعه نرم افزار و تفاوت بین دولپرها صحبت کنم که به نظرم دونستنش میتونه خیلی به شرکت های ایرانی کمک کنه.
بین دولوپر ها سه نوع نگرش خلاقانه، محافظه کار و گیک وجود داره که افراد به طور مطلق جزو یکی از این سه گروه نیستند ولی یکی از این سه شخصیت رو بیشتر داخل خودشون دارند که به نگرش ها و رفتار هاشون غالبه.
تو مطلب زیر قراره تک به تک، این دسته بندی ها رو به صورت مجزا بررسی کنیم و در انتها با یه مقایسه کلی به یه نتیجه ی قابل درک برسیم. بهتره شروع کنیم:
گیک ها
از گیک ها شروع کنیم که نمونه بزرگ و بازرش تو ایران آقای جادی ـه که خیلی هامون میشناسیمش. مشخصه بارز این افراد، عاشق خود تکنولوژی بودن، تجربه کردن ترند های جدید، داشتن اطلاعات خیلی زیاد در مورد زبان های مختلفی که وجود داره و دنبال کردن اخبار تکنولوژی و انتشار این اخبار و اطلاعات به اطرافیان است.
این افراد معمولاً از درگیر شدن با یوزر و مارکت و بیزینس و مالی و ... خودداری میکنن که باعث تمرکز خوبشون روی تکنولوژی میشه. خوبی این افراد تو کار اینه که کلی ابزار خوب برای پیشبرد کار میشناسن و تحلیل خوبی تو مقایسه این ابزارها دارن. معمولا از انجام کارهای جدید و پیچیده استقبال می کنند و از کار هایی که تکراری هستند و یا قبلا انجام شدند فرار میکنند.
اگه با این افراد کار میکنید باید انتظاراتتون رو بهشون خیلی واضح بگید و فرآیند های خطی و مشخص داشته باشید؛ ابهام و تغییرات رو خیلی خیلی کم کنید ولی دستشون رو باز بذارید که کار شما رو با روش های خاص خودشون حل کنند و چیز های جدید رو تجربه کنند و حواستون باشه که هزینه زمانی این نوآوری ها و پیچیدگی های شاید غیر ضروری رو شما باید بدید.
زمانی که میخواهید یک پروژه رو شروع کنید و جلسه میگذارید تا استک پروژه رو مشخص کنید، گیک ها معمولا از متد ها و فریم ورک ها و برنامه های جدید استقبال میکنند
افراد محافظه کار
افراد محافظه کار یا به قول دیگر رسمی معمولا سابقه کار و سن بیشتری دارند. این افراد ترجیح میدهند از تکنولوژی ها و یا ابزار هایی استفاده کنند که امنیت تضمین شده ای دارند و قبلا مکررا تست و استفاده شده اند از نگاه این افراد تکنولوژی های جدید مدام در حال تغییر و تحول اند و استفاده از آنها بدون دلیل بسیار محکم تنها هزینه و زمان بیشتری میطلبد و به خاطر تسلط پایین برنامه نویس ها روی تکنولوژی جدید استفاده از این تکنولوژی ها خطا در طراحی و اجرا را به شدت بالا برده و ضرر آن بسیار بیشتر از نفع آن است که البته این دیدگاه تا حدودی درست است اما کم شدن عمر نرم افزار به دلیل زودتر کهنه شدن تکنولوژی آن و همچنین کم شدن قابلیت رقابت از مشکلات کد نویسی با این نگاه است.
اگر در یک مجموعه با رویکرد سنتی و محافظه کارانه هستید که در فضای نرم افزار تولیدی خود درگیر رقابت نیستید، برنامه نویس هایی با این نگاه بسیار برای شما مناسب هستند. این افراد قالبا با تجربه تر و دارای نگاه واقع بینانه تر هستند و سازگاری بیشتری با محیط شرکت دارند.
نگه داشتن این افراد تا دیر وقت در شرکت، تلاش برای حرکت های سریع و تغییرات ناگهانی و توقع داشتن بیش از یک کارمند عادی این افراد را ناراضی و عصبی میکند. مثلا اگر شما به عنوان مدیر این تیم ساخت فرم های جدید را منوط به تایید خودتان کرده باشید تا زمانی که تایید فوق را ندهید کار این تیم بدون کوچکترین صدایی متوقف میشود و نمیتوانید از این افراد توقع داشته باشید که مدام کار ها را پیگیری کنند و به دنبال کار ها باشند پس ناخداگاه شما نعمت داشتن یک سیستم چابک را از دست خواهید داد.
نکته مهم این بخش این است که اگر شرکت شما پر از مقررات و ساختار های عمودی و مجوز و تاییدیه و... باشد افراد گیک یا خلاق یا سازمان شما را ترک میکنند و یا حتی اگر بمانند تبدیل به این افراد محافظه کار میشوند. وجود این افراد در تیم ها اصلا بد نیست ولی اگر نبود خلاقیت و agile نبودن و سرعت کم آزارتان میدهد تنها با جذب افراد خلاق مشکل شما حل نمیشود چرا که تیم محافطه کار و ساختار محافظه کار فعلی را نمیتوان با چند فرد عوض کرد بلکه باید ساختار هایتان را به کلی دگرگون کنید.
افراد خلاق
در تیم های برنامه نویسی فعلی وجود یک فرد خلاق مانند حضور یک کلاغ سفید در شهر است البته آنقدر که کلاغ سفید نادر است این افراد نادر نیستند و شاید 15 درصد بازار را تشکیل بدهند اما معمولا حضورشان همینقدر عجیب و بولد است و به راحتی در تیم میشود پیدایشان کرد.
خلاقیت یعنی کشف و ساخت دنیا های جدیدی که قبلا دیده و ساخته نشده بودند.
افراد خلاق سخت تر دستور العمل ها را دنبال میکنند و مدام در پی خلق دنیا های جدید هستند و هر چی خلاق تر بشن سازگاریشون با دنیای اطرافشون کمتر میشه و این تعامل و کار کردن با اون ها رو خیلی سخت میکنه. شما معمولا با افراد خلاق سر اجرا نکردن دقیق دستورالعمل ها، تاخیر و بی توجهی به واقعیت ها به مشکل میخورید و خب همه اینها کلافتون میکنه ولی نکات ساده ای هستن که با دونستن و عمل به اونها میتونید بهترین استفاده رو از افراد خلاق کنید.
تمام مدیر ها این نکته رو باور دارن که خلاقیت زیربنای رشد یک سازمان ـه و یک خلاقیت توی محصول میتونه باعث تمایز شما با رقیبتون بشه و یک رشد پیش بینی نشده ای رو برای شما به همراه داشته باشه و اصلا فلسفه استارت آپ ها تو فضای کسب و کار اینه که " با اینکه ما کوچیکیم ولی محصول و خدمتی رو داریم که کس دیگه ای نداره و برای همین خلاقیت جدیدمون شما باید عاشق ما بشید و کمک کنید که ما بزرگ بشیم " ولی مدیر موفق اونیه که بعد از تشکیل استارت آپش بتونه چند تا آدم خلاق کنار خودش داشته باشه و از خلاقیت اونها برای هدایت سازمانش استفاده کنه.
افراد خلاق نسبت به خلق خودشون ذوق و انرژی خیلی زیادی دارن اون ها در ده روز کوهی رو که خودشون خلق کردن رو بالا میرن ولی شیش ماه طول میشه که جاده ای که شما بهشون گفتید رو طی کنند. پس اگر خلاقیتشون رو تو مسیر درست بگذارید خروجی های خیلی خوبی میگیرید هر چند که این کار ریسک داره ولی در خیلی موارد این ریسک ارزش داره.
افراد خلاق معمولا از کشف دنیای جدید استقبال میکنن از مارکیتنگ تا گرافیک تا حتی انجام کار ساپورت و پشتیبانی تلفی مشتری هر چیزی که به اونها فیدبک کاملتری بده که به خلق جدیدشون و تکامل خلاقیتشون کمک کنه اونها ازش استقبال میکنند. هنگام انتخاب stack برنامه نویسی انتخاب اصلی این افراد روش های ساده و کم هزینه ولی در عین حال منعطفه و از روش های پیچیده پیاده سازی که چهارچوب های زیادی براشون تعریف میکنه فراری هستن، چون نظم و چهارچوب خلاقیت رو از بین میبره و درگیر شدن بیش از حد با پیچیدگی هایی که از نظر اون ها غیر ضروریه وقتی برای کار و رسالت اصلی اون ها که خلاقیته نمیگذاره چون طراحی یک چیز جدید نیاز کلی آزمون و خطا و فکره و مسلما درست کردن یک عروسک بدون طرح اولیه با خمیر خیلی راحت تر از درست کردن اون با فلزه و با فلز عملا خلق محصول جدید در زمان مقرر غیر ممکنه.
انتظار شما از یک محصول معمولا مشخصه پس میتونید تصمیم بگیرید که رویکرد شما به سمت استخدام کدوم یکی از افراد خواهد رفت ولی نکته سخت ماجرا هنگام تشکیل تیم رخ میدهد که شما باید چه ترکیبی از افراد رو کنار هم بچینید تا بتوانند با هم همکاری کنند.
یک مثال از یک شرکت متوسط میتونه ذهن ما رو خیلی باز کنه که چطور چنین تیمی رو تشکیل بدیم.
ما فرض میکنیم که یک استارت آپ فروشگاه دیجیتال ساختیم و میخواهیم رقابت رو شروع کنیم. مسلما رقیب بزرگی تو بازار داریم پس نیازمون به خلاقیت بالاست و از طرفی باید از تکنولوژی های جدید استفاده کنیم چون نرم افزارمون رو کوچیک شروع میکنیم ولی قراره بزرگ بشه و باید مدت طولانی نگهش داریم و قدرت بازنویسی اش رو تو آینده نداریم. شما یک محصول بیزینسی و عملا چند محصول تکنیکال دارید و زمان هم براتون مهمه پس اینطور تیم میچینید که سه تا بک اند دولپر میگیرید که یک گیک غیر افراطی یک کارآموز خلاق و یک فرد محافظه کار رو شامل میشه اینجوری گیک با سرعت تکنولوژی جدید رو یاد میگیره و با چالش هاش درگیر میشه محافظه کار اجازه تند روی به اون نمیده هر چند که قدرت گیک کمی بالاتره ولی بازم فرد محافظه کار جلوی افراط گیک رو میگیره و خلاق کارآموز هم گاهی اوقات ایده های خوبی میده ولی تو ساختار اصلی چندان دخالت نمیکنه و چون تلاش داره یاد بگیره از تصمیانت دو نفر دیگه تبعیت میکنه. پس در بک اند که هسته میشه که عین جدید بودن در آغاز چندان خلاقیت بالایی نداریم چون احتیاج نداریم و چالش هامون با متد های ساده قابل حل هستند.
در تیم فرانت نیاز به یک خلاق در وب و یک خلاق در اپ به عنوان سرپرست داریم چون سرعت تغییرات تو این بخش ها بالاست و از طرفی خلاقیت بالا و انعطاف زیادی برای تغییرات احتیاج داریم پس آدم های خلاق که عاشق خلق چیز های جدید هستند کلی ایده جدید قابل پیاده سازی به ما میدن که طراح رو هم کلی خوشحال میکنه ولی به یک گیک جونیور احتیاج داریم که در عین حال که نباید ساختار پیچیده درست کنه بتونه ابزار ها و متد های جدید رو داخل اپلیکیشن بیاره. بر عکس بک اند در فرانت اند بازنویسی مجدد پروژه ها هزینه خیلی زیادی نداره پس حتی اگه تکنولوژی قدیمی تر باشه (نه در حدی که خروجی رو تحت تاثیر قرار بده) و در آینده مشکلی ایجاد کنن یا اینکه ساختار توان هندل کردن پروژه ها و تیم های خیلی بزرگتر رو نداشته باشه بازنویسی مجدد در فرانت کار معقولیه کما اینکه هر چقدر شما پیش بینی کنید و پروژه رو برای نیاز های آینده بنویسید تغییر سلیقه ها و ترند های رابط کاربری و تغییر سریعتر تکنولوژی ها در فرانت اند و یا ریبرندینگ شما در مراحل بعد و اسکیل آپ شما رو مجبور به بازنویسی مجدد کل یا بخشی از پروژه میکنه پس سرعت و خلاقیت رو اولویت قرار میدیم.
برای دوآپس توصیه میکنم سراغ افراد گیک برید و بهتره خبره باشه و اگه هزینه و شرایط استخدام یک فرد خبره رو ندارید یک گیک جونیور استخدام کنید که یک سنیور در مواقعی بهش مشاوره بده.
آدم های فرمال یا محافظه کار بهترین گزینه ها برای نگهداری و بهبود سیستم ها هستن چون در عین داشتن چالش های مختلف مثل بهبود سرعت و آنالیز و تست و... اوضاع غیر منتظره ای برای این افراد پیش نمیاد که بخواد اذیتشون کنه و این افراد در بهترین حالت خودشون قرار میگیرن تا اشتباهات قبلی ها رو که از سر بی تجربگی یا عجله ایجاد شده رو به بهترین شکل اصلاح کنن و بهبود بدن بدون اینکه ترس از فشار زیاد کاری و شرایط سخت داشته باشن.
سخن پایانی
نگاه یک مدیر به محصول و نیاز بازار مهمترین چیز هایی هستن که نشون میدن چه تیمی باید تشکیل بدیم و اینطور نیست که یکی از این سه تایپ مطلق بهتر از بقیه باشند. به طور کلی افراد گیک شروع کننده های خوبی هستند ولی ادامه دادن راهشون توسط افراد دیگه معمولا سخت و پر هزینه است پس باید حتما کنارشون یک فرد فرمال کار ها رو تحویل بگیره و منطق پشت ساختار سیستم رو درک کنه که با ترک سازمان فرد گیک توسعه نرم افزار دچار مشکل نشود. افراد خلاق هم در ایحاد یک راه و محصول جدید به خصوص در سیستم های مدیریت مشارکتی با اختیارات بالا بسیار مفید و سریع هستند ولی قید و بند و چهارچوب رو پس میزنن و باید خیلی با کار بلدی و بدون هیچگونه micro management با اونها تعامل کنید و اجازه بدید در زمان خطا هایی که به خاطر بی دقتی به وجود آوردند رو حل کنند و نسبت به خطا های قابل اصلاح واکنش نرم و ملایم داشته باشید و در مورد افراد محافظه کار هم میشه گفت نظم و دقت خوب و سازگاری بالا در عین انجام خوب وظیفه نکات مثبت خوبی هستن که شما میتونید ازشون انتظار داشته باشید ولی انجام کار های جدید ناگهانی و تحمل تغییر سریع و تکانه های بزرگ و یا توانایی در حیطه های غیر تخصصی رو نباید ازشون انتظار داشته باشید و اگر هم از این افراد اضافه کار و انگیزه میخواهید باید به صورت مالی و امتیازات ویژه اون ها رو نسبت به انجام اون کار ترغیب کنید و معمولا انگیزه های درونی روی و غیر مادی در این افراد کم هست.
در آخر هم اگه نکته ای به نظرتون میاد که من ننوشتم و یا اشتباه کردم میتونید اینجا و یا در لینکدین بنویسید که کمک کنید هر شخص در جای بهتری قرار بگیره که هم مدیر ها و شرکت ها راضی تر باشن و هم کارکنان.
مطلبی دیگر از این انتشارات
آموزش برنامه نویسی بلاک چین — معرفی 9 زبان برنامه نویسی بلاک چین
مطلبی دیگر از این انتشارات
20 منبع بسیار خوب و کاربردی برای یادگیری زبان برنامه نویسی Kotlin
مطلبی دیگر از این انتشارات
پیاده روی و بازده آن در برنامه نویسی