یک توسعه دهنده به چه مهارت های نرم افزاری نیاز دارد؟ نظرات از Yandex

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

Yandex شریک فنی پروژه است. برای ما، "من یک حرفه ای هستم" برای دومین سال متوالی به فرصت خوبی تبدیل شده است تا در مورد اهمیت مهارت های نرم (مهارت های نرم) در کار توسعه دهندگان و سایر متخصصان صحبت کنیم. یک سال پیش، دفتر ما در مسکو میزبان جلسه ای برای شرکت کنندگان در المپیاد بود که به مهارت های نرم اختصاص داشت. سرگئی براژنیک، رئیس دفتر توسعه Yandex در نووسیبیرسک نیز در یک جلسه آموزشی که در برنامه "من یک حرفه ای هستم" صحبت کرد، در مورد آنها صحبت کرد. امروز سرگئی و دو مدیر دیگر در Yandex - آنا فدوسوا و اولگ موخوف Olegbl4 - آنها به Habr در مورد مهارت های نرم می گویند: آنها چه هستند، توسعه دهنده به کدام یک نیاز دارد، از کجا آنها را تهیه کند، و چگونه حضور آنها بر رشد در شرکت تأثیر می گذارد.

سرگئی براژنیک، رئیس دفتر توسعه در نووسیبیرسک، مدیر توسعه پروژه های آموزشی منطقه ای

یک توسعه دهنده به چه مهارت های نرم افزاری نیاز دارد؟ نظرات از Yandex

- برای یک توسعه دهنده، "4Ks" مهم هستند: تفکر انتقادی، خلاقیت، همکاری و ارتباطات. به طور کلی پذیرفته شده است که برقراری ارتباط در این حرفه مهارت مهمی نیست، اما اگر به آن فکر می کنید، برای رشد حرفه ای ضروری است: باید بتوانید سؤال بپرسید، گوش دهید و به همکار خود بشنوید، دیدگاه خود را توضیح دهید و شخص دیگری را بپذیرید، صحبت کنید و مذاکره کنید. کارآموز ممکن است نتواند در یک تیم کار کند یا انتقادی فکر کند - و این طبیعی است، زیرا او هنوز چنین پیشینه ای ندارد.

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

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

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

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

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

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

اگر هنوز یک توسعه دهنده هاردکور را مدیر می کنید، ابتدا باید او را به طور کامل آماده کنید و سپس مطمئن شوید که او را برای سه تا شش ماه اول راهنمایی می کنید.

آنا فدوسوا، رئیس بخش آموزش و توسعه

یک توسعه دهنده به چه مهارت های نرم افزاری نیاز دارد؟ نظرات از Yandex

- تهیه یک لیست کامل از مهارت ها دشوار است. بنابراین، مدل شایستگی لومینگر شامل 67 موقعیت. در داخل Yandex، ما مهارت‌ها را به مهارت‌های جهانی و مهارت‌هایی که مدیران به آن نیاز دارند تقسیم می‌کنیم.

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

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

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

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

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

چگونه به بزرگسالان بیاموزیم که مستقلاً یاد بگیرند و دانش کسب کنند؟ گاهی اوقات تجربه در آموزش عالی کمک می کند. دوره های کارشناسی ارشد و کارشناسی ارشد به دانشجویان می آموزد که بفهمند چه چیزی مهم است و چه چیزی مهم نیست و کجا به دنبال دانش مرتبط باشد. اما اغلب شما باید در حال حاضر در فرآیند کار به این امر مسلط شوید. جای تعجب نیست که یکی از محبوب ترین دوره های آموزشی Coursera نامیده می شود یادگیری نحوه یادگیری.

هیچ چیز برای یادگیری مفیدتر از شناخت بهتر خود نیست: از بیرون با کمک بازخوردهای دریافتی از همکاران به خود نگاه کنید، یک بار دیگر به این فکر کنید که چه چیزی خوب است و چه چیزی خوب نیست، پیدا کردن افرادی که می خواهید شبیه آنها باشید. و خود را با آنها مقایسه کنید

باید به خاطر داشت که انگیزه هسته اصلی همه چیز است. اگر درک می کنید که غیر اجتماعی هستید، اما باید این را تغییر دهید، مثلاً این برای تیم مهم است، هم انگیزه و هم نیاز به تغییر ظاهر می شود. اگر برای کار نیازی به برقراری ارتباط با کسی ندارید، پس چرا از خود عبور کنید؟

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

یک توسعه دهنده به چه مهارت های نرم افزاری نیاز دارد؟ نظرات از Yandex

- توسعه دهندگان بدون جاه طلبی رهبری تیم واقعاً به مهارت های نرم نیاز ندارند. مهم است که بتوانید سؤال بپرسید، گوش دهید و افکار خود را منتقل کنید. برای بهبود این مهارت‌ها، می‌توانید در یک کنفرانس گزارشی ارائه دهید یا در دانشگاه سخنرانی کنید. همه ما در مقطعی درس خوانده‌ایم، یعنی می‌توانیم خودمان به کسی آموزش دهیم. دانش آموزان دیوانه هستند و پنهان ترین سوالات را می پرسند. توانایی پاسخ سریع به آنها و آویزان کردن زبان به شما کمک می کند در بحث های داغ آرام بمانید.

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

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

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

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

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

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

منبع: www.habr.com

اضافه کردن نظر