یک مساله ثابت در همه تیم‌های نرم‌افزاری، استخدام نیروی جدید است. استخدام به دلایل مختلفی ممکن است لازم باشد: ممکن است نیروهای موجود به هر دلیل قادر به ادامه همکاری با تیم نباشند (یا تیم تمایلی به همکاری به آن‌ها نداشته باشد) یا نیاز به توسعه نیروی انسانی یا تخصص‌ها در یک تیم نرم‌افزاری باشد.

دلیل استخدام هر چه که باشد، اگر تجربه‌اش را داشته باشید حتماً تایید می‌کنید که پیدا کردن و استخدام نیروی خوب و کارآمد کار دشواری است.

این روزها همه UI/UX Designer هستند، شما چطور؟

هر چند عبارت ux designer شاید درست نباشه، اما بالاخره پروفایل هر کسی رو نگاه می‌کنی بخشی از موضوعات ترند روز رو جزء توانمندی‌هاشون ذکر کردند!

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

در این نوشته با هم درباره روش‌هایی برای ارزیابی متقاضیان عضویت در تیم‌های نرم‌افزاری صحبت می‌کنیم.

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

انتظارتان از متقاضیان را واقعی و شفاف کنید

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

اگر آگهی‌ شما مثلاً این‌طوری باشه که “برنامه‌نویس با تسلط بر c# , asp.net , SQL Server, jQuery, css, html5, asp.net mvc, xml و آشنا به RUP و …” شانس اینکه افراد همه کاره و هیچ کاره برای استخدام سر و کله شون پیدا بشه زیاد می‌شه.

دقت کنید که کارگر ساختمونی هم که به صورت روزمزد استخدام می‌کنید نمی‌گید “من یک بنا/نقاش/لوله کش/گچ کار/کاشی کار/نما کار می‌خوام” بلکه افراد رو با توجه به تخصصی که نیاز دارید انتخاب می‌کنید.

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

###متقاضیان را قبل از مصاحبه غربال کنید

باور کنید یا نه، بعضی برنامه‌نویس‌ها استخدام می‌شن بدون اینکه حتی ثابت کنند می‌تونن کد بنویسن! دقیقاً یادم هست که سال‌ها پیش هر کی روی کامپیوترش Microsoft Frontpage رو با آفیس نصب کرده بود می‌گفت من طراح وب هستم!

قبل اینکه قرار ملاقات با مثلاً 100 نفر مختلف که برای یک شغل برنامه‌نویسی تقاضا دادند ست کنید،‌ سعی کنید غربالشون کنید. مثلاً ازشون بخواهید که رزومه‌شون رو بفرستند. اگر امکانش هست نمونه کار آنلاین ارائه بدن، اگر بتونید آزمون آنلاینی داشته باشید که دیگه معرکه است!

منظورم از آزمون آنلاین صرفاً برگزار کردن یک تست برنامه‌نویسی نیست. این شاید در خارج از ایران بیشتر کاربرد داشته باشه که مثلاً امتیاز یک شخص در سایت Stackoverflow یا پروفایل و مشارکتش در پروژه‌های github هم یک معیار برای انتخابش در بین کاندیداهای نهایی هست.

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

زمانی که برای غربال متقاضیان و انتخاب مثلاً 10 تا کاندیدای نهایی از بین 100 نفر صرف می‌کنین خیلی خیلی خیلی کمتر از زمانی هست که باید برای مصاحبه با 100 نفر باید اختصاص داد.

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

نمونه کارها را با دقت ببینید

چند سال پیش، در چند نوبت مسئول صحبت و ارزیابی فنی با متقاضیان عضویت در یک تیم توسعه نرم‌افزاری بودم. چیزی که برام جالب بود موقع بررسی source code‌ها بود. در بعضی موارد سورس کدهای بسیار تمیز و حتی کامنت شده‌ای می‌دیدم که به نسبت پروژه‌ای که شخص متقاضی برای ارائه آورده بود عجیب بود!

واقعیت از این قراره که همون‌طور که اسکات هنسلمن مدتی پیش اشاره کرده بود، بعضی‌ها developer نیستند و صرفاً googler های خوبی هستند! اینجاست که نقش شما موقع مصاحبه کاری خیلی پررنگ می‌شه. با دقت نمونه کارها و source ها رو نگاه کنید و از افراد درباره سورس‌شون سوال کنید. اگر فقط خروجی کار رو ببینید و بر اساسش بخواهید قضاوت کنید، ممکنه به جای developer یک googler استخدام کنید!

در مصاحبه تست برنامه‌نویسی بگیرید

همه کارهای بالا رو که انجام دادین، حتماً‌ و حتماً توی مصاحبه از افراد ازشون یک تست برنامه‌نویسی بگیرید. این تست بهتره یک تست ترکیبی باشه که بتونه تمام نیازمندی‌های شما رو پوشش بده، مثلاً اگر دنبال یک برنامه‌نویس وب هستید می‌تونید یک برنامه بخواهید که باهاش بتونید توان کاری‌ مصاحبه شونده رو در برنامه‌نویسی client side و server side محک زد.

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

دقت کنید که هیچ‌کس نگفته مصاحبه‌های کاری باید کوتاه باشه. می‌تونید بخش صحبت کردن (که معمولاً درباره شرایط کار هستش و شنیدن انتظارات طرف مقابل و توافق شفاهی روی دستمزد و …) رو کوتاه و مثلا‌ً حدود 30 دقیقه در نظر بگیرید اما برای بخش سنجش فنی وقت بیشتری مثلاً 90 دقیقه تا 2 ساعت در نظر بگیرین.

در پایان لازمه اشاره کنم، کارهای توضیح داده شده در بالا، تضمینی برای یک استخدام درست و perfect نیستن و فقط معرفی کارهای لازم در پروسه استخدام برنامه‌نویس برای تیم‌های نرم‌افزاری محسوب می‌شوند.