Peki Ya MVP’niz Günde 1000 Yeni Kullanıcı Alırsa?

Geçenlerde geliştiricisi olduğum lakin kullanıcısı olamadığım bir uygulama yayına aldım. İsmi Fiskos, kadınlara özel canlı bir sosyal ağ uygulaması. Şimdilik sadece iPhone’da, uzunca bir süre de öyle kalacak gibi görünüyor.

Apple sağolsun uygulama yayına girdikten 3 gün sonra onu listelerin dibinden alıp anasayfanın başına yerleştiriverdi. Bu demek, uygulama en az bir hafta süresince günde en az 1000 yeni kullanıcı alıyor demek.

Elimden geldiğince bu süreci nasıl ele aldığımı ve işin içinden nasıl düzgün bir süreç çıkartmaya uğraştığımı anlatmak istedim. Sırasıyla karşılaştığım handikapları ve aynı sırayla uyguladığım çözümleri listeledim, umarım faydası olur.

Karşılaştığım Handikaplar ve Uyguladığım Çözümler

1- Geliştirdiğin Uygulamayı Kullanamamak

Handikap

Her şeyden önce geliştirdiğin uygulamayı kullanamayacak olmak ciddi bir handikap. Özellikle bu uygulama bir sosyal ağ ise, olay biraz daha can sıkıcı bir hal alabiliyor. Hele bir de yalan söylemekten nefret ediyorsanız, yani benim gibi kullanmıyorum dedikten sonra gerçekten de kullanamıyorsanız, al başına belayı ondan sonra.

Uyguladığım Çözüm

En yakınınızda uygulamayı kullanan birileri olması gerekiyor. Uygulamanın kurucusu yakın arkadaşım Sümeyra Şimşek ve biricik karım Seda Cengiz olmasa, bu durum benim için ciddi bir sorun olacaktı. Uygulamayı kullanma ve oluşan sorunları bildirme konusunda mümkün olduğunca standart bir düzlemde bir raporlama yapıyorlar sağolsunlar.

Bu noktada kullanıcı raporlarının belli bir standartta olması çok kritik. Dünya standartlarından bahsetmiyorum, kendi içlerinde tutarlı olmaları yeterli. Aksi durumda ortalık çok daha beter karışacaktır.

2- Yeni Özellik İstekleri

Handikap

Uygulama olması gerektiği gibi mümkün olan en az özellik içerecek şekilde geliştirildi. Bir MVP, yani mümkün olan en az özelliklerle tam bir akıcılıkta işleyen uygulama. Bu da yeni kullanıcıların sürekli olarak yeni özellikler istemesi anlamına geliyor haliyle. İstekleri ilk handikapta nasıl standart hale getirdiğimden bahsettim, lakin bir şekilde versiyonlanması ve geliştirme sürecinin de ilerletilmesi gerekiyor.

Uyguladığım Çözüm

MVP geliştirmenin bir alternatifi yok. Yani o kullanıcılar oraya gelip ortalığı duman etmeden sizin daha uygulamanızın kullanılacağına dair bile net bir fikriniz olamayacak. Bu sebepten ötürü ağırlıklı olarak üstüne düşülmesi gereken nokta kullanıcıların isteklerini bir sıraya koyabilmek.

Sıradan kastım ağırlık sırası. Yani hangi özellik daha çok istek alıyor, hangi özellik gereksiz durumda, bunları bir takım rakamlarla ifade etmek gerekiyor.

Örnek vermek gerekirse, Fiskos’ta bir sayfada bir geri butonu var. Söz konusu bu buton küçük. Yani basılabilecek alanı olması gerektiği kadar büyük değil. Bu yeni bir özellik olmayabilir, lakin kullanıcıların istekleri doğrultusunda ağırlığı en çok olan düzenleme.

3- Altyapı Sisteminin Gücü

Handikap

Altyapı sisteminin hızlı büyümeyi kaldırmaya hazır olup olmadığını hiçbir zaman gerçek büyümeyle karşılaşmadan anlayamıyorsunuz. Bu bir çeşit ‘demo day syndrome’. Yani yalnızca siz bakarken her şey çalışır, birilerine gösterirken bir anda ne hikmetse bozuluverir ya, işte ondan.

Uyguladığım Çözüm

Burada birden fazla çözüm var. İlk olarak uygulamadığım çözümden bahsedeyim:

Altyapı sisteminin her bir başlığını düzgünce test ederek geliştirmiş olmak bir çözüm. Bununla birlikte, ‘penetration test’ dediğimiz test süreçlerini de içermek gerekecektir. Verilerin tutulduğu sunucuları da Azure, AWS gibi büyük ve her an genişletilebilir kaynaklara sahip platformlardan sağlamak en uygunu olacaktır. Evinizdeki sunucudan veya 5 dolarlık DigitalOcean hesabınızdan bu iş yürümez yani.

Gelelim uyguladığım çözüme:

Herhalde hayatımda en çok önerdiğim şeyi, Google’ın bu sene I/O konferansında yenilediği Firebase’i kullanıyorum arkaplanda. Genişletilebilirlik, güvenlik, dosya sistemi, bildirim sistemi, analytics vb. pek çok muhteşem özelliği var. Üstelik bedava denebilecek kadar uygun fiyatlarda. Karşılaştırmak gerekirse, AWS üzerinde 200 dolara kullanılabilecek alanı 20 dolara kullanabildiğiniz bir yer. Denemenizi şiddetle tavsiye ederim. Eğer bu sene bir iOS Bootcamp yaparsak mutlaka arkaplanda Firebase kullanmayı incelikleriyle anlatacağım. Şimdilik kendi dokümantasyonları haricinde önerebileceğim bir kaynak maalesef yok, lakin yakında çıkacaktır.

4- Sürekli Kullanıma Uygunluk

Handikap

Uygulamanın gerçekten de sürekli kullanıma hazır olup olmadığından emin olmak hiçbir zaman mümkün değil. En azından gerçek kullanıcılar onu kullanmaya başlayana kadar. Arkaplan sisteminizin en büyük olası sorunlarından bir tanesi veri depolama alanıyken, bir diğeri de kaldırabileceği anlık kullanıcı sayısı. Özellikle sisteminiz Fiskos’taki gibi canlı (realtime) ise durum ayrıca sıkıntı içerebilir.

Uyguladığım Çözüm

Burada yine Firebase’in çok güzel özellikleri olmasından bahsedeceğim, lakin orasının bir geliştirici platformu olduğunu unutmamak gerekiyor. Yani sizin orada geliştirdiğiniz uygulama kurgusu hasarlıysa, sistem istediği kadar desteklesin, siz o kaynakları doğru kullanamazsınız.

Burada kullandığım çözüm tamamen yazdığınız sistem altyapısı konusundaki deneyimle ilgili. Yani ilk uygulamanızda mükemmel sonuçlar almamanız normaldir, bu yüzden mümkün olduğunca çok boş beleş uygulamalar geliştirip denemenizi öneririm. İlla piyasa koşullarında denemek durumunda da değilsiniz, pek çok sorun gerçek durumu simüle ederek de aşılabilir.

5- Deneyime Rağmen Oluşan Sorunlar

Handikap

Deneyim size konfigürasyonlarınızın veri büyüdükçe vereceği sonuçları mümkün olduğunca düşünebilme ve simüle edebilme şansı verecektir, lakin her zaman yeni bir takım sorunlar çıkması ihtimaliyle karşı karşıyasınız. Bu da gittikçe büyüyen bir sorun olabilir. Özellikle bir anda yığılan kullanıcılara dair üreteceğiniz çözümler düşünüldüğünde, sürecin gittikçe zorlaşması kuvvetle muhtemel.

Uyguladığım Çözüm

Bu noktada, uygulamanızın sunucu tarafında ne kadar kontrol edilebilir olduğu çok kritik. Sadece veritabanına yapacağınız ekle/sil/düzenle işlemlerinden bahsetmiyorum. Aynı zamanda kullanıcı deneyimini de kimi parametrelere bağlamanız çok önemli olacaktır.

Fiskos’ta örneğin, arkaplan renklerinden anasayfada görüntülenecek gönderi sayısına kadar her türlü parametre sunucu tarafından kontrol edilebilir durumda.

Gelgelelim, bu aynı zamanda çok büyük bir sorunu da beraberinde getirebilir: Rehavet.

Her ne olursa olsun, büyüyen bir uygulamanız varsa rehavete kapılmak yapabileceğiniz en tehlikeli hareket olacaktır. Her şey istediğiniz gibi çalışıyor bile olsa, sürekli olarak geliştirilmesi gereken bir yerler olacaktır, bunlar üzerine yine sürekli bir efor sarfetmek gerekir.

6- Yeni Özellik Ekleme Süreleri

Handikap

Sürekli tonla istek ve bildirim alıyorsanız, hızlı ve sürekli biçimde yeni özellikler eklemek istersiniz. Gelgelelim, bunu yapabilecek teknik altyapıya ne kadar sahip olursanız olun, kullanıcılar uygulamanızı aktif olarak kullanırken yeni özellik ekleme aralıklarını çok iyi tayin etmeniz gerekir. Her an kullanıcılarınızı sıkabilir, yapmakta oldukları şeyleri bozabilir veya başka bir sebepten onları uzaklaştırabilirsiniz.

Uyguladığım Çözüm

Bu alanda App Store’da çok güzel gelişmeler var. Eskiden 2 haftayı bile bulduğu olan uygulama değerlendirme süreçlerini 1 güne indirmiş durumdalar. Kesinlikle takdir edilmesi gereken bir durum. Lakin, bu her gün yeni versiyon çıkmanız gerektiği anlamına gelmiyor.

Bu konuda ben Facebook’un uyguladığı yöntemi tercih ve tavsiye ediyorum. Facebook, her iki haftada bir yeni özellikler ve düzeltmeler içeren güncellemeler yayınlıyor. Günü gününe takip etmeniz gerekmiyor elbette, ama periyodik güncellemeler kullanıcılarınızın deneyimi açısından elzem olabilir. Bir noktadan sonra sizin güncelleme periyotlarınıza alışan kullanıcılarınız ek özellik önerme işini de ciddiye alacaklardır.

7- Yeni Özelliklerin Testleri

Handikap

Uygulamayı güncellediniz. Eklediğiniz yeni özellikler bir anda binlerce kullanıcıya ulaşacak, haliyle herbir özelliğin canlı ortamda nasıl çalışacağını net bir şekilde biliyor olmanız gerekiyor. Bu da çoğunlukla sadece tahmin edebileceğiniz bir şeydir, yukardaki diğer handikaplardan ötürü. Kullanıcılarınızın deneyimini yerle bir etme ihtimaliyle her zaman karşı karşıyasınızdır.

Uyguladığım Çözüm

Mutlaka bir test sunucunuz olması gerekiyor. Her an her şeyi berbat etme ihtimaliniz karşısında en büyük yardımcınız olacaktır. Firebase gibi bir altyapı kullanıyorsanız, işiniz bir kopyala/yapıştır kadar da kolay olacaktır üstelik, bunu es geçmemek lazım.

Canlı sistemler üzerinde yapılan geliştirme testleri tavşanın kurtların arasında havucunu avuçlamasına benzer. Yerler o tavşanı orada.

8- Bize Özgü Sorunlar

Handikap

Türkiye gibi bir pazarda uygulama çıkartıyorsanız, en ufak eksiğinizde bile o ‘bir yıldızlı yorumları’ görmeye hazırlıklı olmanız gerekiyor. Ortada herhangi bir sebep yokken bile kötü yorum yapabilme kapasitesine sahip bir topluluk içerisinde bu göze alması zor bir durum.

Çoğunluğu herhangi bir eleştiri bile içermeyen, herhangi bir veriye dayanmayan, sadece olayların kötü taraflarını görme hevesimizin ürünü olan yorumlar olacaktır, bu konuda kısa dönemde yapabileceğimiz bir şey yok maalesef.

Uyguladığım Çözüm

Kullanıcıların App Store’da yaptıkları yorumlardan bizimki gibi piyasalarda sağlıklı veri çıkması çok küçük ihtimaldir. Bu yüzden yapılması gereken, her diğer eleştiride yapmanız gerektiği gibi içindeki veriyi dışarı çıkartıp elinizden geldiğince kendi standartlarınıza uygun bir şekilde geliştirme süreçlerinize eklemeniz olacaktır. Sonrası zaten normal koşullarda uygulamanız gereken süreçler, orada ek bir işlem yapmanız gerekmiyor.

9- Saldırılar

Handikap

Uygulamanız beklediğinizden hızlı büyüyorsa, size saldırmaya başladıklarını farkedersiniz. Yazdığınız uygulamanın herhangi bir yerinde en ufak bir açık bile olsa, kullanıcılarınızdan bir kısmı bunu farketmiş ve çoktan sağlı sollu girişmiş olacaklardır. Aynı zamanda kullanıcılarınız olmasalar bile ‘spor olsun diye’ sistemlerinizi çökertmeye çalışan ‘heçkırlar’ olacaktır.

Uyguladığım Çözüm

Burada sizi tamamen kurtarabilecek bir çözüm söz konusu değil. Sistemlerinizi sürekli olarak izlemeniz ve süreçlere mümkün olduğunca hızlı müdahale etmeniz dışında yapabileceğiniz pek de bir şey yoktur.

Ek olarak, uygulamanızı geliştirirken, hiçbir koşulda ‘yok bunu yapmazlar’ dememeniz gerekiyor. Yaparlar. Emin olun onu da yaparlar. Sizin geliştirici olarak göreviniz, kullanıcıların karşılaşabileceği olası sıkıntıları mümkün olan en hızlı biçimde çözmektir.

Yapılan her şey bozulur.

Bu yüzden olur da bozulursa tekrar düzeltmek için bir stratejiye ihtiyacınız olacaktır. Sürekli ve düzenli olarak yapılacak yedeklemeler bunlar arasındaki en önemlisi. Gerisi de süreç içerisinde kendini gösterecektir.

10- Planların Değişmesi

Handikap

Uygulamanızı geliştirirken ya tek başınızasınızdır, ya da bir ekiple birlikte. En fazla birkaç kişi olacağınızdan, gelecek için ne planladığınıza dikkat etmeniz gerekecektir. Zira yaptığınız gelecek planları bir anda komple değişebilir. Eklemek istediğiniz özellikleri bir anda silip, ihtiyaç olan özellikleri geliştirmeye başlamak durumunda kalabilirsiniz.

Uyguladığım Çözüm

Mümkün olduğunca genel özellikler üzerine planlar yapın ve bu planları ana kod tabanına paralel başka bir alanda geliştirin. Örneğin Fiskos’a yakında çok güzel özellikler eklemek istiyoruz, bunun için de gerekli çalışmalara başladık, lakin bu çalışmaları başka bir ‘branch’ altında yürütüyoruz, ana kod tabanına dokundurmuyoruz. Orası sadece canlıya almaya karar verdiğimiz ve testlerini yaptığımız kodlar için.

11- Heyecana Kapılmak

Handikap

Hızlı büyümek her zaman karşılaştığınız bir şey değildir. Haliyle heyecana kapılırsınız. Bu da genellikle eklediğiniz özelliklerde kimi hatalar yapmanıza neden olur. Bunun sonucunda özellikle App Store açısından uygulamanızın yeni versiyonlarının reddedilmesi gibi sorunlarla karşılaşabilirsiniz. Daha kötüsü, kimse bunu anlamaz ve kullanıma girdikten sonra karşılaşırsanız iyice büyük bir sorununuz olur.

Uyguladığım Çözüm

Her şeyden önce sakin olmak lazım. Bir şeyler kaçıyor bile olsa, sükunetiniz bozulursa sadece daha beter kaçıracaksınız. Fiskos’ta gönderdiğim güncellemelerden bir tanesinde uygulamanın arkaplan modlarından bir tanesini ‘collapse’ yaparken yanlışlıkla açmışım, sonra da dikkat etmemişim. Sağolsun Apple ertesi gün uygulamayı reddedince, bu maddeyi tekrar hatırlama olanağı buldum.

Geliştirdiğiniz uygulama sizin imzanızdır, heyecana kapılıp imzanızı yanlış atmayın.

Çıkarttığım Sonuçlar

Kesin olarak bildiğim bir şey var ki, o da uygulamanızın beklediğinizden çok daha hızlı büyümesi mutlaka tadılması gereken muhteşem bir duygu.

Bununla beraber, bu hızlı büyümeye dair önceden bir şeyleri düşünmüş olmak çok önemli.

Gelgelelim, her ne düşünürseniz düşünün, yol üstünde karşılaşacağınız sorunların tümünü hesap etmeniz olanaksızdır. Bu yüzden olası sorunlara karşı hazırlıklı olmak her zaman için önemli.

Ayrıca uygulamanızı mutlaka bir versiyon kontrol sisteminde tutun, düzenli olarak yaptıklarınızı oraya ‘commit’ edin ve yedeklemeyi de unutmayın.

Ha bir de yazıyı beğendiyseniz şu alttaki kalp butonuna bir tıklamanızı rica ediyorum. Bir de kitap yazdım, almak ve okumak isterseniz minnettar kalırım. Linki burada.

Seviyorum sizi.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir