Yazılım Geliştiricilerini Çekmek, Yönetmek ve Elde Tutmak için İpuçları
Yayınlanan: 2022-03-11Yönetim tamamen insanlarla ilgilidir. Yöneticiler veya çalışanlar, her ikisi de kişisel ve profesyonel hedeflerine nasıl ulaşacağını düşünüyor. Bu hedeflerin ve ilgili kişilerin kişisel özelliklerinin birleşimi, zamanla olumlu, üretken ve tatmin edici ya da bazen sadece stresli, talepkar ve çatışmaya meyilli olabilecek ilişkilere şekil verir.
Elbette bu son durumda ürün kalitesi düşer, personel devri artar ve hedeflere ulaşmak her zamankinden daha zor hale gelir. Bu nedenle, her ikisi için de verimlilik, üretkenlik ve kendini gerçekleştirme söz konusu olduğunda, yöneticiler ve çalışanlar arasında ödüllendirici ve motive edici ilişkiler kurmanın bir yolunu bulmak çok önemlidir.
Bu, işlerinin teknik karmaşıklığı ve yaratıcı doğası nedeniyle, sonuç üretmek için genellikle dar zaman çizelgelerine sıkıştırıldığından, yazılım geliştiricilerin yönetiminde özellikle doğrudur. Her patron-çalışan ilişkisinde olduğu gibi, aşağıdakiler gibi birçok faktör söz konusudur:
- kişilikler
- Hedefler
- Beklentiler
- Politikalar
- Organizasyon kültürü
- Proje teknik detayları
Bu yazıda, yazılım geliştiricilerini elde tutmada başarılı olmak isteyen herkes tarafından dikkate alınması gerektiğini düşündüğümüz teknik yönlerden ziyade ana yönetim yönlerine odaklanacağız.
Ancak burada “başarı” sadece sonuçlara ulaşmak ve şirket politikalarına, zaman çizelgelerine ve bütçelerine uymak değil, aynı zamanda elinden gelenin en iyisini yapan ve şirkette uzun süre kalan, motive ve üretken bir yazılım geliştirme ekibine sahip olmak anlamına gelir.
Bu bizi temel temamıza götürür: Yazılım geliştiricilerini harekete geçiren nedir? Bunu akılda tutarak, başarılı yazılım geliştirme ekiplerinde belirlediğimiz çalışanları elde tutmanın bazı yollarını sunacağız.
Doğru İnsanları Çekmek
Yazılım geliştirmede, işe aldığınız yetenek başarı ve başarısızlık arasındaki farkı yaratacaktır ve bir takımda sürekli değişiklikler yapmak zaman ve para açısından her zaman maliyetlidir. Bu nedenle, projenizin başarısı için iyi bir seçim süreci çok önemlidir.
İş ilanı
Teknik işe alım uzmanları, konu yazılım geliştiricileri işe almak olduğunda, her şeyin dikkatlice dengelenmiş bir iş ilanıyla başladığını bilir. Gönderinin doğru geliştiricilerin buna yanıt vermesi için motive edici olması gerekir - çok fazla veya çok özel gereksinimler cesaret kırıcı olabilir, ancak çok belirsizseniz, şirketiniz bir sürü işe yaramaz özgeçmiş bekleyebilir.
Ayrıntılı maaşları ve sosyal yardım paketlerini belirtmek de iki ucu keskin bir kılıçtır çünkü rakipleriniz bu bilgileri ücret planlarından yararlanmak için kullanabilir ve geliştiriciler bunu işe alımları sırasında pazarlık için bir temel olarak kullanmayı deneyebilir. Tabii ki, işe alım sürecinde her zaman müzakere için bir yer olması gerektiğinden, iş ilanının ücretlendirme söz konusu olduğunda sabit değerler yerine aralıklar kullanarak daha az spesifik olmasını öneriyoruz.
Buna karşılık, iş ilanı, hem zorunlu hem de olması güzel olan iş görevleri ve gereksinimlerinde mümkün olduğunca açık olmalıdır. Sağlam bir uyumla başlamak, geri kalan çalışan tutma stratejilerimiz için en iyi bağlamdır.
görüşme
Sürecin bu noktasında, adayları değerlendirme konusunda bazı tavsiyeler almak ve görüşme sürecinde hangi tuzaklardan kaçınılabileceğini görmek iyi bir fikirdir. Ayrıca, yukarıdaki kaynakların rehberliğine, adaylardan önceki işlerinden bazı referanslar istemenin genellikle becerilerini doğrulamanın diğer yollarını iyi bir şekilde tamamladığını ekleyeceğiz.
İş Teklifi
Şirket, pozisyon özelliklerini (isim, rütbe, alan vb.), tazminat paketini (maaş ve sağlık, emeklilik veya eğitim vb.) , işe başlama tarihi, zaman çizelgesi, çalışacağı yer ve adayın teklifi kabul etmesi halinde iş sözleşmesi kurma şartları.
Bu aşamada her şey az çok tamamlanmış olsa da, aday bazı koşulları müzakere etmek isteyebilir ve bunları kabul etmek veya pazarlık etmek şirkete kalmıştır. Şirketin uygulamalarına bağlıdır.
Ancak, kesinlikle şirket, iyi bir adayı bir prensip meselesi yüzünden kaybetmek istemeyecektir, bu nedenle makul takaslar kimseye zarar vermeyecektir. Bu durumda, adaydan verilen her taviz karşılığında, örneğin daha erken bir başlangıç tarihi, şirkette asgari bir kalıcılık süresi veya şirketin sahip olabileceği herhangi bir özel gereksinim gibi bir şey istenmesi tavsiye edilir.
Başarı için Yazılım Geliştirme Ekiplerini Yönetmek
Bir yazılım geliştirici şirkette çalışmaya başladığında, yöneticileri kim olduklarını, nasıl çalıştıklarını ve en önemlisi ürettikleri sonuçları anlamaya başlar. Yazılım mühendislerini elde tutmak daha sonra net bir öncelik haline gelir.
Yazılım mühendislerinin kişilikleriyle ilgili bilgiler burada devreye girer: Bunlar - özellikle yüksek performans gösterenler - genellikle bazı ortak özellikler gösterirler. Devam ederken bu kalıplara işaret edeceğiz, ancak bunların her bireye eşit olarak uygulanmayabileceğini unutmayın. Yazılım geliştirme proje yönetimi, istisnalarla ilgili olduğu kadar kalıplarla da ilgilidir.
Eğitim
Yazılım geliştirme teknik bir iş olduğundan, şirketin yapısı, hedefleri, prosedürleri, politikaları (inançlar ve iş uygulamaları dahil) ve standartlar (teknik ve teknik olmayan) hakkında çok kesin bilgi gerektirir. Bu nedenle, bir geliştirici şirketi ne kadar iyi anlarsa, o kadar iyi ürün yapacak ve bunu yapmak için o kadar az zaman alacaktır.
Bu temel eğitim belgelerle, çevrimiçi intranet kurslarıyla veya sunumlarla verilebilir. Ancak yeni çalışana netlik kazandıracağı için bir zorunluluktur.
Yeni teknolojiler tanıtılacaksa, gerekli eğitimleri verdiğinizden emin olun. Yazılım geliştiricileri, meydan okunmaktan hoşlanırlar ancak yeni bir teknolojiye, önce onu doğru bir şekilde öğrenmeden atılmaktan rahatsız olabilirler.
İnternet, değerli öğrenme materyalleriyle doludur ve genellikle yazılım geliştiricilerin teknik ayrıntıları öğrenmeleri veya yeniden öğrenmeleri gerektiğinde başvurdukları ilk kaynaktır. Yazılım geliştiricilerini elde tutmak istiyorsanız, kendi kendine çalışma kültürünü teşvik etmek ve gerekirse bunun için çalışma süresi vermek çok önemlidir. Bu şekilde ekip, yazılım geliştiricilerin genellikle çok takdir ettiği en son teknoloji ve yöntemlerden haberdar olacaktır.
Kaynaklar
Bazıları, yazılım geliştiricilerin işlerini yapmak için endüstride mümkün olan en iyi özelliklerle en yüksek teknolojiyi aradıklarını düşünüyor. Bunun yerine, eldeki işe bağlı olduğunu düşünüyoruz. Örneğin, bir şirket birinci şahıs oyunları geliştiriyorsa, geliştiricilere son teknoloji bilgi işlem gücü sağlamak gerekecektir. Ancak iş, işlemsel bir sistem için arka uç web hizmetleri geliştirmekse, daha az güçlü bir bilgisayar yeterli olabilir.
Gerçekten önemli olan şey, geliştiriciye işini yapması için gerekli tüm araçları vermek ve yeni araçlarla ilgili önerilerine açık olmaktır. Mantıksal olarak, geliştiricinin önerdiği her yeni aracın şirketten onaylanması (belki daha önce test edilmesi) ve lisanslanması gerekecektir. Yine de maliyetine değer: Yeterli kaynaklara sahip olmak, geliştirici motivasyonu ve sonuçlarında önemli bir faktördür. (Yazılım mühendislerini başarısız olacak şekilde ayarlarsanız, onları tutmayı bekleyemezsiniz!)
organizasyon
Yazılım geliştiriciler, tasarım, standartlar ve BT politikaları tarafından yönlendirilmelerine rağmen işleri yoktan var etmek olduğundan, yaratıcı çabalarını teşvik eden ve saygı duyan yerlerde çalışmayı severler. Bu nedenle, geliştiricilerin, şirketin ilkelerine ve ilkelerine uygun oldukları sürece, tüm bürokrasinin ve sınırlamaların minimumda olduğu bir birime ait olduklarından makul ölçüde emin olmaları gerekir.
Bu, yazılım geliştiricilerin şirketin geri kalanına kıyasla herhangi bir özel ayrıcalığa sahip olması gerektiği anlamına gelmez, daha ziyade yöneticilerinin gerektiğinde bürokrasinin üstesinden gelmelerine veya çözmelerine yardımcı olması gerektiği anlamına gelir. Yazılım geliştiricilerini elde tutmanın çok önemli bir yönü, patronlarının kişisel gereksinimlerine açık olması ve gerektiğinde onlara yardımcı olmasıdır.

Dahili geliştirme birimi düzenlemesi de burada önemli bir rol oynar. Genellikle bir test grubu vardır ve geliştiriciler ile testçiler arasında ekip çalışmasını akıcı tutmak yazılım mühendisliği yöneticisinin görevidir. Bu, basitçe açık metodolojilere ve süreçlere sahip olarak başarılabilir. Geliştiriciler, her iki taraf tarafından da uyulması gereken kurallar varsa, çatışmayı düşük veya varolmamasını sağlayan test edicilerle çok iyi çalışma eğilimindedir.
İletişim (Periyodik Toplantılar)
Yazılım geliştiricileri elinizde tutmak istiyorsanız, onları döngüde tutmak çok önemlidir. Bir ekipteki tüm üyeler, hedefler, onları etkileyen kurumsal durumlar, stratejiler, organizasyondaki değişiklikler ve son fakat en az değil, ekip başarıları hakkında periyodik olarak güncellenmelidir.
Birkaç ekip üyesinin bazı önemli noktaları paylaşması bile, ekibin uyumunu ve ekip çalışmasını desteklemek için iyi olacaktır. Normalde, bu ekip toplantıları - en fazla iki saat - düzenli olarak (belki de haftalık) ve ayrıca bir projenin son aşaması, kritik bir durum vb. gibi özel durumlarda planlanmalıdır.
Ekiple iletişimin yanı sıra, yönetici, işle ilgili, teknik veya kişisel olsun, her üyenin durumu hakkında güncel kalmanın bir yolunu bulmalıdır.
- İşle ilgili , çalışanın şirketle olan ilişkisinin tüm olası yönleri anlamına gelir.
- Teknik durumlar , bir geliştirici bir sorunla karşılaştığında ve herhangi bir nedenle yardım aramadığında ortaya çıkar.
- Geliştirici bunları paylaşırsa, yaşadıkları kişisel durumlar işlerini ve iş arkadaşlarıyla olan ilişkilerini etkileyebilir.
Normalde, her ekip üyesiyle haftalık 30 dakikalık bir toplantı, bir yöneticinin bu durumları belirlemesine ve yardım sağlamasına olanak tanır, böylece olası personel krizlerini önler ve ekip üyesinin şirket içindeki moralini artırır.
Açık olmak gerekirse, toplantı odaklı bir geliştirme birimi kurmaktan bahsetmiyoruz, bu nedenle katı toplantı disiplini (dakiklik, saygı, katılım, süre) gereklidir. Ayrıca, bu disiplin, geliştiricilere, normalde takdir ettikleri çok profesyonel bir kuruluş için çalıştıklarını gösterir.
Hedeflerin Belirlenmesi ve Takibi
Yıllık genel hedefler veya benzer değerlendirme kılavuzları belirlemenin bir anlamı yoktur.
Bu, yazılım geliştiricilerle uğraşırken açık bir faktördür: Rolleri ne olursa olsun (gereksinim toplama, mimari, tasarım, programlama, test etme vb.), hedefler onlara mümkün olan en net şekilde verilmelidir, bu nedenle hiçbir anlamı yoktur. yıllık genel hedeflerin veya benzer değerlendirme kılavuzlarının atanmasında. Geliştiricilerin projelerde, yani belirli bir kapsam ve zaman çizelgesiyle çalışması gerektiği için, hedefleri atamanın en iyi yolu projenin başındadır ve ilerlemelerin nasıl değerlendirileceğini ve uygulanabilirse nasıl tanınacağını içerir.
Neyse ki günümüzde, Agile ve Scrum gibi, takibi ve proje kontrolünü basitleştiren, amacı mümkün olduğunca çabuk sonuç üretmek olan metodolojiler var. Bazen bu, yazılım yeteneğini elde tutmada önemli bir rol oynayabilir: Çoğu geliştirici, sonuçları hızlı bir şekilde sunabildikleri ve onlara düzenli olarak bir başarı hissi verebildikleri için bu metodolojileri sever.
Ayrıca, geliştiriciler genellikle daha hafif metodolojileri tercih eder. Rational gibi son ürünün ihtiyaç mühendisliği, tasarım, geliştirme, test ve uygulamadan oluşan uzun bir projeden sonra teslim edildiği üst düzey ürünlerin riskli olduğunu ve takip edilmesinin acı verici olabileceğini biliyorlar.
Çatışma yönetimi
Bu, yazılım geliştirme ekipleri için olduğu kadar diğer türler için de geçerlidir: Bir yazılım mühendisliği yöneticisi, çatışmalarla hızlı ve etkili bir şekilde ilgilenmek zorundadır, yoksa kontrolden çıkıp tüm birimin moralini, ekip çalışmasını ve etkinliğini bozabilir.
Çatışma içindeki geliştiricilerin profesyonel ve iyi niyetli olduklarını varsayarsak, daha sonra hızlı bir çözümle net bir diyalog başlatmak için ilgili kişilerle yöneticinin görüşmesi ekibin devam etmesine izin vermek için yeterli olmalıdır. Ayrıca, bazen kişisel düzeydeki çatışmanın, eğer o noktaya gelirse, kabul edilmeyeceği konusunda onlara açık bir uyarı vermek gerekir.
Her halükarda, bu uzlaşmanın sonunda, her iki tarafın da çözümün adil olduğunu hissetmesi, içlerinden biri hoşlanmasa bile çok önemlidir. Çatışma bazen hayatın bir parçasıdır, ancak yazılım yeteneğini elde tutmak, bu tür durumlar ortaya çıktığında herkese onurlu davranmak anlamına gelir.
Motivasyon
Bir geliştiricinin motivasyonunu etkileyen birçok faktöre değinmiş olsak da, bir başka önemli husus daha var. Bu duygusal veya teknik değil. Biz onların işi için tazminat oranından bahsediyoruz.
Doğası gereği idealist olma eğiliminde olmalarına rağmen, yazılım geliştiriciler genellikle maddi dünyanın güzel şeylerinden hoşlanırlar. Şirket için maaşların ve ücret planlarının işgücü piyasasıyla uyumlu olduğundan emin olmak her zaman daha iyidir - endüstri araştırmalarını bulmak kolaydır - ve belki de pozisyonları için biraz daha yüksek.
Ayrıca, çoğu yazılım geliştiricisi, çalışmalarını zenginleştirmek için faydalı teknikleri öğrenebilecekleri kurslar ve teknoloji etkinlikleri de dahil olmak üzere, avantajlara ve ödüllere kayıtsız değildir.
Yazılım geliştiricilerini elde tutmak söz konusu olduğunda, özel yönü ne olursa olsun, şirket içindeki büyümelerini desteklemek önemlidir. Yazılım mühendisleri, liderlik pozisyonlarına veya yönetime geçmek için fazla istek göstermediğinde, bunun yerine teknik alanda ilerlemeyi takdir ederler. Bu, daha kıdemli sertifikaları ve yüksek lisans ve hatta doktora gibi resmi akademik programları içerir. Bilgi onlar için çok güçlü bir itici güçtür.
Bununla birlikte, liderlik pozisyonlarına yükselmek istediklerinde, adayın şirketteki kişiliğinin ve geçmişinin kapsamlı bir analizinin yapılması tavsiye edilir. Bu, İnsan Kaynakları departmanının veya diğer şirket birimlerinin yardımıyla olabilir, çünkü iyi yönetim teknik yeterliliğin ötesinde tamamen farklı bir dizi beceri gerektirir.
Yazılım Yeteneği Nasıl Elde Tutulur: Son Notlar
En iyi niyete sahip olabilirsiniz ve yukarıdaki tüm ipuçlarını takip edebilirsiniz, ancak yine de yazılım geliştiricilerini yüzde 100 tutmayı başaramazsınız - bazen dış faktörlerin daha fazla etkisi vardır. Ancak, personel devir hızının sağlıklı ve fırsatlarla dolu olabileceğini düşünüyoruz, şu sürece:
- Sık değil. Eğer öyleyse, bu örgütsel düzeyde yanlış giden bir şeyin belirtisi olacaktır.
- Yalnızca en değerli kaynaklarla gerçekleşir. Bu durumda şirketinizi trambolin olarak kullandıkları, yani başka şirketlere geçmeden önce sadece deneyim kazanmak için yanınızda oldukları anlamına gelebilir.
Çalışan elde tutma stratejileri, sadece değerli bir kişi istifa etmek istediğinde bir tepki olarak değil, şirket politikasında yer almalıdır. Gerici tutma çok maliyetlidir ve kusurludur: Kişi kalmayı kabul edebilir, ancak kendi kendine şöyle düşünebilir: “Burada X yıl boyunca çalıştım ve ayrılırken iki katı maaş teklif edildi - bana ödeme yapmadıklarını kabul ettiler. yeterli!"
Bu kişinin bir sonraki adımı ne olacak? Başka bir iş arayabilirler, ancak şimdi asgari olarak iki katı maaşla. Bu noktada, yazılım mühendislerini ne pahasına olursa olsun elde tutmaya çalışmak muhtemelen buna değmez. Kişi, şirket için kesinlikle temel (ve yeri doldurulamaz) olmadığı sürece, bir ihbar süresi müzakere etmek ve hemen yenisini bulmak daha iyi olabilir.
Bu Deterministik Olmayan Bir Görevdir
Yazılım geliştiricilerini çekmek ve elde tutmak, teknoloji endüstrisindeki her rolde olduğu gibi karmaşık ve belirleyici olmayan bir görevdir. Dışarıda değerli yazılım geliştiricileri arayan birçok şirket var ama neyse ki buradaki amaç bu şirketlere karşı kazanmak değil, şirketimizde tutmayı başarabileceğimiz iyi insanları çekmek.
Seçim süreçleri çok zaman ve çaba gerektirebilir. Buna aceleyle yaklaşırsanız, yanlış insanlarla karşılaşma ihtimaliniz var ve kim ekibi için zehirli olan yazılım mühendislerini tutmak ister? Doğru yapmak için bunun yerine zaman ayırın.