Bir uygulama fikriniz var. Belki sabah duşta aklınıza düştü, belki aylardır kafanızın bir köşesinde dönüyor. Kağıda döktünüz, birkaç kişiye anlattınız, heyecan yüksek. Sonra herkesin çarptığı aynı duvara çarpıyorsunuz: nereden başlayacağım?
Biz AppDuce'da kendi ürünlerimizi kurarken izlediğimiz yedi adımlık planlama sürecini burada paylaşıyoruz. Her adımı neden yaptığımızı, neyi bilerek atladığımızı da anlatıyoruz.
Adım 1: Problemi tanımlayın
Fikirle değil, problemle başlayın.
"Yemek tarifi uygulaması yapacağım" bir problem değil, problem kılığına girmiş bir çözüm. Altındaki gerçek problem şu olabilir: insanlar dolabın önünde durup elindeki malzemeyle ne pişirebileceğini bilemiyor.
Elinizde gerçek bir problem olup olmadığını anlamanın hızlı bir yolu var. Onu "insanlar şu konuda zorlanıyor" diye tek cümleyle söyleyebiliyor musunuz? Bu problemi yaşayan belirli bir kitle var mı? Ve mevcut çözümler bu insanlara neden yetmiyor? Bunların net cevabı yoksa hâlâ fikir aşamasındasınız, problem aşamasında değil. Biraz daha kazın, problemi yaşadığını düşündüğünüz insanlarla konuşun.
Adım 2: Kullanıcıyla konuşun
Yazılımdaki en pahalı hata, kimsenin istemediği bir şeyi yapmaktır. Araştırma bunu önlemenin yolu ve akademik bir çalışma gerektirmiyor, birkaç basit adım yetiyor.
Önce beş on potansiyel kullanıcıyla konuşun, ama onlara çözümünüzü değil probleminizi anlatın: böyle bir sorun yaşıyor musunuz, şu an nasıl hallediyorsunuz? Alacağınız cevaplar sizi çoğu zaman şaşırtır. Sonra rakiplere bakın; App Store, Google, Product Hunt. Rakip olması aslında iyi haber, çünkü talebin var olduğunu gösteriyor; sizin işiniz onların neyi kötü yaptığını bulmak. Son olarak konunun konuşulduğu topluluklara dalın: Reddit, Ekşi Sözlük, Twitter, sektörel forumlar. İnsanlar bu problemi konuşuyor mu, konuşurken hangi kelimeleri seçiyor?
Adım 3: Kapsamı kısın
Projelerin aşağı yukarı yüzde 80'i tam burada dağılıyor. Kapsam kontrolsüz büyüyor, bütçe şişiyor, süre kayıyor ve bir yerde motivasyon sessizce ölüyor.
Kuralımız keskin: ilk versiyona sadece olmazsa olmazlar giriyor, ki bu da aslında bir MVP demek. "Olsa güzel olur" diyen her şey sonraya kalan listeye gidiyor.
Biz bunu üç kovaya ayırıyoruz. İlk versiyon, kullanıcının problemi onlarsız çözemeyeceği üç ila beş özelliği tutuyor. İkinci dalga, yani versiyon 1.1 ile 1.5 arası, ilk kullanıcı geri bildiriminin size ekleteceği şeyler. Gelecek kovası ise, versiyon 2 ve ötesi, şimdi yazıp kenara koyduğunuz uzun vadeli vizyon. Listeyi dürüst tutan tek bir test var: her özellik için "bu olmadan ürün çalışır mı?" diye sorun. Cevap evetse, o özelliğin ilk versiyonda işi yok.
Adım 4: Mimari kararlarını verin
Bir avuç karar, ilk satır koddan önce verilmeli.
İşe platformdan başlayın: mobil mi, web mi, ikisi mi? O kararın uzun halini ayrı bir yazıda anlattık. Ardından stack'in kendisi gelir: frontend'de mobil için React Native, web için Next.js ya da ikisi; backend'de hızlı başlamak için Firebase, daha fazla kontrol için Supabase ya da özel bir Node.js/Python katmanı; veritabanında Firestore, PostgreSQL veya MongoDB; auth tarafında Firebase Auth, Clerk ya da Auth.js; ödemede Stripe, Türkiye için Iyzico, uygulama içi abonelik için RevenueCat. Etrafındaki üçüncü parti parçalar da var: harita için Google Maps veya Mapbox, bildirim için OneSignal veya Expo Push, analitik için PostHog veya Mixpanel.
Bu tartışmaların çoğunu tek bir kural kesiyor: en iyi teknoloji, ekibinizin zaten bildiği, topluluğu geniş ve dokümantasyonu düzgün olan teknolojidir. Yenilik başlı başına bir özellik değil.
Adım 5: Tasarlayın
Tasarım işi güzelleştirmek değil, ürünü gerçekten kullanılabilir kılmak.
Kabataslak başlayın. Wireframe, Figma'da ya da kağıtta yaptığınız düşük çözünürlüklü çizimler; her sayfada ne olacağını ve kullanıcının aralarında nasıl gezineceğini oturtuyor. Bunlar netleşince gerçek arayüzü kurarsınız. İlk versiyon için hazır bir UI kit ise size ciddi zaman ve para kazandırır; özelleştirmeyi sonraya bırakabilirsiniz.
Birkaç ilke bütünü bir arada tutuyor. Tutarlı olun ki aynı eylem her yerde aynı görünsün. Basit tutun, her ekranda tek bir birincil eylem olsun. Geri bildirim verin, insanlar bir şey yaptığında sonucunu görsün. Bir de erişilebilir olun: yeterli kontrast, okunabilir font boyutları.
Adım 6: Sprint'lerle geliştirin
Planlama bitti, nihayet kod yazma vakti. Ama amaç üç ay boyunca bir mağarada tek başına kodlamak değil, kısa iterasyonlarla ilerlemek.
İki haftalık bir sprint ritmi şöyle görünebilir: ilk iki sprint temel altyapı artı ilk çekirdek özellik, üçüncü ve dördüncü sprint ikinci ve üçüncü çekirdek özellikler, beşinci sprint test, hata düzeltme ve performans, altıncı sprint beta yayını ve ilk gerçek kullanıcı geri bildirimi. Her sprint sonunda gerçekten çalışan bir şey olmalı; "yarım bıraktım" diye biten sprint sayılmıyor.
İçindeyken birkaç alışkanlık işi kolaylaştırıyor. Her gün ya da iki günde bir demo yapın, kendinize bile olsa. Mükemmeliyetçiliğe direnin, çünkü ilerlemeye devam etmek için "yeterince iyi" gerçekten yeterli. Mecbur kaldığınızda teknik borç alın ama nereye gömdüğünüzü yazın. Ve en azından kritik akışlar için test yazın.
Adım 7: İlk kullanıcılarınıza açın
Ürün hazır, canlıya çıkma vakti. Ama kapıları herkese birden açmak kendinizi yaralamanın iyi bir yolu.
Üç aşamalı yumuşak bir lansman daha iyi çalışıyor. Önce bir iki haftalık kapalı beta, 20 ila 50 kişilik; gerçek kullanım verisini toplamaya ve kritik hataları yakalamaya yetiyor. Sonra topluluk lansmanı: hedef kitlenizin zaten toplandığı yerlerde paylaşın (Reddit, Product Hunt, Twitter, sektörel gruplar) ve satış konuşması yerine deneyiminizle girin. En son da, beta geri bildirimlerini hallettikten sonra herkese tam açılış.
App Store ya da Play Store'a çıkıyorsanız birkaç ek iş var: ASO'ya uygun mağaza açıklamaları yazın, ekran görüntüleri ve bir tanıtım videosu hazırlayın; ayrıca Apple review'ının bir ila üç gün sürebileceğini hesaba katın. İlk versiyonun kusursuz olması gerekmiyor, çünkü her zaman güncelleyebilirsiniz.
Gerçekçi bir zaman çizelgesi
| Aşama | Süre | Not |
|---|---|---|
| Problem tanımı + araştırma | 1-2 hafta | Acele etmeyin |
| Kapsam + mimari | 1 hafta | Kesin kararlar verin |
| Tasarım | 1-2 hafta | UI kit ile hızlanır |
| Geliştirme | 4-8 hafta | Sprint'lerle ilerleyin |
| Test + düzeltme | 1-2 hafta | Beta dahil |
| Yayın | 1 hafta | Mağaza süreci dahil |
| Toplam | 9-16 hafta | Karmaşıklığa göre değişir |
En sık gördüğümüz hatalar
Plansız başlamak klasiği. O hemen kodlamaya atlama dürtüsü. İki haftalık planlama, iki aylık yanlış şey geliştirmeyi önlüyor.
Her şeyi ilk versiyona tıkıştırmak ikincisi. Yirmi özellik demek hiç çıkmayan bir ürün demek; üç beş özellik demek canlıya çıkan bir ürün.
Kullanıcıyla hiç konuşmamak da sürekli karşımıza çıkıyor. Varsayımlarınız bir yerlerde büyük ihtimalle yanlış çıkacak; on dürüst sohbet, on bin satır koddan daha değerli.
Bir de her şeyi tek başına yapmaya çalışmak var. Tasarım, geliştirme, pazarlama, destek; bunların hepsini tek bir insan iyi taşıyamıyor. Hiç değilse birinde yardım alın.
Kısa versiyon
Yazılım projesi planlamak, yedi harekete indirgeyene kadar göz korkutuyor: problemi bul, kullanıcıyı tanı, kapsamı kıs, teknolojiyi seç, tasarla, geliştir, yayınla.
Her adımda mükemmelliği değil ilerlemeyi hedefleyin. Mükemmel plan diye bir şey yok, ama iyi bir plan kötü sürprizleri azaltır.
Bu adımları kendi ürünlerimizde defalarca yürüdük. Kiralık bir ekip değiliz; kendi ürünlerimizi kuruyor ve yolda öğrendiklerimizi paylaşıyoruz. İsterseniz süreci yakından takip edebilirsiniz.