Geliştirme uygulamalarını resmileştirmeye yönelik mimari stratejileri

Bu Azure İyi Tasarlanmış Çerçeve operasyonel mükemmellik denetim listesi önerisi için geçerlidir:

OE:03 Fikir oluşturmadan teslime kadar tüm yazılım geliştirme yaşam döngüsü boyunca süreçleri resmileştirin ve ekip ve paydaşlar için şeffaf hale getirin.

Yazılım geliştirme, kod üretmekten daha fazlasını içerir. Geliştiricilerin ne oluşturacaklarını ve neden oluşturacaklarını net bir şekilde anlaması gerekir. Ürün sahipleri ve yöneticileri, yapılan işler ve nasıl ilerlediği konusunda görünürlük sağlar. Tutarlı uygulamalar oluşturarak ekipler kaliteli yazılım sunabilir, riskleri erken ortaya çıkararak beklentileri yönetebilir ve ilerleme durumunu izleyebilir.

Bu kılavuz, yazılım geliştirmeyi yapılandırılmış, öngörülebilir ve işbirliğine dayalı bir şekilde çalıştırma hakkında öneriler sağlar.

Değişikliği yönetmek için standartlar oluşturma

Yazılım geliştirmede, her çalışma birimi bir değişikliktir. Yeni özellikler bile var olmayan bir durumdan uygulanan bir duruma geçişi temsil eder.

İstenen bir değişiklik için çalışma başlatırken şu noktaları göz önünde bulundurun:

  • Işbirliği. Ekipler izole olarak çalışmaktansa birlikte çalışmalıdır. Çoğu değişiklik birden fazla bileşeni veya rolü etkiler. Önemli ayrıntıların kaçırılmadığından ve herkesin kendi alanları üzerindeki etkiyi anladığınızdan emin olmak için geliştiricileri, test edenleri, operasyonları ve ürün paydaşlarını erkenden dahil edin. Ayrıca, ilgili deneyime sahip kişiler bakış açılarına katkıda bulunabileceğinden, birlikte çalışmak daha doğru efor tahminlerine yol açar.

    İşbirliği hedeflerini basit tutun. Bir değişikliğin kapsamı üzerinde anlaşın, bağımlılıkları belirleyin ve işi net, yönetilebilir görevlere bölün ve bunları bir öncelik listesine belgeleyin.

  • İletişim kurun. Ekibin yayınları hem dahili hem de harici olarak nasıl ilettiklerini standartlaştırın. Dış hedef kitlelerle (müşteriler gibi) hangi bilgilerin paylaşılacağını, uygun ayrıntı düzeyini, gerekli ekleme veya destek belgelerini ve iletişim zaman çizelgesini tanımlayın. Örneğin, bir yayından iki hafta önce proje katılımcılarını bilgilendirin ve dağıtımdan 24 saat önce bir anımsatıcı gönderin.

  • Geçmişe bakış. Neyin işe yaradığını, neyin çalışmadığını ve nelerin iyileştirilebileceğini belirlemek için her geliştirme döngüsünü düzenli olarak gözden geçirin. Bu incelemeleri suçlamadan uzak ve öğrenmeye odaklanmasını sağlayın.

    Standart uygulamaların etkili olup olmadığını denetlemek için bu fırsatı kullanın. Örneğin, geliştirici görevlerinin net bir şekilde tanımlanıp tanımlanmadığını, zaman tahminlerinin doğru olup olmadığını ve süreçlerin amaçlandığı gibi çalışıp çalışmadığını denetleyin.

  • Rapor. Ürünün nasıl değiştiğine ilişkin raporları standartlaştırın. Raporların bireysel geliştirici üretkenliği yerine ürün büyümesine odaklanmasını sağlayın. Örneğin, paydaşların aşağıdakileri izlemesi iyi bir fikirdir:

    • Benimseme büyümesi
    • Performans iyileştirmeleri
    • Uyum süresi
    • Olay sıklığı

Endüstride kanıtlanmış araçları seçme

Kendi süreçlerinizi icat yerine Agile, Scrum ve Kanban panoları gibi kanıtlanmış süreçleri kullanın.

Kanıtlanmış yaklaşımların kullanılması zaman kazandırır, çabayı azaltır ve ekip üyelerinin daha kolay çalışmasını sağlar çünkü çoğu bu araçlara zaten aşina olmalıdır. Standart araçlar ayrıca yeni işe alımları basitleştirir ve ekipler arasında işbirliğini geliştirir.

Tradeoff: Çevik metodoloji fazla açıklayıcıysa çok katı hale gelebilir. İyi tanımlanmış standartlar ve yenilikler arasında bir denge elde etmek için çaba gösterin.

Geliştirme çalışmalarının nasıl kaydedilmiş olduğunu standartlaştırma

Ayrık iş birimlerini yakalamak için bir şablonu standartlaştırın. Kullanıcının perspektifinden yazılmalı ve şu ilkelere uymalıdır:

  • Bağımsız. Örtüşen çalışmalardan kaçınmak için, bir hikaye diğerine bağımlı olmamalıdır.

  • Pazarlığa açık. Çalışmanın geliştirme açısından gerçekçi ve iş hedeflerine uygun olması gerektiğinden, çalışma tartışmaya ve iyileştirmeye açık olmalıdır.

  • Değerli. İş, kullanıcıya açıkça fayda sağlamalıdır.

  • Tahmin edilebilir. Ekibin, özelliği zamanında sunabilmek için çabayı güvenle tahmin edebilmesi gerekir. Birkaç hafta veya daha kısa sürede tamamlanacak küçük öğeleri tercih edin.

  • Test edilebilir. Özelliğin işlevselliğini ve dağıtımını doğrulamanın net bir yolu olmalıdır.

Uyarı

Üretimdeki tüm geliştirme varlıkları koda, testlere, kabul ölçütlerine ve kapsam öğelerine kadar izlenebilir olmalıdır. İzleme kalite denetimini destekler, hata ayıklamayı basitleştirir ve ekiplerin düzenlenmiş ortamlarda uyumluluk gereksinimlerini karşılamalarına yardımcı olur.

Ayrıca, kabul ölçütleri için bir şablonu standartlaştırarak ekibin ve paydaşların çalışmanın tamamlandığını bilmesini sağlayın. Her çalışma birimi belirsiz olmayan ve testler tarafından doğrulanabilir bir kabul ölçütü olmalıdır.

Herkesin geliştirme döngüsü için "bitti" ifadesinin ne anlama geldiğini anlaştığına emin olun. Gereksinimler tamamlanmış kodu, tamamlanmış testi, güncelleştirilmiş belgeleri ve ele alınan erişilebilirliği içermelidir. Net tanımlar, tamamlanmamış çalışmanın birikmesini engeller.

Yapay zeka fırsatı: Kuruluş ilkelerine göre iş açıklamaları ve kabul ölçütleri yazmak için şablon oluşturabilirsiniz. Şablonlardan ilk taslakları oluşturmak için Copilot kullanın. Yapay zeka, belgeleri şablonlara göre doğrulayarak standartları da zorunlu kılabilir. Gelişmiş senaryolar için, standart şablonlarınızda temel alınan yapay zeka aracılarını kullanarak kod incelemelerinden ve kök neden çözümlemelerinden elde edilen çıktıları kullanın ve ardından tanımlanan hatalarla iyileştirmeler için otomatik olarak uyumlu iş öğeleri oluşturun.

Kodlama uygulamalarını standartlaştırma

Kodlama uygulamaları, geliştiricilerin kod yazarken ve kod üzerinde işbirliği yaparken izlediği kuralları ve yönergeleri tanımlar. Bu uygulamalar, ekiplerin içinde ve genelinde kodun nasıl yapılandırıldığını, belgelendiğini ve gözden geçirilip incelenmeyi sağlar. Ayrıca geliştirici ekleme işlemini hızlandırıp uygulama varyasyonlarından kaynaklanan hataları azaltır.

  • Geliştirme ortamı ve araçları. Takımlar arasında IDE yapılandırmalarını, geliştirme araçlarını ve onaylı kod oluşturma araçlarını standartlaştır. Yeniden kullanımı teşvik etmek, tutarlılığı sağlamak ve kurumsal güvenlik gereksinimlerine uymak için ortak kitaplıkların, çerçevelerin ve paket yönetimi standartlarının kullanımını zorunlu kılın.

  • Kodlama kuralları. Adlandırma kurallarını, kod yapısını ve biçimlendirmeyi kapsayan kodlama standartlarını tanımlama ve belgele. Özel durumları işleyen ve izleme uygulayan kod bloklarında standartları zorunlu tutmanızı öneririz. Net kurallar, kodun okunmasını, anlaşılmasını ve bakımının kolay olmasını sağlar ve ekiplerin özellikler ve bileşenler arasında tutarlı bir şekilde çalışmasına yardımcı olur. Bu yönergelere tüm geliştiriciler tarafından erişilebildiğinden ve kod tabanı geliştikçe düzenli olarak güncelleştirildiğinden emin olun. Örneğin, kodlama stillerini zorlamak için Visual Studio EditorConfig kullanabilirsiniz.

  • Kod havuzu. Tutarlı kod tümleştirmesi ve sürüm uygulamaları sağlamak için tüm depolarda Gitflow, GitHub Flow veya gövde tabanlı geliştirme gibi standartlaştırılmış dallanma stratejileri oluşturun ve uygulayın.

  • Akran değerlendirmeleri. Kabul edilebilir çekme isteği boyutunu, gerekli başlık ve açıklama biçimlerini ve zorunlu gözden geçirme gereksinimlerini belirten çekme isteği (PR) standartlarını tanımlayın. Standartlara uyulmasını sağlamak için her kod değişikliği için akran incelemesini zorunlu kılın. Pr incelemeleri için sorumluluklar, geri bildirimler ve onaylar için beklentileri ayarlayan bir işbirliği modeli tanımlayın.

  • Yaygın öğeler için şablonlar. Çekme isteği açıklamaları, işleme iletileri ve birim testleri, şablon haline getirilebilen yapıtların klasik örnekleridir. Belgelerde amaç, bağlam ve test adımları bulunduğundan emin olun.

  • Test kapsamı. Tüm yeni kodlar için birim testleri ve var olan kodda önemli değişiklikler gerektir. Testler üzerinde anlaşmaya varılan desenleri izlemeli ve işlevselliği doğrulamak için anlamlı onaylar içermelidir.

Yapay zeka fırsatı: Yapay zeka araçları, kodlama ve gözden geçirme süreçlerinde yinelenen, el ile gerçekleştirilen görevleri otomatikleştirebilir. GitHub Copilot standartlaştırılmış kod blokları, birim testleri ve çekme isteği açıklamaları oluşturabilir ve bu da rutin çalışmalarda harcanan çabayı azaltır.

SonarQube ve Copilot Labs gibi araçlar kodlama standartlarından sapmaları, eksik test kapsamını ve yaygın anti-desenleri otomatik olarak belirleyebilir. Bu yinelenen doğrulama görevlerinin yapay zekaya boşaltılması, ekiplerin daha yüksek değerli işlere odaklanmasını sağlar. Ancak, insan incelemesi gerekli olmaya devam etmektedir; çünkü geliştirme uygulamaları, iş mantığının doğru uygulanması ve genel iş yükü kalitesi açısından kritik öneme sahiptir.

Tümleştirme uygulamalarını standartlaştırma

Tümleştirme , geliştirme yaşam döngüsünde ilerledikçe kodu doğrulamak, güvenli hale getirmek ve paketlemek için kullanılan otomatikleştirilmiş işlemleri ve kuralları ifade eder. Kod değişikliklerinin sürekli tümleştirme işlem hatlarının bir parçası olarak nasıl derlendiğini, test edildiğini, tarandığını ve dağıtım için hazırlandığını içerir.

Standartlaştırılmış tümleştirme uygulamaları, kodu tanımlı kalite ve güvenlik gereksinimlerine göre doğrulamak ve geliştiriciler için daha hızlı geri bildirim döngüleri sağlamak için gereklidir.

  • Derleme otomasyonu ve tümleşik test: Her kod gönderiminde çalışan otomatikleştirilmiş derlemeleri standartlaştırın ve uygun olduğunda tanımlı kapsam eşikleri ile otomatik birim ve tümleştirme testlerini zorunlu kılın.

  • Kod kalitesi analizi: Kodun yükseltmeden önce tanımlı kalite standartlarını karşıladığından emin olmak için onaylı araçları kullanarak statik kod analizi ve kalite geçitleri uygulayın.

  • Bağımlılık yönetimi: Güncel olmayan veya güvenlik açığı olan bileşenler için bağımlılıkları sürekli tarayın ve Statik Uygulama Güvenlik Testi (SAST), Dinamik Uygulama Güvenlik Testi (DAST) ve gizli dizi algılama dahil olmak üzere güvenlik taramasını tümleştirin.

  • Yapıt yönetimi: İzlenebilirlik ve yeniden üretilebilirlik sağlamak için paket ve yapıt sürüm oluşturma, depolama ve bekletme ilkelerini standart hale getirmek.

  • İzleme ve raporlama: Kalite, performans ve uyumluluğu izlemek için derleme ve işlem hattı ölçümlerini toplayın ve izleyin.

Yapay zeka fırsatı: CI/CD işlem hattı yapılandırmaları oluşturma, test iskeleleri oluşturma ve eksik testler veya bağımlılık sorunları gibi derleme veya test sorunlarını algılama gibi yinelenen tümleştirme görevlerini otomatikleştirmek için yapay zeka temelli iş akışlarını kullanmayı göz önünde bulundurun. Yapay zeka işlem hattı kurulumunu hızlandırsa da, kritik kararları doğrulamak için insan incelemesini koruyun.

Azure kullanımının kolaylaştırılması

Azure Boards , ekiplerin geliştirme sürecinin tamamında çalışmayı planlamasını, izlemesini ve tartışmasını sağlayan web tabanlı bir hizmettir. Çevik tabanlı geliştirme uygulamaları için çok uygundur.

GitHub Projeleri , GitHub'daki sorunları ve çekme isteklerini kullanarak projeleri düzenleyebilen ve tümleştirebilen özelleştirilebilir bir proje yönetim aracıdır.

Operasyonel Mükemmellik denetim listesi

Öneriler kümesinin tamamına bakın.