Kabul edelim. Geliştirici deneyimi moda bir kelimedir. Bu, çok az içerik veya tanımla, genel anlamda çok fazla konuşulduğu anlamına gelir.
Geliştirici deneyimi tartışmasına daha fazla doku ve tanım getirecek bir girişim olan Dev-X Projesi'ni başlatmak için ilham almamın nedeni budur. Her "bölümde" bir endüstri liderine geliştirici deneyimi hakkında 10 soru soruyorum ve onların bu belirli konulara ilişkin içgörülerini ve görüşlerini topluyorum. Daha sonra bu tartışmaları yayınlıyor ve toplulukla paylaşıyorum.
Elimde 20'ye yakın röportaj var ve artık bunları yararlı yollarla bir araya getirmeye ve bazı ilginç trendleri ve tekrarlanan temaları ortaya çıkarmaya yetecek kadar malzeme var.
Bu, harika bir mühendislik kültürü yaratmanın nihai kılavuzudur. DevX Projesi röportajlarında sorduğum sorulardan biri "mükemmel bir mühendislik kültürünün temel bileşenleri nelerdir?" sorusudur.
Bu önemli bir soru çünkü günün sonunda şirketinizdeki her şey, yarattığınız kültürden iyisiyle kötüsüyle etkilenecek. Liran Haimovitch'in belirttiği gibi: "Kültür, stratejiyi kahvaltı niyetine yer, çünkü kültür, ekiplerinizin öngörülemeyen durumlarda öngörülebilir şekillerde hareket etmesine olanak tanır."
Peki kültür tam olarak nedir? İyi soru. Bu kısmı bilinçli olarak yoruma açık bıraktım ve yanıtlar da aynı derecede geniş kapsamlıydı. Görüşülen kişilerden bazıları geliştiricilerin kendilerine odaklandı. Diğerleri şirketlere ve şirket politikasına odaklandı. Bazıları teknik veya profesyonel tavsiyeler verirken, diğerleri kişilerarası ilişkiler ve iletişim ipuçları verdi.
Ve bu, her şeyin ilk ve belki de en önemli noktasıdır. Gerçekten harika bir mühendislik kültürünün birden fazla öğeyi paralel olarak dengelemesi gerekir.
Ayrıntılar organizasyona ve duruma göre değişebilir ancak ortak payda, üç boyutlu bir kültür oluşturma yaklaşımına duyulan ihtiyaçtır.
Harika bir mühendislik kültürü oluşturmaya yönelik, DevX Projesi röportajlarından derlenen ve uyarlanan bu geliştirici deneyimi kılavuzunu umarım beğenirsiniz.
Çeşitli DevX Projesi özellikleri, geliştiriciler için bir özgürlük ve özerklik kültürü yaratmanın önemini tekrarladı.
Axiom'dan Seif Lotfy'nin belirttiği gibi: "Sanırım bu gerçekten Dan Pink'in "Drive - Bizi neyin motive ettiğine dair şaşırtıcı gerçek" adlı kitabında bahsettiği şeye dayanıyor. Temel motivasyon faktörleri olarak özerkliği, ustalığı ve amacı tanıtıyor. Dolayısıyla, geliştiricilere kendi işlerinde ustalaşmaları için özerklik verdiğinizde, aynı zamanda harika bir kültür yaratan bir amaç da geliştirmiş olurlar… Ve mühendisleri araçlara zorlamayın. Bence mühendislerinizin kendi araçlarını seçmesine izin vermelisiniz. Onları özerklik ve sahiplenmeyle güçlendirin.”
Viktor Farcic şunları ekledi: “Benim için en önemli şey karar verme özgürlüğüdür. Pek çok şirketin mühendislere çocukmuş gibi davrandığını, onların ellerinden tutarak ne yapmaları gerektiğini söylediğini düşünüyorum. Artık caddenin karşısına geçebilirsiniz, şimdi durmanız gerekiyor. Şimdi sola gidiyorsun, şimdi sağa gidiyorsun. Bana göre bu, geliştiriciler arasında her türlü yaratıcılığa ve öğrenme yeteneğine gerçekten zarar verebilir. Bu çok yıkıcı çünkü geliştiriciler olarak işimizin çoğunun düşünmek ve bir şeyleri çözmek olduğuna inanıyorum. Kod yazmak kolaydır. Ne yazacağınızı öğrendikten sonra ve sözdizimi ve bunun gibi konularda en azından temel bir anlayışa sahip olduğunuzu varsayarsak, kod yazmak sürecin en kolay kısmıdır. Ne yazılacağını ve nasıl yazılacağını bulmak işin karmaşık kısmıdır. Ve eğer insanlara bu şeyleri çözmeleri için yeterli özgürlük vermezsek, o zaman istemediğimiz sonuçlarla karşı karşıya kalırız; hiçbir şey işe yaramaz çünkü geliştiriciler hiçbir şey yapmadan tam olarak onlara söylediklerinizi yapan robotlardır. kendi düşünceleri veya yaratıcılıkları.
Geliştirici özerkliğinin faydaları teknik kararlarla sınırlı değildir. Ayrıca ekip üyeleri arasında daha iyi kişilerarası ilişkilerin geliştirilmesine de yardımcı olabilir. Seif Lotfy, özgün ilişkiler yaratmanın faydalarını vurguladı ve şunu açıkladı: "Süper profesyonel ilişkinin ötesinde, ekibe hareket etme, kendileri olma ve birbirlerini oldukları gibi takdir etme özgürlüğü verin."
Özerklik, insanların kendilerinin en iyi, özgün versiyonları olmalarına izin vermek anlamına gelir. Ve bu gerçekleştiğinde genellikle ekip ve şirket için olumlu sonuçlar doğurur.
Barak Schoster'ın dediği gibi, "birlikte çalışmaktan keyif alan akıllı insanları işe almanız" da yardımcı olur.
Geliştiricilere özerklik vermek, geliştiricilerin işleri için proaktif sahiplenme ve sorumluluk alma ihtiyacıyla örtüşmektedir.
Liran Haimovitch'e göre sahiplik ve sorumluluk, herhangi bir büyük kültürün en önemli unsurlarından ikisidir.
Shawn “Swyx” Wang , bu sahiplenmenin “proaktif sahiplenme” olması gerektiğini vurguladı: “Amazon'un 16 liderlik ilkesinden oluşan listesindeki 9. madde – “eylem için önyargı”. Bu bağlamda bunun önemli olduğunu düşünüyorum, çünkü birçok şeyi proaktif bir şekilde sahiplenmezseniz yapamazsınız. Dolayısıyla bu, sağlıklı bir mühendislik kültürü için gerçekten önemli.”
Seif Lotfy, geliştiricilerin iletişim kurmasının ve nedenini sormasının önemli olduğunu ifade etti: “Diğer insanların yaklaşımlarına ve kararlarına yansıyan düşünceyi anladığınızdan emin olun. Bu şekilde, aynı fikirde olmasanız bile her şeyi dikkate alabilir ve ileriye doğru mümkün olan en iyi yolu bulmaya çalışabilirsiniz.
Amir Shevat , bunun birinin açıklama istemesine bağlı olmaması gerektiğini ekledi. “Nedenini” önceden sunan bir kültür inşa etmelisiniz:
“Bilginizi paylaşın ve neden y yerine x'i tercih ettiğinizi açıklayın. Bu şekilde insanlar sizden öğrenebilir ve en iyi uygulamalarınızı ve benzersiz düşünce tarzınızı günlük yaşamlarında da benimseyebilir."
Benzer ve daha az önemli olmayan bir değer şeffaflıktır.
Amir Shevat şöyle açıkladı: “Şeffaflık çok önemli. Bu, mühendislerin büyük resmi - nereye gittiğimizi, yaptığımız şeyi neden yaptığımızı - görebileceği bir ortam yaratmak anlamına gelir. Geliştiriciler için bu tür bir ortam oluşturmak, onların daha iyi kod oluşturmalarını sağlayacaktır."
İletişim ve şeffaflık gerektiği gibi sağlandığında, "Dürüstlük" konusunda başka bir temel kültür bileşeni de kazanırsınız. Amir'in belirttiği gibi: "Bir şeyin doğru olmadığını düşünüyorsanız bunu açıkça söyleyin. Süreçler daha iyiye doğru değişebilir ve gelişebilir ve gelişmelidir.”
Wilco'dan Shem Magnezi de benzer bir bakış açısı sundu: "Önemli olan her zaman neleri geliştirebileceğimizi düşünmektir: sistemimizde, süreçlerimizde, ürünümüzde, kod stilimizde, izleme araçlarında ve nelerde olamayacağımız. Bir sistem kurmanın sayısız yönü vardır ve asla mükemmel olmayacaktır; ancak her zaman iyileştirmenin yollarını aramalıyız." Bu, iyi bir mühendislik kültüründe iletişimin, şeffaflığın ve bütünlüğün kendini göstermesinin bir yoludur.
Swyx ve Jason Bosco, suçsuz bir geri bildirimin ve ölüm sonrası kültürün kritik olduğunu öne sürdü.
Swyx'in sözleriyle: “Malzemeleri gönderdiğinizde ve üretimde bakımını yaptığınızda, işlerin her zaman bozulacağını unutmayın. Dolayısıyla suçsuz bir otopsi kültürüne sahip olmak da önemli.”
Bu aynı zamanda ekipteki herkesin geri bildirim almaya açık olması gerektiğini ekleyen Amir Shevat tarafından da tekrarlandı: “Genel bir kural olarak, birbirlerinden geri bildirime açık olan mühendisler işlerini yapma konusunda çok daha iyiler.
Peki sıfır suçlama kültürüne nasıl ulaşabilirsiniz? Seif Lotfy'ye göre bu, temel varsayımlarınız üzerinde çalışarak başlıyor: “Herkesin iyi niyetli olduğuna dair temel bir varsayım geliştirmek önemlidir. Bu, özellikle farklı saat dilimlerinde ve programlarda bulunan dağınık ekipler için önemlidir."
Herkes diğer herkesin iyi niyetli olduğunu varsayarsa ve her ekip üyesi suçlamadan geri bildirime açık olursa, ekip işleri etkili bir şekilde yapmak için iyi bir konuma sahip olacaktır.
Earthly.dev'den Adam Gordon Bell bunu şu şekilde ifade etti: “Harika bir kültür, güvene ve anlayışa dayanır. Bunların her ikisi de zaman içinde ortak deneyimlere dayalı olarak gelişiyor.”
Mühendislik kültürünün önemli bir bileşeni olarak işbirliğinin birçok röportajımızda yankılanan bir mesaj olması şaşırtıcı değildir.
Wix'ten Hila Fish'in belirttiği gibi: "En iyi çözümleri ortaya çıkarmak ve nihai hedefe ulaşıldığından emin olmak için başkalarıyla işbirliği yapmanız gerekir."
Ve Amir Shevat şöyle açıkladı: "Daha az işbirlikçi bir ekip "harika" bireysel mühendislerle dolu olsa bile, işbirlikçi insanlardan oluşan bir ekibin her zaman daha az işbirlikçi bir ekipten daha iyi performans göstereceğini düşünüyorum. Kişisel olarak bu kadar işbirlikçi olmayan mühendislik ekiplerinin bir parçası oldum. Harika, muhteşem mühendisleri vardı ama yaptıklarını gerçekten paylaşmıyorlardı. İnsanların işbirliği yapmaya, paylaşmaya, geri bildirim sağlamaya ve her bir kişinin üzerinde çalıştığı konular arasındaki arayüzler hakkında konuşmaya başlaması çok daha faydalı oluyor."
Zanaat ve ürüne olan tutku
Norhflank'tan Tom Snelling şunları söyledi: "Bence bir ekibin sahip olabileceği en iyi şey, ürettikleri ürüne karşı gerçek bir tutkudur. Hem yatırım yaptığım hem de yatırım yapmadığım projelerde çalıştığım için moral (ve dolayısıyla çıktı) arasındaki fark inanılmaz. Mühendisler ne üzerinde çalıştıklarını gerçekten önemsediklerinde kültürün on kat geliştiğini düşünüyorum. Projeniz üzerinde çalışmak isteyen akıllı insanları işe alın.”
Amir Shevat, mükemmel bir mühendislik kültürü yaratmada profesyonelliğin önemini vurguladı: “Her zaman şirketin ihtiyaçlarını düşünün. Bu, işinizin her yönü için geçerli olmalıdır… Teknik olmak harika ve hatta gerekli olsa da, iş zihniyetinizi eğitmek, tercihin yalnızca en teknik çözümlere değil, başarıya ulaşmaya yardımcı olan çözümlere verildiği bir kültür yaratmaya gerçekten yardımcı olacaktır. şirket için en iyi sonuç.”
Roundforest'tan Gil Tayar da aynı fikirde: "Bana göre harika bir mühendislik kültürünün temel bileşenleri şunlardır: İyi insanlar. Çok fazla ego yok. Zanaattaki profesyonellik ve gurur. Bu unsurlar yaratıcı bir ortam oluşturuyor ve bu unsurlar olmadan pozitif, üretken bir kültür yaratmak zor.”
Daha teknik bir bakış açısıyla Swyx, ekiplerin dokümantasyona önem vermelerini tavsiye etti: "İyi bir dokümantasyon veya tasarım dokümanı kültürü de oldukça önemlidir. Başka bir deyişle, bir şeyi uygulamaya koymadan önce onu tasarlamaya çalışmalı, öneriler üzerinde düşünmeli ve üst düzey konularda herkesle anlaşmaya varmalısınız. Ancak iyi bir kültür bunu bir adım daha ileri götürür. Bu, herkesin belgeyi aldığında aslında onu okuduğu anlamına gelir. Ve bu oldukça nadirdir. Dolayısıyla iyi bir dokümantasyon kültürü, iyi yazma ve aynı zamanda iyi okuma anlamına gelir; böylece tasarım sorunlarını ve uyumsuz beklentileri en kısa zamanda yakalarsınız."
Amir Shevat, sağlıklı bir teslimat temposunun değerini vurguladı: "Sağlıklı bir teslimat temposuna sahip olmak aynı zamanda mühendislik kültürü açısından da çok önemlidir, çünkü bir ekip teslimat yapmaya devam ettiğinde, yaptıkları işten kaynaklanan mutluluk ve tatminin faydalarını düzenli olarak elde edebilirler."
Barak Shoester da benzer şekilde ekipleri "yineleme hızı için optimizasyon yapmaya" teşvik etti.
Ve Jason Bosco şunu söyledi: "Benim için en önemli unsurlardan bazıları şunlardır: Bir mühendisin kodu yazması ile kullanıcıların onu kullanması arasında geçen süreyi azaltmak, zahmetsiz geri alma işlemleriyle birlikte..."
Bu, röportajlarımızın çoğunda şu veya bu şekilde gündeme gelse de, Circut ve In Plain English'ten Sunil Sandhu bunu çok iyi ifade etti: “Alçakgönüllülük benim için üst sıralarda yer alıyor ve bu sadece mühendislik için değil, genel olarak çalışma kültürleri için de geçerli. Ekip üyeleri başkalarına yardım etmeye istekli ve hazır olmalı, kimsenin bir sorunun sorulmayacak kadar aptalca olduğunu düşünmediği bir ortam sağlamalıdır."
Burada verebileceğim pek çok klişe cevap olduğunu düşünüyorum ve bir dereceye kadar buna daha iyi cevap verebilecek çok daha deneyimli geliştiricilerin olduğunu düşünüyorum. Son olarak öne süreceğim şey şu ki, bir takım misyon odaklı olduğunda ve bu takımın hepsi aynı ilahi sayfasından şarkı söylediğinde inanılmaz şeyler olabilir.
Ve Gil Tayar'ın sözleriyle: “Bana göre harika bir mühendislik kültürünün temel bileşenleri şunlardır: İyi insanlar. Çok fazla ego yok. Profesyonellik ve zanaattaki gurur.”
Açıkçası, iyi bir mühendisin belirli bir teknik yeterliliğe sahip olması gerekir. Ancak bir ekibi oluştururken ve yönetirken, birbirlerini yüksek standartlarda tutmalarını, meraklı olmalarını, pozitif kalmalarını ve sürekli gelişmek için çabalamalarını sağlayacak olan da bu ek faktörlerdir.
İşte harika bir mühendislik kültürü de bununla ilgilidir.
Burada gördüğün gibi mi? Öne çıkmak ister misiniz? Diğer harika özellikler için DevX Projemize göz atın ve kendi geliştirici deneyimi bilgeliğinizi paylaşmak üzere başvuruda bulunun.
Burada da yayınlandı.