چگونه در نقش مدیر مهندسی موفق شویم


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

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

مردم اولویت شما هستند

در نقش مدیر مهندسی، اولویت جدید شما تیم شماست. پس چگونه مطمئن می شوید که یک تیم عالی دارید؟

ایجاد یک تیم و ایجاد اعتماد

اولین قدم این است که اطمینان حاصل کنید که افراد مناسب را برای تیم خود استخدام می کنید، اگر قبلاً تیمی ندارید.

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

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

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

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

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

با این حال، اگر شما و تیمتان از نزدیک با هم همکاری می کنید یا تیم بزرگی دارید، می توانید یک بار در ماه جلساتی را برگزار کنید.

چگونه مدیران مهندسی تیم ها را توانمند و بهبود می بخشند

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

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

اعضای تیم شما دائماً به دنبال یادگیری، بهبود و رشد در زمینه هایی هستند که برای آنها یا تیم مهم است. نقش‌ها و مسئولیت‌هایی که در سال گذشته برای هر یک از اعضای تیم معنا داشت، ممکن است امسال دیگر مناسب نباشد. برای اطمینان از اینکه هر یک از اعضای تیم همچنان احساس چالش و پیشرفت می کنند:

  • به رشد شخصی آنها توجه زیادی داشته باشید، روی پیشرفت آنها سرمایه گذاری کنید و به آنها کمک کنید تا به جاه طلبی های خود دست یابند.
  • برای ایجاد برنامه های توسعه شخصی و توانمندسازی آنها برای ترسیم استراتژی های شغلی خود، با اعضای تیم به صورت فردی ملاقات کنید.
  • سعی کنید زمان بیشتری را برای خودسازی اختصاص دهید، به اعضای تیم اجازه دهید به طور دوره ای نقش خود را تغییر دهند و کارگاه های داخلی یا دوره های آموزشی را سازماندهی کنید.

علاوه بر تضمین رشد حرفه ای همه، مسئولیت یک مدیر مهندسی محافظت از تیم خود است. شما باید تیم خود را برای تصمیم گیری بدون ترس از شکست توانمند کنید. اگر کارها شکست خوردند، مسئولیت را بپذیرید و از اشتباهات درس بگیرید.

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

مدیران محصول و مدیران مهندسی

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

در اینجا شش مسئولیت مدیر مهندسی وجود دارد که باید دنبال کنید:

اطمینان حاصل کنید که پروژه به خوبی اولویت بندی شده است

هدف شش تا دوازده ماهه تیم شما چیست؟ مخاطب شما کیست؟ مشتریان شما از محصول چه انتظاری دارند؟ تیم شما احتمالاً می داند که در چند هفته آینده روی چه چیزی کار خواهد کرد، اما درک کامل محصول و اینکه به کجا می رود بسیار مهم است.

در تصمیمات توسعه محصول مشارکت داشته باشید

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

استراتژی فنی و متدولوژی توسعه را تعریف و هدایت کنید

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

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

ایجاد تعادل و بازپرداخت بدهی فنی و توسعه ویژگی های جدید

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

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

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

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

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

فناوری و تفویض اختیار

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

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

به عنوان مثال، انتخاب های خود را با اگر 20 برابر بیشتر کاربر داشتیم، چه می‌شد؟ آیا این پایدار خواهد بود؟» یا “آیا این فناوری هنوز تا دو یا سه سال دیگر پشتیبانی خواهد شد؟”

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

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

آخرین اما نه کم اهمیت ترین، با آخرین فن آوری ها و روند به روز باشید. هرچه انتخاب های بیشتری داشته باشید و بیشتر بدانید، راه حل ها و چارچوب های بیشتری در اختیار خواهید داشت. زمانی را برای خواندن مقالات، بررسی کدها و شرکت در بحث های فنی با تیم خود اختصاص دهید.

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



منبع

Matthew Newman

Matthew Newman Matthew has over 15 years of experience in database management and software development, with a strong focus on full-stack web applications. He specializes in Django and Vue.js with expertise deploying to both server and serverless environments on AWS. He also works with relational databases and large datasets
[ Back To Top ]