Yazılım geliştirme bir takım sporudur. Bireysel performansınız, tüm ekibinizin ve şirketinizin performansı kadar önemli değil.
Çalışma şeklinizi geliştirerek yalnızca ekibinizin performansına katkıda bulunursunuz. Herkesin çalışma şeklini iyileştirerek ekibinizin performansını ÇOK KATLANIRSINIZ .
Tüm ekibin performansını katlamak, fark edilmek ve terfi etmek için sizi çılgın derecede verimli bir bireysel katkıda bulunan olmaktan çok daha hızlı bir kulvara sokacaktır.
Başkalarının performansını artırmak, bireysel performansınızı artırmaktan farklı bir zihniyet ve yaklaşım gerektirir. Bu makalede size ekibinizin (hatta tüm şirketin) performansını artırmanın kanıtlanmış 16 yolunu göstereceğim.
Google'da "10x geliştirici" terimini aratırsanız bireysel performansla ilgili birçok sonuç elde edersiniz.
Aldığım en iyi sonuçlardan birkaçından alıntılara göz atın:
"Takımdaki 7-8 geliştiriciyle işin %60'ını yaptığım ekiplerde yer almaya alışkınım."
Bu gibi açıklamalar beni ürkütüyor.
Bu. Dır-dir. Olumsuz. Nasıl. Biz. İnşa etmek. Modern. Yazılım.
Yazılım geliştirme bir takım oyunudur. Veya bir takım takım oyunu bile. Ve oyun ham çıktılara göre değil, iş sonuçlarına göre puanlanıyor. Bireysel olarak verimli değil, ekip ve organizasyon olarak etkili olarak.
Mühendislikten sorumlu başkan yardımcısı olarak rekabetçi kodlayıcılar aramıyorum. Hangi zamanda kaç satır kod yazdığın umurumda değil. Ekibin işinin %60'ını tek bir geliştiricinin yapması övüneceğim bir şey değil, düzeltmeyi önceliğim olarak göreceğim bir işlev bozukluğu.
Peki kimi arıyorum o zaman? Aşağıdaki matematiği ele alalım:
Yalnızca kendi çıktınızı geliştirirseniz, ekibinizin çıktısına EKLENİRSİNİZ .
Ancak her ekip üyesinin çıktısını iyileştirirseniz, ekibinizin çıktısını ÇOK KATLANIRSINIZ.
Ve çarpma, toplama işlemini oldukça hızlı bir şekilde yener.
Gerçekten efsanevi bir 10x geliştirici olsanız bile, ekibin büyüklüğü ne olursa olsun, ekibinizin çıktısını yalnızca 10 "birim" artıracaksınız. Ancak tüm ekibin çıktısını yalnızca 2 kat artırırsanız, yalnızca 10 kişilik bir ekip için çıktıyı 10 "birim" artıracaksınız. Ve 100 kişilik bir ekip için 100 "birim".
Ve ekipteki HER geliştiriciden 10 kat daha verimli olduğunuz aşırı bir durumdan bahsediyoruz. Gerçekte, 10 kişiden çok daha küçük ekipler için çarpma, toplama işlemini yenecektir.
Artı, yalnızca ham çıktıdan bahsediyoruz: ne kadar zorlarsınız ama hangi yöne zorlarsınız değil. Ve tüm ekibin yönlendirdiği yön kritik önem taşıyor.
Bir motorlu teknenin 100 veya 1000 beygir gücünde bir motora sahip olması, bu motorun tekneyi ileri değil, yanlara veya geriye doğru itmesinin bir önemi yoktur. Yanlış yöne doğru iterseniz, yalnızca kendi çıktılarınızı boşa harcamakla kalmaz, aynı zamanda tüm ekibinizin çalışmasını da baltalayabilirsiniz.
-10x geliştirici olabilirsiniz.
Ve bu ilişki iki taraflıdır.
Doğru yöne doğru ilerleseniz bile, ekibinizin geri kalanı ters yöne doğru ittiğinde tanrı modu 10 kat üretkenliğiniz boşa çıkabilir.
Onlara yardım etmelisin ki, onlar da sana yardım edebilsinler. Takımınızın zayıf yönlerini iptal edin ki performansınızı iptal etmesinler.
Mantık dışı gelebilir ancak tüm ekibinizi daha etkili hale getirmeye odaklanmak, yalnızca kendi çıktınıza odaklanmak yerine bireysel performansınızı artırmanın daha iyi bir yoludur.
Bu nedenle ben ve diğer yöneticiler bireysel verimlilikten ziyade ekibinizi olumlu yönde etkileme becerisini aramıyoruz. Ve ne kadar geniş etki yaratırsanız, ne kadar çok insanın doğru yöne hızla gitmesine yardımcı olursanız, şirketinize o kadar fazla değer katarsınız.
Ama sadece benim sözlerime güvenmeyin.
Birkaç tanınmış şirketteki mühendislik kariyer basamaklarına bir göz atalım:
CircleCI 6 seviyeli bir merdiven kullanır (E1-E6): Yardımcı Mühendis, Mühendis, Kıdemli Mühendis, Personel Mühendisi, Kıdemli Personel Mühendisi ve Baş Mühendis.
E1-E3 Seviyeleri işin yürütülmesine odaklanır. Görev içinde E1, epik/proje içinde E2, ekip içinde E3.
E4-E6 Düzeyleri ölçeklendirmek ve etki yaratmak için becerilerden yararlanır. Başkalarına yardım eder, rehberlik eder ve akıl hocalığı yaparlar. Ekip içinde ve ekibin iş paydaşlarıyla E4, çeşitli ekipler arasında E5 ve kuruluş genelinde E6.
KAYNAK: https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0
Carta 7 seviyeli bir merdiven (L2-L8) kullanır. Kendi sözleriyle:
Seviyelendirme için en önemli tek şeyi açıkça ifade etmek kolaydır: şirket üzerindeki etkiniz. Çalışanların ilerledikçe sahip olmasını beklediğimiz (kabaca) etkiyi tanımlayarak tüm sistemi özetleyebiliriz: görevler (L2), özellikler (L3), sorunlar (L4), ekipler (L5) ve organizasyon üzerinde (L6), şirkete (L7) ve sektöre (L8) ilişkindir.
KAYNAK: https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20
Spotify, kıdemli, personel veya baş geliştirici gibi harici unvanları pek önemsemiyor. Bu konularda çok esnektirler ve çalışanların kendileri için en anlamlı olanı seçmesine izin verirler. Ancak dahili olarak "etki kapsamları" olarak adlandırdıkları şeye göre düzenlenen 4 seviyeli bir merdiven kullanıyorlar.
Ve bu 4 seviyeyi ("adımları") şu şekilde tanımlıyorlar:
Spotify'da kariyer yolculuğunuz için dört Adım belirledik. Her Adım yalnızca artan sorumlulukla değil, aynı zamanda teknoloji içindeki artan etkinizle de işaretlenir: Bireysel Adım, Takım/Bölüm Adımı, Kabile/Lonca Adımı, Teknoloji/Şirket Adımı.
KAYNAK: https://engineering.atspotify.com/2016/02/spotify-teknoloji-career-steps/
Dropbox 7 seviyeli bir merdiven kullanır (IC1-IC7): Yazılım Mühendisi 1-4, Personel Yazılım Mühendisi, Baş Yazılım Mühendisi ve Kıdemli Baş Yazılım Mühendisi.
Her seviye için "etkinin kapsamını" şu şekilde tanımlıyorlar:
KAYNAK: https://dropbox.github.io/dbx-career-framework/
Bu 4 şirketi, merdivenlerini en kısa ve öz şekilde tanımladıkları ve dolayısıyla neredeyse doğrudan alıntı yapılabilecekleri için seçtim. Ancak benzer bir model tüm sektörde yaygın olarak tekrarlanıyor.
Peki tüm bu şirketlerde terfi etmenizi sağlayan şey nedir? En çok neye değer veriyorlar?
Yine, yaptığınız etkinin alanı.
Bir kuruluşun ne kadar büyük bir kısmı (ve ne kadar çok insan) olumlu yönde etkilerseniz, şirket için o kadar değerli olursunuz ve o kadar çok tanınırsınız.
Böyle bir seviyede çalışmak korkutucu gelebilir. Ancak tüm ekibinizin performansını 2 veya 3 kat artırmak çoğu zaman göründüğünden daha az göz korkutucudur. Ve bireysel performansınızı 10 katına çıkarmaktan daha kolaydır.
Tamam, peki bunu nasıl yapabilirsin?
Başkalarının performansını olumlu yönde etkilemenin birçok yolu olduğundan, tamamen kapsamlı olmak zordur. Ancak gelin bunlardan birkaçını inceleyelim, böylece iyi bir fikir edinebilir ve kendi başınıza daha fazla fikir üretmenize olanak sağlayacak zihniyeti oluşturabilirsiniz.
Küçük başla. Takım arkadaşlarınızla konuları tartışın. Bilginizi kod incelemeleri, eşli programlama ve ekip toplantıları yoluyla yayın. Çalışmanız ve davranışlarınızla örnek olun.
Yalnızca kodlamayla ilgili değil, ekibinizin performansını etkileyebilecek her şeyle ilgili bilginizi paylaşın: süreçler, iletişim ve zaman yönetimi.
Kahverengi çantalar, atölye çalışmaları ve blog yazma yoluyla etkinizi daha fazla insana ulaştırın. Diğer ekiplerle işbirliği yapma fırsatlarını değerlendirin.
Son olarak, geniş çapta bir uzman olarak tanındığınızda, şirket çapındaki öğrenme programlarını yönetme veya uygulama topluluklarına liderlik etme sorumluluğunu üstlenin.
Bir kerelik bir sansasyon olmayın. Yalnızca önceki deneyiminize güvenmeyin.
Sürekli öğrenin. Şirketinizin dışındaki meslektaşlarınızla konuşun. Okumak. Konferanslara gidin. Sektördeki en son gelişmelerden haberdar olun. Diğer şirketlerin neler yaptığını araştırın. Yeni teknikler ve kütüphanelerle denemeler yapın.
Ekibinizin bir sonraki seviyeye ulaşmasına yardımcı olacak yenilikçi bilginin kaynağı olun.
Hangi süreci kullanırsanız kullanın, yazılım geliştirme sonuçta büyük ve küçük projelerin bir akışıdır. Bunların ne kadar iyi analiz edildiği, parçalandığı, planlandığı ve yürütüldüğü, onları çalıştıran ekiplerin performansı üzerinde muazzam bir etkiye sahiptir.
Projeleri hazırlamak ve yönetmek için gönüllü olmak, birden fazla kişinin performansını etkilemenin harika bir yoludur.
Sürecin bir bölümünün sorumluluğunu alarak başlayın: gereksinim analizi, uygulama planı veya görev dökümü.
Süreci uçtan uca sahiplenerek, tüm projenin yürütülmesini denetleyerek onu çevirin.
Maksimum etki için büyük, ekipler arası projelerin koordinasyonunun sorumluluğunu üstlenin.
Karmaşık yazılım sistemlerinde, uzun süre bakımının yapılması gereken birçok "hareketli parça" vardır: modüller, kitaplıklar, alt sistemler, ürünler, hizmetler, API'ler, araçlar, belgeler, işlem hatları vb. Açık bir sahiplik olmadan bunları iyi bir şekilde korumak kolay değildir.
Bakımlarının ne kadar iyi yapıldığı, onları kullanan herkesin performansı üzerinde büyük bir etkiye sahiptir; bu, bazı temel modüller için tüm şirketteki herkes anlamına bile gelebilir.
Şirketinizin kod tabanının, ürününün veya alt sisteminin bir bölümünü sahiplenerek ve onu mükemmel durumda tutarak gözden kaçırılması zor bir etki yaratabilirsiniz.
Daha küçük ölçekte, ekibinizin içinde küçük bir kod modülü veya web hizmeti gibi dahili bir şeyin bakımını yapabilirsiniz.
Daha büyük ölçekte, merkezi tasarım sistemi veya müşteriye yönelik API gibi tüm ürün ve şirket için temel olan bir şeyi koruyabilirsiniz.
Verimli araçlar, bir ekibin ne kadar hızlı ilerleyebileceği konusunda muazzam bir fark yaratır. Ve işimizde optimize edilebilecek, otomatikleştirilebilecek veya daha ustaca kullanılabilecek pek çok şey var.
Sağlam CI/CD hattı. Kod biçimlendirme ve astarlama. Hızlı test paketi. Otomatik kod ve test verileri oluşturma. Daha verimli kod gezinmesi. IDE'nizin tüm gücünden yararlanın. Daha iyi yerel, test ve hazırlama ortamları. İyi yapılandırılmış proje yönetim sistemi.
Hata ayıklama, izleme ve günlüğe kaydetme için güçlü araçlar. Bileşenlerin ve paylaşılan kitaplıkların daha iyi keşfedilebilirliği. İş akışlarınızı otomatikleştirme ve bağlama (Github, Slack, Trello vb.). Liste uzayıp gidebilir.
Araçları geliştirerek, tekrarlanan görevleri otomatikleştirerek veya hatta mevcut araçların nasıl daha iyi kullanılacağına dair bilgiyi yayarak, ekibinizin ve tüm şirketin performansını büyük ölçüde etkileyebilirsiniz.
Kendinizi sizden sonra projeyi ziyaret edecek meslektaşlarınızın yerine koyun. Anlaşılması kolay kod ve mimari, tüm ekibin performansını artırabilir veya bozabilir. Bunları daha temiz, daha basit, gezinmesi ve hata ayıklaması daha kolay ve hataya daha az açık hale getirin.
Bir bileşen veya modülde yapılan nispeten küçük iyileştirmeler bile ekibinizin performansını önemli ölçüde artırabilir. Ve daha küresel iyileştirmeler (örneğin, ürün genelindeki kod sözleşmelerinde) şirketin tamamını bile etkileyebilir.
İnsanları tek bir doğru yöne doğru ilerlemek için bir araya getirmek, tüm ekibin performansını artırmanın en güçlü yollarından biridir. Ve onu düşündüğünüzden çok daha fazla etkileyebilirsiniz.
Her şeyden önce doğru yönü kendiniz anlayın. Şirketinizin hedeflerini, işini ve müşterilerini anlamak için çaba gösterin. Bu, hangi sorunların çözülmesi gerektiğini anlamanıza ve bu sorunlara daha iyi çözümler üretmenize olanak sağlayacaktır.
İkincisi, ekibinizin doğru yöne gitmesine yardımcı olun. Öğrendiklerinizi paylaşın ve belgeleyin. Ekibinizin ilgili metrikleri izlemesine, geri bildirim toplamasına ve daha yinelemeli, çevik bir şekilde çalışmasına yardımcı olun. Ürün yöneticiniz için güvenilir bir danışman olun.
Üçüncüsü, diğer ekipler ve paydaşlarla koordinasyona yardımcı olun, böylece tüm şirket tek bir yöne doğru ilerleyebilir.
Yazılım yalnızca yazılım geliştiricileri tarafından oluşturulmaz. Bu, geliştiricilerin, tasarımcıların, test uzmanlarının, ürün yöneticilerinin, analistlerin, veri bilimcilerin, kullanıcı araştırmacılarının ve çeşitli iş paydaşlarının (müşteri desteği, pazarlama, satış, finans) ortak bir çabasıdır.
Onları destekle. Birlikte yakın çalışın. Hayatlarını kolaylaştırmak, hızlı ilerlemelerine yardımcı olmak ve tüm işlevler arası grubun birlikte sorunsuz bir şekilde çalışması için çabalarınızı koordine etmek için çaba gösterin.
Bu, kuruluşunuzu tek başına mühendislik ekibinden daha geniş bir kapsamda etkilemenize olanak tanır.
Ekibinizin ve organizasyonunuzun nasıl çalıştığının performans üzerinde temel bir etkisi vardır. Ve bu sadece yöneticilere ve scrum ustalarına özel değildir. Bir geliştirici olarak siz de şirket süreçlerini çok fazla etkileyebilirsiniz.
Öncelikle kendinizi eğitin. Deneycilik, yinelemeli geliştirme, ürün keşfi ve Çevik ilkelerini anlayın. CI/CD gibi modern teknik yaklaşımları öğrenin veya bayrak tabanlı geliştirmeyi öne çıkarın. Modern işlevler arası ekiplerin nasıl çalıştığını öğrenin.
İkincisi, eleştirel bir gözle gözlemleyin, proaktif olarak iyileştirme fırsatlarını arayın ve süreci şekillendirmede inisiyatif alın. Ekibinizin içinde ve dışında aktif olun. Süreçle ilgili tartışmalara katılın. Yeni fikirleri uygulayan şampiyon.
Birçok kişinin ve ekibin performansını katlayabileceksiniz.
Pek çok teknik iyileştirme, tüm ekibin daha uzun bir süre boyunca ortak bir çaba göstermesini gerektirir: eski çerçevenin daha yenisiyle başarılı bir şekilde değiştirilmesi, yeni bir kodlama kurallarına geçiş ve kod tabanının kritik bir bölümünün kademeli olarak yeniden düzenlenmesi.
Tutarlı bir şekilde yönetilmez ve ilerletilmezlerse, bu tür girişimler genellikle hızla sonuçsuz kalır. Ve sonuçları en iyi ihtimalle vasattır.
Bu tür girişimlere liderlik etmek için gönüllü olun. Bunları iyi planlar ve yönetirseniz, diğer insanların katkıda bulunmasını kolaylaştırırsanız ve onların etrafındaki çalışmaları koordine edip bunların tamamlanmasını sağlarsanız, ekibinizin ve kuruluşunuzun gelecekteki performansı üzerinde önemli bir etki yaratabilirsiniz.
Etkili ekip çalışması için açık ve şeffaf iletişim şarttır. İnsanların ne kadar iyi koordine olduklarını, birbirlerine ne kadar güvendiklerini, ne kadar iyi kararlar aldıklarını ve hedeflerini ne kadar iyi anladıklarını belirler.
Ve bu her seviyede geçerlidir: bir ekip içinde, ekipler arasında, farklı roller ve departmanlar arasında ve çalışanlar ile yönetim arasında. İletişimin kalitesi tüm organizasyonun performansını engelleyebilir veya kilidini açabilir.
Ve onu geliştirmek için çok şey yapabilirsiniz.
Durumunuzu diğer ekiplerle paylaşın. Ekibinizin ve şirketinizin belgelerini, yol haritalarını ve wiki'lerini iyi durumda tutun. Diğer ekiplerden proaktif olarak bilgi alarak ekibinizin bilgi sahibi olmasına yardımcı olun.
Yönetimden ekibinizin hedeflerini netleştirmesini ve ilerlemeniz konusunda bunları güncellemesini isteyin. Şirket genelindeki iletişim standartlarında ve kanallarında (Slack vb.) iyileştirmeler önerin. Gerektiğinde ekipler arası koordinasyon toplantıları başlatın.
Tek bir doğru kültür yoktur. Farklı şirketler benzer başarı düzeyine sahip, farklı şekilde davranırlar. Ancak aynı şirketteki farklı kişiler, ekipler ve departmanlar kültürel olarak çatışırsa bu durum üretkenliği öldürür.
Şirketinizin kültürünü anlayın. Örnekleyin ve tanıtın. Davranışlarınızın ve iletişim kalıplarınızın bilincinde olun.
Şirketinizin performansını düşündüğünüzden daha fazla etkiler.
Bazen daha yüksek performansa ulaşmak sadece bir motivasyon meselesidir. Daha fazla zorlama isteği. Başarıya daha fazla aç hissetmek. Doğru tutuma sahip olmak.
Takımınızın moralini etkilemek için yönetici olmanıza gerek yok. Örnek olarak liderlik edin. İyi hisler yayın. Coşku, iyimserlik ve cesaret gösterin. İşi eğlenceli hale getirin. Bir kriz anında sakin ve sakin kalın. Her gün biraz daha fazla zorlamak için ekibinizi toplayın.
Bu tür davranışlar viraldir ve sıklıkla insanları tepeden "yetkilendirme" girişimlerinden daha iyi sonuç verir. Ve ekibinizin dışına kolayca yayılırlar, bu da geniş bir etki yaratmanıza olanak tanır.
Bir kuruluşun performansını artırmanın bir başka yolu da işe alımdır.
İmkanınız varsa işe alım sürecine katılın. Röportajlara katılın. İşe alım zorluklarının hazırlanmasına yardımcı olun. CV'leri inceleyin.
İşe alım sürecinin kendisine katılamasanız bile, yeni yeteneklerin işe alınmasına yardımcı olmak için hala yapabileceğiniz çok şey var. Meslektaşlarınıza başvurun. Şirketinizi blog yazma, tartışma forumları, konferanslarda konuşma ve ağ oluşturma yoluyla tanıtın. Glassdoor hakkında olumlu bir inceleme bırakın.
Yeni işe alınanları işe alma ve onlara rehberlik etme sorumluluğunu üstlenin.
Başka kimsenin çözemediği bir sorunu çözebilirseniz, şirketinize rekabet avantajı sağlayacak şekilde bir ton değer üretebilirsiniz.
Bu, yalnız ve 10 kat daha fazla dahi olan biri için bir görev gibi görünebilir, ancak bu yine de ekiple ilgilidir. Eğer harika çözümünüz hakkındaki bilgiyi yaymazsanız, onu başkalarının yeniden kullanabileceği şekilde tasarlamazsanız, bir darboğaz haline gelirsiniz ve çarpan yerine potansiyel bir tek başarısızlık noktası haline gelirsiniz.
Şirketinizi riske atarsınız, değer getirmezsiniz.
Ancak karmaşık sorunları, herkesin çözümünüzü anlayacağı ve bunun üzerine inşa edebileceği bir şekilde çözebilirseniz, oyunun kurallarını değiştirebilirsiniz.
Şirketinizin çoğu zaman büyük, uzun süreli etkisi olan kararlarla başa çıkması gerekir. Bir teknoloji yığını seçme. Bir bulut satıcısı seçme. İnşa etme ve satın alma kararları vermek.
Daha da sık olarak, daha küçük sorular ortaya çıkıyor: Projenin kabaca boyutu ne olurdu? Teknik olarak mümkün mü? Bu soruna olası çözümler nelerdir?
Ekibiniz ve tüm işletmeniz için başvurulacak danışman olun. Sektörün manzarasını derinlemesine öğrenin. En yeni gelişmeler ve trendlerden haberdar olun. Araştırma konusunda iyi olun. Şirketinize çok fazla değer katmanıza izin verecektir.
Gerçekten alt sistemlere sahip olabilir misiniz, projelere liderlik edebilir misiniz veya inşa etme veya satın alma kararları verebiliyor musunuz? Bu mimarların, yöneticilerin ve teknoloji liderlerinin sorumluluğunda değil mi?
Evet yapabilirsin! İyi yönetilen herhangi bir şirkette yöneticiniz veya teknik lideriniz size mümkün olduğu kadar yetki vermekten memnuniyet duyacaktır. Bu aslında onların işi. Bir yöneticinin en önemli sorumlulukları olan büyümenize ve ekibinizin daha iyi performans göstermesine yardımcı olur.
Daha yüksek etkili şeylerden bazıları gerçekten de daha fazla deneyim gerektirebilir - hiç kimse kodlama eğitim kampından çıkan bir kıdemsizin, şirketteki tüm ekipler tarafından kullanılan, görev açısından kritik bir alt sisteme sahip olmasına izin vermez. Ancak tartıştığımız tüm etkiler kademeli bir ilerlemeye sahiptir.
Ekibinizde daha küçük girişimlerle başlayın ve etkinizin kapsamını giderek genişletin. Daha fazla büyüme fırsatı bulmak için lideriniz veya yöneticinizle birlikte çalışın. Kendiniz, ekibiniz ve şirket genelinde bu tür fırsatları sürekli takip edin. Fark edilin ve itibar kazanın.
Bu sizi daha büyük ve daha büyük bir sıçrama yapmak için hızlı bir yola sokacaktır. Sadece 10x değil, 100x geliştirici olmak. Ve - eğer tutkunuz buysa - sonunda kendi başınıza bir teknoloji lideri olmak.
Evet, sağlam bir geliştirici olmanız gerekiyor. Kendiniz berbat işler yaparken başkaları için çarpan olmak zordur. Ama eğer gerçekten 10x, 5x veya sadece sağlam bir 1x iseniz, endişelenmeyin. Zihniyetinizi kişisel verimlilikten tüm ekibin ve şirketin etkinliğine kaydırın.
Ve bunu yaptığınızda sınır yalnızca gökyüzü (ve şirketinizin büyüklüğü) olur. Yalnızca 10 kat geliştirici değil, 100 kat ve daha fazlası da olabilirsiniz.