بایدها و نبایدهای رهبری تیم های توسعه نرم افزار

پنجشنبه 19 اسفند 1400

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

 بایدها و نبایدهای رهبری تیم های توسعه نرم افزار

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

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

بهبود ارتباطات و همدلی از مهمترین وظایف رهبری تیم های توسعه نرم افزار

Ravs Kaur مدیر فناوری شرکت Uplevel می داند که مدیران و رهبران تیم های توسعه نرم افزار همیشه تحت فشار هستند تا در هر نسخه از نرم افزار ویژگی های بیشتری را ارائه دهند. پیشنهادی که او برای رهبری تیم های توسعه نرم افزار می دهد این است که انگیزه تیم ها را با همدلی با آنها افزایش دهید و یک ارتباط انسانی خوب را با اعضای تیم خود ایجاد کنید. او می گوید: یک مدیر مهندس می تواند با روش های مختلف از اعضای تیم خود حمایت کند که از جمله این روش ها می توان به ترسیم اهداف، داشتن ارتباط باز و همینطور تاثیرگذاری کافی مدیریتی یک مدیر اشاره کرد.

پیش بینی Kaur درباره همدلی در تیم ها

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

اجازه ندهید توسعه دهندگان از استرس زیاد خسته شوند

شما در رهبری تیم های توسعه نرم افزار باید یک قدم فراتر از همدلی در تیم ها بروید و باید بتوانید عواملی که باعث فرسودگی اعضای تیم ها می شوند را شناسایی کنید. علائم فرسودگی شغلی شامل کاهش بهره وری، افزایش بدبینی نسبت به همکاران و احساس جدایی از شرکت می شود.

Dawn Parzych مدیر بازاریابی توسعه دهندگان در شرکت LaunchDarkly معتقد است که تیم های توسعه دهنده می توانند با استفاده از ابزارها و شیوه های مدرنی که در این زمینه وجود دارند استرس را به میزان زیادی کاهش داده و کنترل کنند. او مطالعه ای که اخیرا در این زمینه انجام داده است را به اشتراک می گذارد که نشان می دهد 91 درصد از متخصصان توسعه نرم افزار که فاقد فرایندهایی مانند استفاده از پرچم های ویژگی هستند گزارش می دهند که در طول استقرار کدهای خود استرس زیادی را تجربه می کنند. او پیشنهاد می کند که به عنوان یک مدیر برای رهبری تیم های توسعه نرم افزار به این فکر کنید که چگونه می توانید استرس را از بین برده و به اعضای تیم خود کمک کنید تا با بهبود فرایندهای ساخت و استقرار از طریق قابلیت مشاهده یا پرچم های ویژگی از این فرسودگی خودداری و اجتناب کنند.

به دنبال افراد مدبر باشید که به دنبال راه حل مسائل باشند

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

Marcus Merrell معاون استراتژیک تکنولوژی در شرکت Sauce Labs بر اهمیت شناسایی جویندگان راه حل های مناسب در زمان مدیریت و رهبری تیم های توسعه نرم افزار تاکید دارد. او می گوید مواقعی وجود دارد که باهوش ترین فرد با بهترین الگوریتم کسی است که شما به آن نیاز دارید. با این حال بیشتر اوقات شما به کسی نیاز دارید که پاسخ مورد نیاز شما را در کتابخانه یا ابزاری بیابد.

در رهبری تیم های توسعه نرم افزار انتظار نداشته باشید که مهارت های کدنویسی بدون مربیگری بهبود پیدا کند

زمانی که نوبت به کدنویسی می رسد مدیران تیم های توسعه نرم افزار نقش بسیار مهمی در بررسی عملکرد توسعه دهندگان، رعایت کردن استانداردها توسط آنها و همینطور مسیر ارتقای مهارت های آنها دارند. Ravi Duddukuru مدیر ارشد محصول در شرکت DevGraph می گوید: کوچینگ و مربیگری برای تیم های توسعه دهنده نرم افزار از اهمیت بسیار زیادی برخوردار است. کوچینگ نه تنها می تواند مهارت های اعضای تیم را ارتقا دهد بلکه باعث صرفه جویی در زمان و هزینه این تیم ها نیز خواهد شد.

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

جزئیات فنی را یاد بگیرید به خصوص برای کار با داده ها، یادگیری ماشین و devops

توسعه نرم افزار تنها مربوط به کدنویسی نیست و مدیرانی که قصد رهبری تیم های توسعه نرم افزار را دارند باید درباره جزئیات فنی شامل معماری های ابری، اتوماسیون استقرار، عملیات روی داده ها، مدیریت چرخه توسعه مدل های یادگیری ماشین و ... مطلع باشید. Michael Berthold مدیر عامل KNIME می گوید: مدیران باید تفاوت های ظریفی که بین MLops، modelops، dataops، devops و Xops را بدانند.

آشنایی با dataops و همینطور مدل های یادگیری ماشین از اهمیت بسیار زیادی برای رهبری تیم های توسعه نرم افزار برخوردار می باشد. او همچنین ادامه می دهد: توسعه دهندگان نرم افزار می توانند دو عامل بسیار کلیدی و مهم را نادیده بگیرند: پیش پردازش داده ها بخشی از فرایند تولید است و نظارت بر مدل در محیط تولید اغلب ایستا و غیر واکنشی است.

نکاتی مهم برای رهبری تیم های توسعه نرم افزار

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

برای رهبری تیم های توسعه نرم افزار همه تصمیمات را خودتان نگیرید

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

Vlad Mystetskyi سرپرست Monday Apps در Monday.com می گوید: مدیران توسعه نرم افزار باید توسعه دهندگان را در تصمیم گیری مشارکت دهند تا آنها نیز روند انجام عملیات های تجاری را بیاموزند. او ادامه می دهد: با به اشتراک گذاشتن مالکیت فرایند تصمیم گیری و دادن توانایی به تیم ها برای یادگیری از اشتباهات خود، مدیران می توانند توسعه دهندگان را تشویق کنند تا نسبت به کاری که انجام می دهند احساس مسئولیت بیشتری داشته باشند.

Mystetskyi در ادامه صحبت های خود می گوید: مدیران باید شفافیت را حتی زمانی که اوضاع نامطمئن است تقویت کنند تا تیم ها احساس کنند با تصویر کامل یک پروژه دیگر هستند.

رعایت کردن این نکته در رهبری تیم های توسعه نرم افزار از اهمیت بسیار زیادی برخوردار است.

با شرایط تجاری ارتباط برقرار کنید

یک بخش مهم از درک تصویر کامل پروژه این است که به توسعه دهندگان کمک کنید تا در مورد کار خود در شرایط تجاری بحث کنند. دکتر Colleen Tartow مدیر مهندسی Starburst Data در خصوص این موضوع می گوید: درک مفاهیمی مانند درآمد مکرر سالانه در مقابل درآمد برای یک محصول نرم افزاری یا capex در مقابل opex می تواند مفید باشد تا مهندسان بتوانند بینشی در مورد تصمیم های بزرگتر کسب کنند.

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

نکات پایانی درباره بایدها و نبایدهای رهبری تیم های توسعه نرم افزار

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

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید