Bilmeniz Gereken 8 Özellik Bayrağı En İyi Uygulaması

Discover how to lead product teams and build better products. Create a Free Account

Özellik bayrakları, karmaşık sürümleri yönetmek, ürünleri özelleştirmek veya deneyler oluşturmak için kullanılabilir. Maksimum esneklik ve kullanım kolaylığı elde etmek için bu özellik bayrağı en iyi uygulamalarını kullanın.

8 feature flag best practices you should know standard editorial post

Özellik bayrakları, ürün yöneticileri için oyunun kurallarını değiştirir. Yeni özellikleri baş ağrısı yaşamadan yayınlamanızı sağlar; kod değişikliği gerekmez, tüm kullanıcılara açma zorunluluğu yoktur ve risk sıfırdır.

Bunları, ürününüzü özelleştirmek veya anında deneyler yürütmek için çevirebileceğiniz bir anahtar gibi düşünün. İster yayın döngülerini hızlandırın ister yeni fikirleri test edin, özellik bayrakları kontrolü sizin elinize verir.

Bu makalede, özellik bayrağı yönetimi için en iyi uygulamaları paylaşacak ve büyük bir yeniden tasarımı basitleştirmek için bu teknikleri The Guardian’ın arkadaşlık platformu Guardian Soulmates’te nasıl kullandığımı göstereceğim.

Key Takeaways

Tanım: Özellik bayrakları, kod değişikliklerine gerek kalmadan özelliklerin güvenli ve esnek şekilde kullanıma sunulmasını sağlayarak sürüm döngülerini iyileştirir.

Neden kullanışlılar: Özellik bayrakları için açık adlandırma kuralları, ekiplerin amaçlarını kolayca anlamasına ve karışıklığı önlemesine yardımcı olur.

Etkili kullanımları: Kullanım dışı kalanları temizleyerek ve kolayca etkinleştirilip devre dışı bırakılabildiklerinden emin olarak bayrakları etkili şekilde yönetin.

Küçük başlayın: Riskleri en aza indirmek için testlerde özellik bayraklarını küçük kitlelerle kullanmaya başlayın ve geri bildirimlere göre kapsamı genişletin.

Özellik Bayrağı Yönetimi İçin En İyi Uygulamalar

Özellik bayraklarını etkili bir şekilde yönetmek ve sorunsuz ürün yayınları gerçekleştirmek için açıklığı ve verimliliği destekleyen en iyi uygulamaları takip etmek önemlidir. Dikkate almanız gereken bazı temel uygulamalar şunlardır:

  • Tutarlı bir sistem kullanın: Bir yönetim aracı veya yapılandırma dosyası kullanıyor olmanız fark etmez; sistemin anlaşılmasının kolay ve tüm ekip üyelerinin erişimine açık olduğundan emin olun.
  • Açık adlandırma kuralları belirleyin: Her bayrak türünün (ör. yayınlama, izin, kapatma) benzersiz ve açıklayıcı adları olmalıdır; böylece yıllar sonra bile herkes için açıklık sağlanır.
  • Bayrakları değiştirmeyi kolaylaştırın: Bayraklar, kod değişikliği veya geliştirici müdahalesi gerektirmeden kolayca açılıp kapatılabilmelidir.
  • Kullanım dışı bayrakları temizleyin: Dağınıklığı önlemek ve sisteminizdeki teknik borcu azaltmak için artık ihtiyaç duyulmayan bayrakları kaldırın.

1. Özellik Bayrağı Yönetimi İçin Tutarlı Bir Sistem Kullanın

Bir özellik bayrağı yönetim aracı (örneğin LaunchDarkly), bir yapılandırma dosyası veya bir veritabanı tablosu kullanmanız önemli değildir. Ne kullanırsanız kullanın, sistem; iyi adlandırma kuralları da dahil olmak üzere anlaşılmasının kolay olduğu ve her yazılım mühendisinin bir bayrağın ne yaptığını anlayabildiği bir yapıya sahip olmalıdır.

Özellik bayraklarını ilk kez kullanıma sunarken, sizin için en iyi çözümün ne olduğunu görüşmek üzere biraz zaman ayırın; çünkü uzun vadede bu sisteme bağlı kalmak istersiniz. 

2. Farklı Özellik Bayrağı Türleri İçin Adlandırma Kuralları Belirleyin

Birçok farklı amaca ulaşmak için özellik bayraklarını uygulayabilirsiniz:

  • Yayınlama bayrakları: Bir özellik herkese açık olarak yayınlanmaya hazır olmadan önce üretim kodunun kullanıma sunulmasını kolaylaştırır.
  • Deney bayrakları: Bir A/B testi oluşturmak için kullanılır; bayrak, hangi kullanıcı grubunun hangi deneyimi yaşayacağını kontrol eder.
  • İzin bayrakları: Farklı müşterilerin belirli özelliklere erişimini kontrol etmenizi sağlar 
  • Kapatma bayrakları: Performans veya aşırı yük sorunları yaşanması durumunda ürününüzün işlevlerini kontrollü bir şekilde azaltmanızı sağlar. 

Her bayrak türü için açık adlandırma kuralları, yıllar sonra bile herkesin her bayrağın ne yaptığını bilmesini sağlar. 

Get Free Access to the Product Vault
We’ve collected the goods — AI prompts, exclusive deals, and a library of resources for product leaders. Unlock your account for access.
Get Free Access

Have an account? Log In

3. Bir Bayrağı Açıp/Kapatmayı Kolaylaştırın

Özellik bayraklarının güzelliği, kolayca açılıp kapatılabilmeleridir. İdeal olarak, herhangi bir kod değişikliği veya geliştirici müdahalesi olmadan bir bayrağı ayarlayabilmenin bir yoluna sahip olmalısınız. Bayraklar çok geniş bir kullanım alanına sahip olduğundan, birden fazla ekip bunları değiştirmek isteyebilir; örneğin:

  • Belirli bir müşteri durumunu sorun gidermek veya yeniden oluşturmak için kalite güvence ekibi.
  • Bir müşteri için bir özelliği etkinleştirmek veya devre dışı bırakmak üzere müşteri hizmetleri.
  • Aşırı yük veya diğer sorunlar durumunda ürününüzü (veya ürününüzün bazı bölümlerini) kontrollü bir şekilde kapatmak için DevOps ekibi. 

Bayrakları ayarlayabileceğiniz çevrimiçi bir ekranınız varsa, tüm bunlar mühendislik ekibinizin çalışmasına gerek kalmadan yapılabilir. 

4. Özellik Bayrağı Ayarlarını Görünür Kılın

Belirli bir kullanıcı için hangi özellik bayrağı ayarları kombinasyonunun etkin olduğu kolayca görülebilmelidir. Bu bilgiler, hem kullanıcı veritabanınızda hem de analiz sisteminizde kullanıcının profiliyle birlikte saklanmalıdır.

Bu, müşteri hizmetlerinin bildirilen sorunları gidermesi için çok yararlı olabilir. Farklı ayarlara sahip kullanıcıların davranışlarını analiz etmek için de oldukça değerli olabilir. Bir A/B testinin sonuçlarını analiz ederken bu gereklidir.

5. Kullanım Dışı Bayrakları Temizleyin

Yayınlama bayrakları ve deney bayrakları tanımları gereği yalnızca geçici olarak ihtiyaç duyulan bayraklardır. Bir bayrak tarafından kontrol edilen yeni bir özelliğin tamamen yayınlanmasından veya bir deneyin tamamlanmasından sonra, son adım olarak bayrağı kaldırmak için zaman planlayın. Böylece kodunuzda teknik borç biriktirmezsiniz ve özellik bayrağı yönetiminiz düzenli ve anlaşılması kolay kalır. 

6. Bayraklar Arasında Bağımlılıklardan Kaçının

Her bayrağın diğer bayraklardan bağımsız, kendine özgü bir amacı olmalıdır. İzin bayrakları için bu, farklı özelliklerin herhangi bir kombinasyonla etkinleştirilebilmesi için kodun yeterince modüler olması gerektiği anlamına gelir.

Belirli bir kullanım senaryosunu etkinleştirmek için birden fazla bayrak gerekiyorsa veya bu bayraklar diğer bayraklarla potansiyel olarak çakışıyorsa, bayrakların ayarlanması karmaşık hâle gelebilir ve er ya da geç kullanıcı deneyimlerinde sorunlar ortaya çıkar. 

7. Kod Dallarından Kaçınmak İçin Özellik Anahtarı Kullanın

Ürün ekibinde daha büyük bir özelliğin uygulanmasını tartışırken, yazılım geliştirmeyi daha küçük parçalara nasıl ayıracağınızı konuşursunuz. Bu noktada bir özellik bayrağının kullanımını da ele almalısınız. 

Bir bayrak uygulayıp kapalı tuttuğunuzda, uzun ömürlü özellik dallarının oluşturulmasını önlersiniz. Bunun yerine, yeni özelliğin kodu, bir CI/CD (sürekli entegrasyon / sürekli teslimat) veya Çevik sprint kod dağıtımı kapsamında kullanıcılara gösterilmeden sürekli olarak birleştirilebilir ve yayımlanabilir. Büyük ve karmaşık birleştirme süreçleri olmadığından ve tüm çakışmalar hızlı bir şekilde tespit edildiğinden, bu yaklaşım kod tabanınızın bütünlüğünü artırır.

Ayrıca 8. maddede açıklandığı üzere, kodun yayımlanmasını değişikliklerin son kullanıcılara gösterilmesinden ayırır.

8. Küçük Test Sürümleri İçin Özellik Bayrakları Kullanın

Büyük yeni özellik sürümleri genellikle stresli ve riskli olur; ancak özelliğinizi önce küçük bir kitleye sunarak, etkilerini izleyerek ve gerekirse geri alarak bu durumu yönetebilirsiniz.

7. maddede önerildiği gibi, kodunuzu dünyaya sunmadan önce sürekli olarak birleştirmek ve yayımlamak için bir özellik bayrağı kullandıysanız, bunu gerçekleştirmek için gereken araca zaten sahipsiniz.

Yeni işlevselliğiniz hazır olduğunda, yalnızca kurum içi test kullanıcılarına sunmak için üretim ortamında etkinleştirin; ardından müşterilerin küçük bir yüzdesine (kanarya sürümü olarak adlandırılır), son olarak da tüm müşteri tabanına açın. 

Her adımda temel metriklerinizi izleyin. Herhangi bir noktada bir şeyler ters giderse, karmaşık bir geri alma işleminin stresine girmeden bayrağı kolayca yeniden kapatabilir ve sorunu araştırabilirsiniz. 

Aşağıdaki vaka çalışması, bir ürünün büyük bir yeniden tasarımının riskini azaltmaya ilişkin bir örnek göstermektedir. 

Vaka Çalışması - Guardian Soulmates'in Yeniden Tasarımında Özellik Bayrakları

Guardian Soulmates'te (o dönemde Guardian'ın abonelik tabanlı flört platformu) ürün yöneticisi olarak çalışırken iki zorlukla karşılaştık: standartların altında bir mobil site ve eskimiş bir marka kimliği. Markası yenilenmiş duyarlı bir siteye geçişi iki adımda gerçekleştirmeye karar verdik. 

Kabul edelim: Müşteriler, özellikle de ödeme yapan müşteriler, genellikle değişimden nefret eder. Marka yenileme, ciddi ölçüde aksaklığa yol açabilecek büyük bir girişimdir.

Mobil siteyi değiştirme ve abonelerimizde çok fazla aksaklık yaratmadan yeni bir marka kimliği uygulama hedeflerimize en iyi şekilde nasıl ulaşacağımızı görüştük. Seçilen çözüm, iki özellik bayrağını içeren iki adımlı bir süreçti:

  • Duyarlı düzen bayrağı: bu bayrak, her bir sayfayı duyarlı düzende veya mevcut masaüstü düzeninde göstermemize olanak tanımak için kullanıldı (yeni mobil siteyi tamamen kullanıma sunmaya hazır olana kadar ayrı mobil siteye dokunulmadı). 
  • Yeni marka kimliği bayrağı: Bu bayrak, sitenin tamamını eski veya yeni marka kimliğiyle göstermemizi sağladı.

More Articles

Duyarlı Site Bayrağı

Duyarlı bir çerçeve oluşturduktan sonra sayfaları birer birer yeni duyarlı düzene taşıdık. Benzer bir çalışma yürütüyorsanız, bu duyarlı tasarım prototipleme araçları, kullanıma sunmadan önce düzenleri test etmenize ve yinelemenize yardımcı olabilir.

Taşınan her sayfa için duyarlı özellik bayrağı önce, geri bildirim verme seçeneği sunulan küçük bir kullanıcı grubunda etkinleştirildi.

Birkaç gün sonra duyarlı sayfa tüm kullanıcılar için yayına alındı. Tüm site duyarlı hâle gelene kadar bu işlem tekrarlandı. 

Ardından mobil site yeni duyarlı siteye geçirildi. Sayfaları kademeli bir şekilde taşıdığımız için masaüstü kullanıcıları açısından aksaklık asgari düzeyde kaldı. 

O dönemde çok fazla mobil kullanıcımız olmadığı için mobil kullanıcılar açısından aksaklık da azdı (eski mobil site pek iyi değildi!). 

Duyarlı Sitenin Marka Yenileme Bayrağı

Duyarlı sitenin kullanıma sunulmasının ardından yeni marka kimliğine yönelik özellik bayrağı, sitenin tamamını eski ve yeni marka kimliği arasında değiştirmemize olanak tanıdı.

Geliştiriciler, sitede marka kimliğini kullanıcı bazında değiştirmek için bir düğme uyguladı; bu sayede tasarımcılar, kalite güvence ekibi ve ürün yöneticisi olarak ben de ilerlemeyi görebildik.

Yeniden tasarlanan sayfalar sürekli olarak yayımlandı; ancak canlı ortamda bu bayrak kapalı kaldı ve böylece hiçbir kullanıcı yeni marka kimliğine sahip sayfaları görmedi.

Tüm sayfalar hazır olduğunda, kullanıcıların yeni marka kimliğinin herkese açık önizlemesine katılabilmesi için siteye bir düğme ekledik. Bu düğme, kullanıcı için yeni marka kimliğine geçişi etkinleştiriyordu. Kullanıcılar bize geri bildirimde bulunabildi ve bir hafta sonra marka kimliğini herkes için etkinleştirdik. 

Tüm süreç hem geliştirme ekibi hem de müşterilerimiz açısından tamamen sorunsuz geçti. Bu, büyük bir site yeniden tasarımının risklerini azaltmak için özellik bayraklarının kullanılmasına mükemmel bir örnekti. 

Ne yaptığımızı daha ayrıntılı olarak anlamak isterseniz, Soulmates yeniden tasarım projesi hakkında Guardian'ın Mühendislik Blogu'nda bir makale bulabilirsiniz.

Son Düşünceler

Başlangıçtaki çerçeveyi doğru oluşturduğunuzda, özellik bayraklarını kullanmanın ürününüzde esnekliği ve verimliliği büyük ölçüde artırabileceğini göreceksiniz.

Riskleri en aza indirmek için daha büyük girişimlerde özellik bayraklarını kullanmayı ve sorunsuz bir kullanıma sunma süreci sağlamak üzere bir sürüm yönetimi planı oluşturmayı da düşünmelisiniz. Bu planı oluşturmak için sürüm yönetiminde yapay zekâ da kullanabilirsiniz. Özellik bayraklarının kullanımındaki tek sınır hayal gücünüzdür!

Ürününüzde özellik bayraklarını nasıl kullandığınıza dair akıllıca yöntemleri yorumlarda bizimle paylaşın. 

Ürün yönetimi becerilerinizi geliştirmek için daha fazla ipucu ve püf noktası istiyorsanız, lütfen bültenimize abone olun.

Bu faydalı kılavuzla ekibinizdeki başka bir Ürün Yöneticisinden yardım alın: Etkili Bir Çevik Ürün Yöneticisi İş Tanımı Nasıl Oluşturulur (+Örnek)

Ayrıca Göz Atmaya Değer:

Kerstin Exner
I am a senior product manager with 15 years experience in a variety of companies, amongst them some of the best practice Product companies in the world like eBay and Guardian News & Media. In my varied roles I have worked in companies of various sizes and at different stages of maturity of their Product Management organizations. I have been the first product manager of the company in several of my roles and tackled introducing Product Management into a business. My other passion is User Experience. I undertook an MSc degree in Human-Centred Systems at City University London from 2010-2012. The combination of Product Management and User Experience means that user insight is always at the heart of my work. I believe that real-life Product Management can be quite daunting and the solutions to numerous challenges cannot always be found in textbooks. I hope that sharing my own experiences of what works in real life helps product managers to succeed and their products to thrive.
Follow the author:

You may also like