← Haberlere dön

Görüşler

İyi uygulamalar neden her özelliğe ihtiyaç duymaz?

İlgi çekici bir uygulama belirli bir görevi güvenilir bir şekilde çözer. Kasıtlı sınırlar çoğu zaman kullanılabilirliği, kaliteyi ve bakım kolaylığını bir sonraki özellikten daha fazla artırır.

Tasarım sayfaları, renk örnekleri, bir kalem ve bir cetvelin yanı sıra üç mobil tasarım.

Yeni bir özelliği ürün yol haritasına eklemek kolaydır. Onunla birlikte gelen menüler, veri alanları, hata durumları ve destek talepleri çok daha az görünürdür. Bu nedenle yazılım çoğu zaman makul ama eksik bir varsayımla büyür: daha fazla imkânın otomatik olarak daha fazla değer sağlayacağı düşünülür.

Pratikte önemli olan, kişinin temel görevi hızlı, anlaşılır ve güvenilir biçimde tamamlayabilmesidir. Ürün odağı fikirleri peşinen reddetmek ya da uygulamayı yapay biçimde küçük tutmak değildir. Her genişlemeyi somut bir faydaya ve görünür arayüzün ardındaki sürekli iş yüküne göre değerlendirir.

Kısaca

  • Özellikleri sayılarıyla değil, tamamladıkları kullanıcı göreviyle değerlendirin.
  • Her ekleme yeni veriler, durumlar, testler ve kalıcı destek işi getirir.
  • Açık ve dürüstçe anlatılan sınırlar kullanılabilirliği ve bakım kolaylığını güçlendirir.

Kalite tamamlanan görevde görülür

İnsanlar bir uygulamayı nadiren belirli sayıda işlevi olduğu için indirir. Bilet göstermek, harcama kaydetmek, belge bulmak, randevu ayarlamak veya bilgi aramak isterler. Ürün açısından en önemli ölçü işlev listesi değil, anlamlı bir sonuca götüren eksiksiz yoldur.

Basit bir hatırlatıcı uygulamasını düşünün. Temel işlev için anlaşılır bir başlık, son tarih, durum ve güvenilir bildirim yeterlidir. Öncelik matrisi, ekip rolleri, sohbet, zaman kaydı ve otomatik metin önerileri yararlı olabilir; ancak bunlar farklı veya genişletilmiş görevleri destekler. Net bir kullanım senaryosu olmadan eklenirlerse aynı arayüzde asıl amaçla rekabet ederler.

Bu nedenle odaklanmış bir ürün üç soruyla başlar: Onu kim kullanıyor? Hangi durumda? Hangi sonuç eskisinden daha iyi olmalı? “Daha üretken olmak isteyen herkes için” bu soruların hiçbirine cevap vermiyor. “Özel mülk sahipleri, evden uzaktayken sayaç okumasını tarih ve fotoğrafla belgelemek istiyor” ifadesi ise tam tersine doğrulanabilir bir görevi tanımlıyor.

Her özellik tüm sistemi genişletir

Yeni bir düğme nadiren yalnızca bir düğmedir. Arkasında veriler, durumlar, izinler ve bağımlılıklar bulunur. Örneğin dışa aktarma işlevi seçim, dosya biçimi, hata yönetimi, kaydetme veya paylaşma iletişim kutuları, veri koruma kararları ve çeşitli işletim sistemi sürümlerinde test gerektirir. Veri modelindeki sonraki değişikliklerle de çalışmalı ve yardım bölümünde anlaşılır biçimde açıklanmalıdır.

Hesaplar ve senkronizasyonda da durum aynıdır. Görünür oturum açma yalnızca başlangıçtır. Buna kimlik yönetimi, kurtarma, çakışma çözümü, sunucu işletimi, güvenlik önlemleri, silme süreçleri ve kaybedilen erişim için destek eklenir. Bunların tümü ortak çalışmaya yönelik bir ürün için gerekli olabilir. Cihazlar arası kullanım gerektirmeyen kişisel bir araçta ise aynı mimari, karşılığında yeterli fayda sunmadan büyük bir yüke dönüşebilir.

Android Uygulama Mimarisi Kılavuzu net sorumluluk sınırları, tek bir doğruluk kaynağı ve uygulamada mümkün olan en düşük bağımlılık düzeyini önerir. Bu ilkeler bakım kolaylığını desteklerken bir ürün gerçeğini de gösterir: sistem ne kadar çok birbirine bağlı yetenek içerirse insanların anlaması ve sürekli koruması gereken ilişki sayısı o kadar artar.

Açıklık bilinçli olarak dışarıda bırakılanlardan da gelir

Anlaşılır bir arayüz, nasıl çalıştığını düşünmek zorunda bırakmadan insanlara ipuçları verir. Görsel hiyerarşi, tutarlılık ve tanıdık platform kalıpları yardımcı olur. Apple’ın İnsan Arayüzü Yönergeleri de bu noktaları vurgular. Bir görünümün tanınabilir tek bir görevi olduğunda bunları uygulamak daha kolaydır.

İşlev fazlalığı çoğu zaman açık bir kaos olarak görünmez. Küçük kararlarla başlar: gezinme çubuğunda bir simge daha, menüde bir filtre daha, listede yeni bir durum. Her ekleme tek başına makul görünebilir. Ancak birlikte, asıl eylemden önce verilmesi gereken kararların sayısını artırırlar.

Bu etki özellikle akıllı telefonlarda belirgindir. Alan sınırlıdır, kullanım sık sık kesilir ve dikkat her zaman bütünüyle uygulamada değildir. Sayacın önünde duran veya kapıda rezervasyon bilgisi arayan kişi, ürünün tamamının gösterimine değil güvenilir bir iş akışına ihtiyaç duyar. Bu nedenle iyi bir mobil arayüz bir sonraki anlamlı adıma öncelik verir, nadiren gereken seçenekleri ise gizlemeden geri plana taşır.

Daha dar bir kapsam hataları ortadan kaldırmaz ancak odaklanmayı sağlar

Küçük bir yazılım yalnızca küçük olduğu için güvenilir değildir. Tek bir işlev bile kötü tasarlanmış veya yeterince test edilmemiş olabilir. Ancak sınırlı işlev kapsamı, önemli durumların derinlemesine ele alınması için daha iyi koşullar oluşturur.

Eksiksiz bir süreç yalnızca ideal başlangıç ve başarılı bitişten oluşmaz. İzin yoksa ne olur? Kullanıcı işlemi yarıda keserse girdi korunur mu? Yeniden başlatmadan sonra sonuç hâlâ kullanılabilir mi? Yanlış bir kayıt düzeltilebilir mi? Kullanıcı boş listede ne görür? Uygulama daha büyük yazı boyutlarında veya ağ bağlantısı olmadan nasıl davranır?

Bu sorular zaman gerektirir. Ekip aynı süreyi giderek daha fazla işleve böldüğünde her süreci inceleyebildiği derinlik azalır. Bu nedenle odaklanma aynı zamanda kalite bütçesiyle ilgili bir karardır: hangi birkaç süreç özellikle özenli hata yönetimini, iyi geri bildirimi ve gerçekçi verilerle test edilmeyi hak eder?

Ürün sınırları net olmalı

Bir sınır ancak gizli bir eksiklik gibi görünmüyorsa işe yarar. Kişisel bir araç ekip iş birliği sunmuyorsa bunu açıkça belirtmelidir. Çevrimdışı uygulama, yedekleme ve cihaz değişikliğinin nasıl çalıştığını açıklamalıdır. Belge deposu, değiştirilemez bir arşiv izlenimi yaratmamalıdır. Dürüst bir sınırlandırma yanlış beklentilerden korur ve ürünü gerçekten uygun olduğu kişilere yöneltir.

“Bu işlev eksik” ifadesi tamamlanmamış bir listeyi çağrıştırır. “Uygulama, tek bir cihazdaki tek bir kişi için tasarlanmıştır” ise bir ürün kararını ve sonuçlarını açıklar. Sınır aynıdır, ancak kullanım senaryosu sayesinde anlaşılır hâle gelir.

İyi bir kapsam kendi içinde tutarlı kalmalıdır. Akla gelebilecek her işlevin eklenmesi gerekmez, ancak mevcut veriler ürünün amaçlanan sınırları içinde anlamlı biçimde birlikte çalışmalıdır. Bir görev, neyle ilgili olduğu bilindiğinde daha yararlıdır; bir belge de doğru kayda bağlandığında değer kazanır. Odaklanma yalıtılmış minyatürler değil, küçük ama eksiksiz bir sistem kurmak demektir.

Genişletme gerçekten mantıklı olduğunda

Her yeni fikir işlev fazlalığı değildir. Ürünlerin öğrenmesi ve gelişmesi gerekir. Bir genişlemeyi doğrulanabilir kılan ölçütler yararlıdır:

  • Açıkça adlandırılan hedef grubun yinelenen bir sorununu çözer.
  • Bağımsız bir ürün dalı açmak yerine mevcut bir çekirdek süreci güçlendirir.
  • Başarısı yalnızca yeni düğmenin kullanılmasıyla değil, daha iyi bir sonuçla tanımlanabilir.
  • Veri gereksinimleri, izinler ve hata davranışı makuldür.
  • İşlev erişilebilirlik ilkelerine uygun, anlaşılır ve ilgili cihazlarda uygulanabilir olmalıdır.
  • Geliştirme, test etme, işletme ve sonraki değişiklikler sürdürülebilirdir.

Genişleme olmadan ne olacağı sorusu özellikle önemlidir. Kullanıcıların bugün temel bir adımı uygulama dışında doğaçlama biçimde tamamlaması mı gerekiyor? O hâlde gerçek bir boşluk olabilir. Yeni işlev yalnızca kolaylık sağlıyor ve temel akış zaten eksiksiz çalışıyorsa diğer kalite iyileştirmeleriyle birlikte değerlendirilmelidir.

Düzenli bir fikir listesi, otomatik bir “evet” veya “hayır” kararından çoğu zaman daha iyidir. Ekibin gözlem toplamasına, benzer ihtiyaçları birleştirmesine ve önce gerçek nedeni anlamasına imkân verir. “Daha fazla filtre” talebi aslında kötü adlandırmaya, “model destekli arama” ise yalnızca iyi yapılandırılmış yerel tam metin arama ihtiyacına işaret edebilir.

Odaklanma tek seferlik bir MVP kararı değildir

Minimum Uygulanabilir Ürün kavramı bazen, daha sonra kaçınılmaz olarak kapsamlı bir sisteme dönüşecek en küçük ilk sürüm diye yanlış anlaşılır. Ürün odağı uzun vadeli bir disiplindir. Yerleşik bir araçta bile işlevlerin amaca katkı sağlayıp sağlamadığı düzenli olarak gözden geçirilmelidir.

Bu; nadiren kullanılan seçeneklerin birleştirilmesi, belirsiz ayarların kaldırılması veya karmaşık bir entegrasyondan vazgeçilmesi anlamına gelebilir. Bu tür kararlar sağlam gözlemler ve mevcut kullanıcılara özenli davranmayı gerektirir. Yol haritasına yeni bir madde eklemekten daha zordur, ancak ürünü önemli ölçüde iyileştirebilir.

Bakım kolaylığı burada merkezi bir rol oynar. Açık modüller ve sorumluluklar testleri ve değişiklikleri kolaylaştırır. Daha da önemlisi net bir alan yapısıdır: terimler tutarlı olmalı, veriler çeşitli yerlerde tutarsız bir şekilde saklanmamalı ve iş akışları rastgele yan etkilere bağlı olmamalıdır. Teknik mimari belirsiz bir ürün kapsamını kurtaramaz ancak açık bir kapsamı bakımı kolay hâle getirebilir.

Erişilebilirlik, erken kararlardan faydalanır

Erişilebilirlik, kalitenin neden daha sonraki bir ek işlev olarak ele alınmaması gerektiğine dair iyi bir örnektir. W3C WAI, erişilebilirliğin planlama, uygulama ve değerlendirme süreçlerine erken ve tekrar tekrar dahil edilmesini tavsiye etmektedir. Yeterli kontrast, anlaşılır terimler, daha büyük yazı boyutu, klavye veya ekran okuyucu kullanımı ürünün temel şeklini etkiler.

Aşırı yüklenmiş bir arayüzde bu gereksinimler daha pahalı hale gelir. Daha fazla etkileşim, test edilmesi gereken daha fazla odak sırası, etiket, durum ve kombinasyon anlamına gelir. Açık bir yapı, bir ürünü otomatik olarak erişilebilir hale getirmez ancak erişilebilirliği her temel akışın parçası olarak ele almak için alan yaratır.

Aynı durum veri koruma ve güvenlik için de geçerlidir. Bir işlev yalnızca arayüzü üzerinden incelenirse gerekli izinler, veri akışları ve silme kuralları geç fark edilir. İşlevi bütünsel bir ürün kararı olarak değerlendirmek, daha basit ve geleneksel bir çözümün aynı faydayı daha az riskle sağlayabildiğini gösterebilir.

En iyi özellik listesi, açık nedenleri olan listedir

İdeal bir özellik sayısı yoktur. Her unsurun açık bir rolü olması ve ürünün anlaşılır, test edilebilir ve sürdürülebilir kalması önemlidir. Büyüme ancak temel görevi gerçekten güçlendirdiğinde ilerleme olur.

İyi bir uygulama her şeyi yapmak zorunda değildir. Ne için var olduğunu açıkça göstermeli, uygun süreci eksiksiz desteklemeli ve sınırlarını dürüstçe anlatmalıdır. Bu açıklık çoğu zaman ürün kalitesini en uzun karşılaştırma tablosundan daha iyi gösterir.

Kaynaklar ve daha fazla okuma