Sakin Olun ve Yeni Bir Geliştirme Ekibine Geçiş Yapın
Yayınlanan: 2022-03-11Bir yazılım ürününün kullanım ömrü boyunca bir geliştirme ekibinden diğerine geçiş yapması yaygındır. Ürünün farklı aşamaları, farklı türde bir geliştirme ekibi gerektirebilir: ilk sürümü oluşturmak için bir danışmanlık, onu sürdürmek için tek başına serbest çalışan bir geliştirici, onu ölçeklendirmek için şirket içi bir ekip veya bazı "eklemek için profesyonel bir tasarımcı". pop".
Bunun ne kadar sıklıkla meydana geldiğine rağmen, birçok teknik olmayan kurucu ve ürün sahibi, bir sonraki takımı getirme zamanı geldiğinde kendilerini hazırlıksız ve çabalıyor buluyor. Bu genellikle yeni ekibin hızlı ilerleme kaydetmemesi, zaman kaybı ve dahil olan herkes için hayal kırıklığı ile sonuçlanır.
Bu, şimdi veya gelecekte siz olabilirsiniz gibi geliyorsa, o zaman biraz endişelenmelisiniz. Neyse ki, bu olasılığa hazırlanmak ve geçişi olabildiğince sorunsuz hale getirmek için atabileceğiniz adımların üzerinden geçeceğiz.
Meşaleyi Geçmek: Yeni Bir Geliştirme Ekibine Katılmak
Bu yazıda size böyle bir değişikliğe hazırlanmanıza yardımcı olacak bir kontrol listesi sunacağım. Ürününüzü daha samimi bir düzeyde tanımaya başlayacak ve onu üretmeye giden tüm çeşitli hizmetler ve teknolojiler üzerinde daha fazla kontrol kazanacaksınız; bu, yeni bir ekibe güvenle ve nispeten kolaylıkla katılmanızı sağlayacak.
Ama ya tüm ekibi değiştirmiyorsanız? Bunu okumaya zahmet etmeli misin?
Önceki ekiplerden bazıları gemide kalsa bile, sorunsuz bir geçiş için gereken tüm yanıtlara ve bilgilere sahip olmayabilirler. Eski ekipten yenisine bilgi aktarımı sürecinde süreklilik ve yardım sağlasalar da, görevdeki ekip üyelerine güvenmek, ürün sahibinin sorumluluğu üstlenmesi ve aktarımı kolaylaştırmasının yerini tutmaz. Ek olarak, sorumluluğu üstlenmemek, eski ve yeni ekip üyeleri arasında sürtüşmeye neden olabilir veya eski ekip üyelerini gereksiz görevlerle yükleyerek, onları yeni ekip üyeleriyle iletişim kurmak ve çeşitli sorunları çözmek için çok fazla zaman harcamaya zorlayabilir.
Yine de, bazı ekip üyeleri gemide kalıyorsa, geçiş çabalarınızda paha biçilmez bir varlık olabilirler. Onlara danışın, onları döngüde tutun ve geçişle ilgili çok fazla göreve boğmadan deneyimlerinden yararlanmaya çalışın. Tüm ağır işleri onların yapmasını beklemeyin! Bu senin işin.
O halde lafı daha fazla uzatmadan konuya girelim!
Belgeleri Toplayın
Serbest çalışan geliştiricilerden genellikle daha önce hiç görmedikleri mevcut bir kod tabanına atlamaları istenir. Bu özellikle Toptal yazılım mühendisleri için geçerlidir. Amacımız, müşterilerimiz için olumlu bir etki yaratmaya başlayabilmemiz için her zaman mümkün olduğunca çabuk hızlanmak.
Projeyle ilgili net ve kapsamlı belgelere erişim, işe alım sürecini önemli ölçüde hızlandırabilir ve geliştiricilerin ilerlemeyi engelleyebilecek tuzaklardan kaçınmasına yardımcı olabilir.
İyi belgelerin en azından aşağıdaki konuları kapsaması gerekir:
- Bir geliştirme ortamı kurmak - Yeni başlayanlar için ilk görev, uygulamayı kendi bilgisayarlarında kurmak ve çalıştırmaktır. Bunu yapma süreci teknolojiler arasında farklılık gösterir. Genel olarak, kaynak kodunu alma, veritabanını kurma, bağımlılıkları yükleme, ortamı API anahtarları ve kimlik bilgileriyle yapılandırma, örnek verileri içe aktarma vb. gibi görevleri gerektirir. Geliştiriciler, kendi alanlarında bu sürece dahil olan her şey hakkında iyi bir fikre sahiptir ve ayrıntıları buna göre ayarlayabilmelidir.
- Otomatik test paketini çalıştırma - Bir uygulamanın testlerinin geçtiğini görmek, her şeyin doğru şekilde kurulduğunu ve gelecekteki değişikliklerin mevcut özelliklerinizin hiçbirini bozmamasını sağlar.
- Hazırlama ve üretim sunucularına dağıtım - Canlı uygulamanın en yeni değişikliklerle güncellenmesi, yüksek oranda komut dosyası içeren bir süreçtir ve bu işlemlerin sırası, mümkün olduğunca ayrıntılı olarak adım adım ana hatlarıyla belirtilmelidir.
- Yeni katılan bir geliştiriciyle ilgili diğer bilgiler - Her uygulamanın kendi tuhaflıkları vardır. Bunları yazmak, gelecekteki ekipleri, önceki ekibin nasıl başa çıkacağını çözdüğü sorunları ayıklamak için çok fazla çaba harcamaktan kurtarır.
Belgeler, uygulamayı kurma ve kod tabanına katkıda bulunma konusunda ilk elden deneyime sahip bir geliştirici tarafından yazılmalıdır.
Herhangi bir geçiş gerçekleşmeden önce, önceki geliştirme ekibinden yukarıdaki konulara değinen bir kaynak oluşturarak bilgi transferini kolaylaştırmasını isteyin!
Yazmak onların işi değilse, geliştirme ortamı kurulumunu, dağıtımını vb. gösteren bir veya daha fazla senaryoyu kaydetmelerini isteyin. Bugün, tüm geliştirme ortamlarının paketlenip başkalarına dağıtılmasına izin veren Vagrant ve Docker gibi araçlar bile var. Özünde, birine bir çekicin nasıl yapılacağına dair talimatlar vermek yerine, onlara çekicin kendisini verin.
Bir projenin dokümantasyonunun ne kadar kapsamlı ve etkili olduğunun turnusol testi, yeni bir geliştiricinin kendi geliştirme ortamı kurulumunu ve uygulamanızı ne kadar çabuk çalıştırabileceğidir.
Ürününüzü Anlayın
Harika belgelere sahip olmak, kendi ürününüzün teknolojisinin temellerini bilmenize gerek kalmaması için sizi mazur göstermez. Bir yazılım ürününün sahibi olarak, çok teknik olmasanız bile uygulamanızı olabildiğince iyi anlamak sizin sorumluluğunuzdadır.
Aşağıdaki sorular yaygındır ve yanıtları aramanıza gerek kalmadan bilmeniz beklenmelidir:
- Uygulamanız hangi teknoloji yığınını kullanıyor? - Arka uç ve ön uç için birçok ortak uygulama çerçevesi vardır ve herhangi bir yeni geliştirme ekibi, uygulamanızın kullandıklarına aşina olmalıdır. Arka uç web teknolojilerinin bazı örnekleri Ruby on Rails, Node.js ve Django'dur. Ön uç web teknolojilerinin bazı örnekleri React.js, Angular.js ve Ember.js'dir.
- Nerede barındırılıyor? - Farklı web barındırıcılarının, değişen düzeylerde deneyim gerektiren farklı dağıtım süreçleri vardır. Son yıllarda, bulut teknolojileri bir dizi yeni barındırma seçeneği yarattı ve hangisini kullandığınızı belirlemeniz ve neden diğerlerine tercih edildiğini açıklamanız gerekecek.
- Geliştirme süreci nedir? - Ekibiniz Git gibi belirli bir kaynak kontrol yönetim aracı kullanıyor mu? Öyleyse, yeni bir özelliğin geliştirildiği, test edildiği, onaylandığı ve dağıtıldığı süreç nedir? Süreç standartlaştırılmalı, düzgün bir şekilde belgelenmeli ve yeni gelenler tarafından tekrarlanması kolay olmalıdır.
- Uygulamanız hangi üçüncü taraf hizmetlerini kullanıyor? - Bazı uygulamalar, Shopify gibi üçüncü taraf hizmetler üzerine kuruludur. Üçüncü taraf hizmetlerine olan güvenin giderek arttığını ve şu anda herhangi bir ekstra hizmet kullanmasanız bile, projenizin bir süre sonra üçüncü taraf hizmeti kullanmaya karar verebileceğini lütfen unutmayın.
- Uygulamanız hangi platformlarda çalışabilir? - Uygulamanız bir masaüstü uygulaması, web uygulaması, duyarlı mobil web sitesi, yerel iOS uygulaması, yerel Android uygulaması veya başka bir şey mi? Birkaç farklı platformda mı çalışıyor? Herhangi bir zamanda önceliğiniz hangi platform? Ürününüz hangi platformda en güçlü ve en zayıf? Uygulamanızın mevcut platformlarının tüm ayrıntılarını ve hatta hangilerine genişletilebileceğini bildiğinizden emin olun.
Sahipliğini almak
Günümüzün yazılım geliştirme süreci, çok sayıda üçüncü taraf hizmetleri ve araçları kullanmaktadır. Bilseniz de bilmeseniz de, uygulamanız bir istisna değildir.

Geliştirme sürecinde, önceki ekibiniz sizin adınıza kaydolmuş veya ihtiyaç duyulan hizmetlere erişmek için kendi hesaplarını kullanmış olabilir. Yeni bir ekibe geçiş, uygulamanızın dayandığı hizmet ve araçların her birinin sahipliğini almanız ve kontrolünü elinizde tutmanız gerektiği anlamına gelir; orijinal geliştiriciler
Aşağıda, uygulamanızın kullanabileceği çeşitli harici araçların veya hizmetlerin bir listesi bulunmaktadır:
- Kaynak Kontrol Yönetimi - GitHub, Bitbucket, Gitlab
- Web Hosting - Heroku, EngineYard, Digital Ocean, Bluehost, Amazon Web Servisleri
- Dosya Barındırma - Amazon Web Hizmetleri (S3)
- DNS Sağlayıcı - GoDaddy, DNSimple, Hover
- Geliştirme Hizmetleri - NewRelic, FileStack, Segment, Bugsnag (ve sayısız diğerleri)
- Ödeme Hizmetleri - Stripe, Braintree, PayPal
- Blog Hizmetleri - WordPress, Tumblr, Ghost
- E-ticaret Çözümleri - Shopify, Squarespace
- Analytics / İzleme - Google Analytics, Mixpanel, Kissmetrics
- E-posta Pazarlama: MailChimp, Sürekli İletişim
Giden geliştirme ekibinize hangilerinin uygun olduğunu sorun. Geliştirme ekibine ait olan tüm hizmetler için, onlardan sahipliği size devretmelerini isteyin. Bu mümkün değilse, kendi hesabınızı oluşturmanıza yardımcı olmalarını isteyin ve uygulamanın sizinki yerine sizin hesabınızı kullandığından emin olun. Bu, uygulamanız için bazı yapılandırma ayarlarını değiştirmekten başka bir şey gerektirmemelidir.
Söylemeye gerek yok, her geliştirme sözleşmesinin çıkarlarınızı ilk günden koruduğundan ve ne olursa olsun sorunsuz bir geçiş sağladığından emin olun.
Erişim Ver
Uygulamanızın ekosistemi ve uygulamanızın kullandığı tüm çeşitli araçlar ve hizmetler üzerindeki sahiplik hakkında sağlam bir anlayışla, artık gelen ekibe veya kişiye tam erişim sağlayabilirsiniz.
Çoğu hizmet, hesabınıza bir ortak çalışan eklemenize ve onlara belirli bir erişim düzeyi vermenize olanak tanır. Burada muhafazakar olmak sorun değil . birçok kurucu, özellikle yalnız girişimciler, geliştiricilerine hizmetlerine tam yönetici erişimi vermeyi ve her şeyi onların halletmesini tercih ediyor. Bunun, sizi döngünün dışında tutma gibi olumsuz bir yan etkisi vardır, bu da öğrendiğimiz gibi gelecekte geçişi zorlaştırabilir.
Geliştiricilerinize tam yönetici ayrıcalıkları vermeli misiniz? Bu sizin kararınız ve çoğu insanın bu yaklaşımla bir sorunu yok. Ancak, her zaman önceden plan yapmanız ve kararınızın yeni bir geliştirme ekibini olumsuz etkilemediğinden emin olmanız gerekir. Projenin erken aşamalarında bunu yapmamak, gelecekte can sıkıcı sonuçlar doğurabilir.
Handoff'u Yönetmek
Artık tüm üslerinizi kapsadığınıza göre, bir takımdan diğerine geçişi yönetmeniz gerekecek. Hem gelen hem de giden ekiple başa çıkmak için bazı temel ipuçları.
Gelen Takım
- Beklentileri belirleyin - Yeni ekip, doğru yöne odaklanabilmeleri için en önemli hedeflerinizin ne olduğunu bilmelidir. Yeni ekibin hemen başarabilecekleri konusunda kendi beklentilerinizi yönetmek de aynı derecede önemlidir.
- Sık sık check-in yapın - Yeni ekibi batmaya veya yüzmeye terk etmeyin. İhtiyaç duydukları her şeye sahip olduklarından emin olmak için sık sık check-in yapmak istersiniz ve kendi başlarının çaresine bakmaları gerektiğini düşünmezsiniz. Bunu mikro yönetim olmadan yapmaya çalışın. Desteklemek ve ihtiyaç duyduklarında yardım etmek için orada olduğunuzu bildiklerinden emin olun, ancak onlara gereksiz baskı uygulamayın.
- Sabırlı olun - Geliştiricilerin yeni bir kod tabanına alışması zaman alır. Yeni takımın bir öncekinin hızına ayak uydurabilmesi için biraz öğrenme süresi olacağını anlayın.
Giden Takım
- Tüm bekleyen kodları toplayın - Tüm kaynak kodların ana depoda kontrol edildiğinden ve nelerin konuşlandırılıp dağıtılmadığının durumunu bildiğinizden emin olun. Yeni ekibin tam olarak nereden başlayacağını ve çalışmaya başlayacağını bilmesi gerekecek. Ben kendim, kodu ana depoya koymadan dağıtan bir ekip için devraldığım bir durum yaşadım. Bu, giden ekip kaynak kodunu tutarlı bir durumda bıraksaydı kolayca önlenebilecek hatalara, yinelenen çalışmaya ve baş ağrılarına yol açtı.
- Erişim düzeylerini güncelleyin - Yollarınızı iyi şartlarda ayırdıysanız, kodunuza ve/veya dağıtımınıza erişimlerini onlara bırakmak isteyebilirsiniz. Birçok takım, yeni takım tamamen devralana kadar geçiş aşamasında yardımcı olmaktan mutluluk duyar. Değilse, yeni ekiple kaza sonucu ortaya çıkabilecek sorunları veya çakışmaları önlemek için eski sürüme geçmeyi veya erişimi iptal etmeyi düşünün.
- Çalışmaları için onlara teşekkür edin - Geçişler yoğun olabilir. Siz yeni ekiple uğraşmakla meşgulken, giden ekibinize projenize katkılarından dolayı teşekkür etmeyi unutmayın.
Çözüm
Hayattaki herhangi bir geçiş korkutucu olabilir, işe yarayıp yaramayacağına dair belirsizliği, bilinmeyenin korkusunu vb. Yeni bir geliştirme ekibine geçiş farklı değildir, ancak bunu kolaylaştırmak için adımlar atabilirsiniz ve atmalısınız. Çoğu durumda, sadece biraz uzun vadeli planlama gerektirir.
Yazılım ürününüz, geliştirme süreci ve sürece dahil olan her şey hakkında daha fazla teknik ve teknik olmayan bir anlayışa sahip olmak, bir ekipten diğerine geçişi olabildiğince sorunsuz ve zahmetsiz hale getirmeye yardımcı olacaktır.
Hepsinden iyisi, yeni ekibiniz size saygı gösterecek ve oyunun zirvesinde olduğunuz için size teşekkür edecek! Onlara zamandan ve emekten tasarruf etme ihtimaliniz yüksek, bu da paradan tasarruf edeceğiniz anlamına geliyor. Ayrıca, yeni ekip yüksek profesyonel standartlarda ısrar etmeyi ne kadar erken fark ederse o kadar iyi. Muhtemelen, projeyi devraldıklarında bu uygulamaları uygulamaya devam edecekler ve bir sonraki geçişi de sorunsuz hale getirecekler.
Öyleyse, yazılım ürününüzün herhangi bir mülkiyet devrinden önce olması gereken önemli noktaları gözden geçirelim:
- Uygulamanız, geliştirme ortamı ve dağıtım süreci hakkında mümkün olduğunca çok belge toplayın veya oluşturun.
- Ürününüzü içini dışını bilin.
- Uygulamanızın tüm üçüncü taraf hizmetlerinin ve bağımlılıklarının kontrolünü elinizde tutun ve her şey için kullanıcı adlarına ve parolalara sahip olun.
- Yeni ekibinize, çalışmaya başlamak için ihtiyaç duydukları her şeye erişim izni vermeye hazır olun.
- Proaktif olun ve hiçbir şeyi şansa veya giden geliştirme ekibine bırakmayın.
