چالشهای تیمهای فنی استارتاپها
در پنجمین کارگاه دوره سرآمدِ کارآفرینی و سرمایهگذاری جسورانه که در روز پنجشنبه 13 دی ماه برگزار شد، ایلیا وکیلی، معاون فنی فناپ پرداخت و معاون فنی اسبق اسنپ به ارائهی مبحث مهم چالشهای تیمهای فنی استارتاپها پرداخت. در این مطلب قصد داریم پارهای از نکات مطرح شده که حاصل تجربیات ارزشمند ایشان است را با عزیزانی که در این کارگاه حضور نداشتند، به اشتراک بگذاریم.
مباحث اصلی مطرح شده در این کارگاه:
- مدیر فنی
- تیم فنی
- محصول و چالشهای آن
- تصمیمگیریهای فنی
- متدلوژیها
- ابزارها
مدیر فنی
اساسا چرا باید در مورد مدیر صحبت کنیم؟ یک مدیر چه نقشی در ایجاد چالشها و یا عبور از چالشها دارد؟ ویژگیهای اصلی بهترین و بدترین مدیری که با او همکاری کردهاید چه بوده است؟
برای پاسخ به این سوالات میتوان نتایج پروژهی Oxygen گوگل را بررسی نمود که این 10 ویژگی را برای یک مدیر خوب بیان میکند:
- مربی خوبی است و همواره به دنبال رشد تیم خود میباشد.
- به دنبال مدیریت ذرهبینی (Micro Management) نیست.
- نتیجهگراست.
- با تیم ارتباط برقرار میکند.
- فضایی ایجاد میکند که افراد احساس راحتی کنند.
- دنبال رشد شغلی افرادی است که با او کار میکنند.
- بینش و چشمانداز دارد.
- از مهارتهای فنی لازم برای موقعیت کاری خود برخوردار است.
- در سطح سازمان با مدیران سایر واحدها همکاری میکند.
- در تصمیم گیری بسیار توانمند است.
میتوان گفت مدیر خوب 4 ویژگی اصلی زیر را دارد:
- گرفتن خروجی
- رشد دادن
- برقراری ارتباط
- هماهنگی ایجاد کردن بین کار و زندگی افراد تیم
استارتاپها معمولا برای جذب مدیر فنی به دنبال فردی هستند که توانایی فنی زیادی دارد، در مواقعی نیز یکی از بنیانگذاران که دانش و تجربه فنی لازم را داراست، نقش مدیر فنی را به عهده میگیرد. موضوعی که معمولا در جذب مدیران فنی در شرکتها مغفول میماند، بحثهای غیر فنی افراد مانند هوش هیجانی (EQ) است. در حالی که هوش هیجانی چالش برانگیزترین وجه یک فرد برای موقعیت مدیر فنی است.
در جذب مدیر فنی همواره باید اهمیت بالا بودن هوش هیجانی را مورد توجه قرار داد. چرا که افراد فنی لزوما هوش هیجانی بالایی ندارند. این افراد غالبا زمان زیادی از روز را به کد زدن مشغول هستند و عجیب نیست که نحوه برقراری ارتباط صحیح با سایر افراد را بلد نباشند.
در واقع برای موقعیت شغلی مدیر فنی به سه مهارت کلیدی نیاز است:
- بهره هوشی (IQ)
- هوش هیجانی (EQ)
- مهارت فنی
داشتن هر سه مهارت برای مدیر فنی لازم و ضروری است. اما نکته مثبت این است که بر خلاف بهره هوشی که در طول زندگی یک فرد تغییری چشمگیر ندارد، هوش هیجانی قابلیت رشد دارد.
مهمترین عامل در ارتقای سطح هوش هیجانی، انگیزه است. با الگو قرار دادن افراد موفق و بررسی رفتار آنها میتوان هوش هیجانی را ارتقا داد، فقط کافی است علت رفتار افراد را متوجه شد و از آنها تقلید نمود. همچنین یکی دیگر از عوامل رشد هوش هیجانی دریافت مداوم بازخورد است. یک مدیر خوب همواره آماده و مشتاق دریافت بازخورد از سایر اعضای تیم است.
برقراری ارتباط
3 مرحله در ارتباط میان افراد وجود دارد:
- همدردی (Sympathy)
به این معنی که احساس افراد را بدانید.
- همدلی (Empathy)
به این معنی که نه تنها احساس طرف مقابل را میدانید بلکه شما نیز همین احساس را دارید و این حس را درک میکنید.
- دلسوزی (Compassion)
به این معنی که علاوه بر اینکه احساس طرف مقابل را میدانید، او را کاملا درک میکنید و به دنبال این هستید که شرایطی فراهم آورید تا فرد احساس راحتی کند.
این که یک مدیر بتواند در ارتباط با افراد تیم خود این 3 مرحله را طی کند بسیار مهم است و به رشد وی بسیار کمک میکند.
اگر به عنوان مدیر سعی کنید ریشه رفتار فرد را بیابید، آن را درک کنید و در صورت لزوم اولویت خود را از دریافت خروجی از آن فرد به کمک به وی تغییر دهید، رشد خواهید کرد.
شاید در دیدگاه سنتی این گفته چندان درست نباشد، اما زمانی یک فرد مدیری ایدهآل است که بتواند تیم خود را رشد دهد. دلسوزی برای تیم علاوه بر رشد هوش هیجانی به رشد افراد تیم نیز کمک بسیاری میکند.
در اخلاق قوانین مختلفی وجود دارد:
- قانون نقرهای اخلاق میگوید با دیگران به گونهای رفتار نکنید که نمیخواهید با شما رفتار شود.
- قانون طلایی اخلاق میگوید با دیگران به گونهای رفتار کنید که میخواهید با شما رفتار شود.
- قانون پلاتینیوم اخلاق میگوید با دیگران به گونهای رفتار کنید که میخواهند با آنها رفتار شود.
تیم
سه رکن اصلی در بخش فنی یک استارتاپ، مدیر، تیم و محصول است. در بخش اول در مورد مدیر فنی و ویژگیهای یک مدیر فنی خوب صحبت شد. در ادامه به تیم میپردازیم.
نکاتی که شرکتکنندگان و مدرس کارگاه چالشهای فنی استارتاپ در مورد تیمهای فنی استارتاپها مطرح کردند، در ادامه مطرح میشود.
- داشتن انگیزه در نیروهای فنی بسیار مهم است، بنابراین انگیزهبخشی به افراد تیم اهمیت به سزایی برای مدیر دارد. وجود انگیزه در تیم به مسئولیتپذیری اعضای تیم و انجام بهتر کارها کمک میکند.
- ذهنیت افراد در فرهنگهای استارتاپی کاملا متفاوت است. در فضای استارتاپی بر خلاف فضای سنتی، افراد به دنبال رشد سریع هستند. بنابراین فهمیدن فرهنگ حاکم بر تیمها اهمیت ویژهای دارد.
- افراد تیمهای استارتاپی عموما افرادی هستند که حدود سال 2000 به دنیا آمدهاند، این افراد با نسل قبلی کاملا متفاوتاند. این افراد به دنبال این هستند که خیلی سریع خروجی کار خود را ببینند. مدیر فنی همواره باید به این نکته توجه داشته باشد و خیلی سریع به این افراد بازخورد بدهد.
- برای افراد تیم فنی آزادی در ساعت کاری، زمان ورود و خروج، نحوهی لباس پوشیدن و … بسیار مهم است. به همین دلیل، ساعت کاری تیم فنی باید منعطف باشد. هرچه تیم فنی آزادی بیشتری داشته باشد، احتمالا خروجی بهتری خواهد داشت.
- فضای کاری استارتاپها معمولا فضایی باز است که همه افراد در آن حضور دارند اما این فضا برای تیمهای فنی مناسب نیست. بهتر است فضایی برای تیم فنی در نظر گرفته شود که امکان تمرکز کردن برای آنها را فراهم کند.
- تیمهای فنی باید خلاقیت بالایی داشتند، به منظور افزایش خلاقیت افراد میتوان بازیهای مختلفی را در محیط کار فراهم کرد.
- برگزاری جلسات متعدد در تیمها موجب اتلاف وقت تیم میشود. بهتر است تا حد ممکن جلسات به صورت کوتاه و مفید برگزار شود.
- علاقه به یادگیری در تیمهای فنی میتواند چالشبرانگیز باشد. مدیر فنی باید حد تعادل یادگیری را پیدا کند و از اینکه استارتاپ در دام یادگیری بیفتد جلوگیری نماید.
مهمترین علت اخراج، استخدام است.
چگونه یک نیروی فنی خوب جذب کنیم؟
برای جذب نیروی فنی خوب راههای مختلفی وجود دارد که مهمترین آنها در ایران شبکهی افراد نزدیک است. یک روش مناسب دیگر درج آگهی در وبسایت Stack overflow است. (برنامهنویسها عموما برای مطرح کردن سوالات خود و گرفتن پاسخ به این سایت مراجعه میکنند. یک برنامهنویس در طول روز بارها به این سایت مراجعه میکند. درج آگهی در این وبسایت به شما کمک میکند مناسبترین فرد را پیدا کنید.)
در مصاحبهی شغلی تیم فنی چه مسائلی مهماند؟
علیرغم اهمیت ویژگیهای شخصیتی فرد، در مصاحبهی شغلی معمولا به بعد فنی توجه میشود. سه پارامتر مهم که در جذب افراد باید در نظر گرفته شود به شرح زیر است:
- توانمندی
- انگیزه
- ماندگاری
توانمندی فنی افراد را بایستی با ارائه پروژه به فرد سنجید، پرسیدن سوالاتی از این جنس که مبحث ایکس را بلدی به سنجش این توانمندی کمکی نمیکند.
افراد تیم فنی باید T شکل باشند.
به این معنی که گسترهای از دانش را داشته باشند و در شاخهای از آن عمیق شده و متخصص باشند. عرض این T (دانش فنی گسترده) به مدیر کمک میکند میزان علاقمندی افراد را بسنجد.
در مورد در اختیار گذاشتن سورس کدها تا حد ممکن باید احتیاط نمود. پس از جذب نیروهای فنی لازم است تنها دسترسیهای ضروری به آنها داده شود.
اخراج
همواره در اخراج و قطع همکاری با افراد محتاط باشید و هزینههای آن را در نظر بگیرید. چرا که پیدا کردن جایگزین و استخدام فرد جدید با هزینههای زیادی از جمله بررسی گزینهها، مصاحبه، بررسی پروژه و … همراه است. علاوه بر این برای جلوگیری از سواستفاده افراد، همواره تلاش نمایید در اخراج کارکنان رفتاری عادلانه و حتی فراتر از عادلانه با آنها داشته باشید.
Coaching
با توجه به مباحثی که در رابطه با استخدام و اخراج مطرح شد، در ادامه به مربیگری (coaching) میپردازیم. چگونه به جای اخراج افراد، عملکرد تیمی که در حال حاضر 50% درصد مطلوب است را بهبود و تیم را رشد دهیم؟
برای مربیگری تیم، ابتدا باید به عنوان مدیر بپذیرید که مشاهده نتیجهی مربیگری مستلزم اختصاص زمان کافی است و بلافاصله نمیتوان نتیجهی آن را در خروجی تیم دید.
در این زمینه الگوی GROW گوگل تا حد زیادی میتواند کمککننده باشد. در این الگو، در جلسات فردی مدیر با هر یک از اعضای تیم که معمولا به صورت هفتگی برگزار میشود، این سوالات مطرح میشود:
Goal: چه هدفی را دنبال میکنی؟
Reality: وضعیت فعلی تو چیست؟
Options: در حال حاضر چه گزینههایی را داری؟
Will: از بین گزینههای موجود کدام را انتخاب میکنی؟
با پرسیدن این سوالات از فرد، مدیر میتواند علت رفتارها و هدف نهایی فرد را متوجه شود و به او در دستیابی به آن هدف کمک کند.
محصول
از نکات مهم در رابطه با محصول، نقش مدیر محصول در استارتاپ است. در استارتاپهای کوچک این نقش وجود ندارد و در استارتاپهای بزرگ نیز به خوبی اجرا نمیشود. از دیدگاه مدیر محصول، محصول مانند یک موجودیت مجزا است. نقش اصلی او هماهنگی تیمهای فنی، مارکتینگ و … است. علاوه بر این، ایجاد نقشه راه محصول (Roadmap)، تعیین ویژگیهای اصلی محصول و تعیین موعدهای تحویل نیز توسط مدیر محصول صورت میگیرد.
مهمترین نکته در مورد تعیین مهلت تحویل کارها، به اشتراک گذاشتن آنها با افراد و در واقع مطلع نمودن تمامی افراد مرتبط است.
UX Designer
نقش دیگری که در تیم فنی مورد توجه است، طراح تجربه کاربری است. این نقش، با طراح واسطه کاربری (UI Designer) کاملا متفاوت است. طراح تجربه کاربری نیاز را به محصول وصل میکند. در واقع برای نیازی که در دنیای واقعی وجود دارد راهحل طراحی میکند.
امنیت
آخرین بحث در مورد محصول، امنیت محصول است. هیچ نرمافزاری مطلقا کامل نیست. بنابراین وجود یک چکلیست برای امنیت از همان زمان شروع بسیار اهمیت دارد.
بهتر است:
- از الگوریتمهای آماده استفاده کنید و سعی نکنید الگوریتم امنیتی اختراع کنید.
- دادههای غیر ضروری از کاربر دریافت نکنید.
- به توسعهدهندهها دسترسی محدود بدهید.
- در قبال ارائه دسترسی به اطلاعات هویتی افراد از تیم تضمینهای جدی بگیرید.
- از نرمافزارهای مدیریت پسورد استفاده کنید. در هر لحظه باید بدانید هر پسورد در اختیار چه کسی است و چگونه میتوان دسترسی او را صلب کرد.
- حتما بکآپ داشته باشید.
- هر چیزی که اتفاق میافتد را log کنید.
- در بحث امنیت، افراد نقطهی کلیدیاند. مکانیزمهای امنیتی کامل نیز توسط افراد قابل نقض اند.
- استاندارد امنیتی OWASP را رعایت کنید.
تصمیمگیریها در محیط فنی
تصمیمگیری به ذات پیچیده است. هر تصمیم در هر سطحی از جمله حقوقی، منابع انسانی، فنی و … پیچیده است.
در تصمیمگیری سه مرحله باید دنبال شود.
- مطرح کردن موضوع با سایر افراد مرتبط و دریافت نظرات
- مطرح کردن با افرادی که لزوما در رابطه با آن موضوع تخصص ندارند و دریافت نظرات آنان
- جمعبندی تصمیم
از موارد مهمی که تیم فنی باید در مورد آن تصمیمگیری کند انتخاب Stack است.
مهمترین نکته در استفاده از یک Stack تکنولوژی بررسی داراییهای فعلی شماست. به عنوان مثال اگر در تیم خود توسعهدهندهی php دارید، بهترین انتخاب برای شما php است. در تصمیمگیریهای خود هزینه بالای یادگیری Stack جدید را در نظر بگیرید.
نکته مهم دیگر بازار کار است. اگر framework های غیر مطرح انتخاب کنید احتمالا در جذب نیرو به مشکل بر میخورید.
معماری نرمافزار را از همان ابتدا درست بنا کنید. درست بنا شدن معماری در شروع کار به دلایلی از قبیل دشواری تغییر آن مهمترین چالش است بهتر است به سراغ معماری رایج بروید. (سعی نکنید چرخ را از نو بسازید.)
متدولوژی
چگونه پروژهای بزرگ و پیچیده را به تیم تخصیص دهیم و چگونه نتیجه را بسنجیم؟
مدیریت پروژه سنتی، از مدل آبشار تبعیت میکند، چرا که کارويژهها در توالی یکدیگر انجام میشوند. مدیریت پروژه نرمافزاری نمیتواند به این شکل انجام شود. در بحث نرمافزار نیازمندیها دائما در حال تغییر است. به همین دلیل ذهنیتی به نام ذهنیت چابک ایجاد شده است. در این الگو وظایف به کارویژههای کوچک و تکراری تقسیم میشود. در الگوی چابک ذره ذره پروژه انجام و تحویل داده میشود. تاکید این متدولوژی بر تحویل مستمر و دخیل بودن فردی است که قرار است کار را تحویل بگیرد. در مسیر طراحی نرمافزار افراد بایستی با یکدیگر در ارتباط باشند و نظرات مشتری به طور مرتب در پروژه دخیل شود.
علت موفقیت اسکرام نسبت به سایر الگوها ساده بودن آن است، به نحوی که هر تیمی میتواند آن را اجرا کند.
دو نقش اصلی در تیم اسکرام به ترتیب زیر است:
Scrum master: فرایند اسکرام را تسهیل میکند و نقش مدیریتی ندارد.
Product owner: نمایندهی به حق مشتری در تیم است و ارتباط بین محصول و مشتری را برقرار میکند.
معرفی ابزارهای مفید در مدیریت تیم فنی
ابزارهایی برای بهبود عملکرد تیم در مدیریت وظایف، برقرای ارتباط با یکدیگر و پیگیری مسائل در ادامه معرفی میشود.
ابزارهای مدیریت پروژه:
ابزارهای برقراری ارتباط و گفتگو:
ابزارهای اتوماسیون:
ابزارهای ردیابی مسائل:
- YouTrack
- GitLab Issues
سایر ابزارها: