Skip to content
projelere açık000%
Tüm yazılar
Ürün kararları7 Ağustos 2026 · 7 dk okuma

Bir fikirden çalışan SaaS’a giderken ürün kararlarını nasıl veriyorum?

Ben ürün geliştirmeyi özellik listesi çıkararak başlatmıyorum. Önce hangi varsayım yanlışsa bütün projenin anlamsızlaşacağını bulmaya çalışıyorum. MVP o varsayımı test edecek kadar büyük, geri kalan her şeyi erteleyecek kadar küçük olmalı.

Bir ürün fikrinin ilk hali genellikle ürün değildir. Bir problem, bir heyecan, birkaç özellik ve kafada oluşmuş ideal gelecek görüntüsünün karışımıdır. En tehlikeli an da burasıdır; çünkü fikir henüz hiçbir gerçek kullanıcıya çarpmadığı için her şey mümkün görünür.

AI araçlarıyla birlikte bu aşama daha da tehlikeli hale geldi. Eskiden kapsamı büyütmenin doğal bir geliştirme maliyeti vardı. Şimdi birkaç prompt ile yeni ekran, yeni özellik veya yeni entegrasyon eklemek çok kolay. Teknik üretim ucuzladıkça ürün disiplini daha değerli oldu.

MVP'nin görevi fikri küçük göstermek değil; yanlış olabilecek en önemli varsayımı hızlıca ortaya çıkarmak.

1. Fikirle değil problemle başlıyorum

‘Kitap okuma uygulaması yapacağım’ bir problem değil. ‘İnsanlar başladıkları kitapları, ilerlemelerini ve sıradaki okumalarını takip etmek için dağınık sistemler kullanıyor’ problem olmaya daha yakın. ‘AI productivity app yapacağım’ da problem değil. Kullanıcının hangi anda neden zorlandığını söylemiyor.

ts
type ProductProblem = {  user: string;  situation: string;  friction: string;  currentAlternative: string;};

Bu dört alan net değilse feature tartışmasına girmemek daha sağlıklı. Çünkü özellikler problemi çözmek için vardır; problem tanımı özellikleri meşrulaştırmak için yazılmaz.

2. ‘Kim kullanır?’ sorusunu mümkün olduğunca daraltıyorum

Yeni ürünlerde herkes potansiyel kullanıcı gibi görünür. Bu genellikle ürünü güçlendirmez; dili ve önceliği bulanıklaştırır. İlk sürüm için belirli bir kullanıcı davranışını seçmek daha yararlı.

Örneğin Ordovia'nın hedefini ‘üretken olmak isteyen herkes’ diye kurmak kolaydı. Daha anlamlı çerçeve, görevleri, notları ve alışkanlıkları farklı sistemlere dağılan ve gün içinde neye odaklanacağını belirlemekte zorlanan insanlar. Bu tanım ürün kararlarını değiştiriyor.

İlk kullanıcı tanımı pazarın tamamını tarif etmek zorunda değil. Ürünün ilk net kararlarını verecek kadar belirgin olmalı.

3. En kritik varsayımı buluyorum

Her yeni ürünün altında birkaç varsayım vardır: problem gerçekten var mı, kullanıcı çözüm arıyor mu, çözüm biçimini anlayacak mı, tekrar kullanacak mı, ödeme yapacak mı? Bunların hepsini aynı anda test edemezsiniz.

ts
const assumptions = [  "problem exists",  "user cares enough",  "proposed workflow is understandable",  "retention can exist",  "business model can work",];

Ben önce yanlış çıkarsa geri kalan bütün yatırımı değersizleştirecek varsayıma bakıyorum. Eğer insanların RSS akışlarını gerçekten daha sade bir yerde toplamak isteyip istemediğini bilmiyorsam Feedcrumb'ın ileri seviye AI özet sistemini tasarlamak erken olabilir.

4. MVP'yi özellik sayısına göre değil öğrenme değerine göre kesiyorum

MVP bazen ‘üç özellik olsun’ gibi mekanik düşünülüyor. Bence bu yanlış. Üç yanlış özellik hâlâ kötü MVP. On özellik de kritik deneyimi oluşturmak için gerçekten gerekiyorsa otomatik olarak fazla değildir.

ts
function belongsInV1(feature: Feature) {  return (    feature.testsCriticalAssumption ||    feature.isRequiredForCoreFlow ||    feature.isRequiredForTrust  );}

Trust burada önemli. Auth, veri kaybını önleme veya temel hata durumları doğrudan ürün vaadini etkiliyorsa ‘MVP'de olmasın’ diye atılamaz. Küçük ürün, güvensiz ürün demek değildir.

5. Core loop'u tek cümleyle yazıyorum

Bir ürünün ilk sürümünde kullanıcı neyi tekrar tekrar yapacak? Bu sorunun cevabı yoksa ekran listesi hızla büyür. Core loop, ürünün ritmini tanımlar.

ts
const coreLoops = {  bookProduct: "add → read → update progress → choose next",  feedProduct: "subscribe → scan → open/save → return",  dailySystem: "capture → choose focus → act → close/review",};

Her yeni özellik için şu soruyu soruyorum: bu loop'u güçlendiriyor mu, yoksa ürünün yanına başka bir ürün mü ekliyor?

6. Kullanıcı akışını veri modelinden önce, veri modelini UI detayından önce netliyorum

Benim için yararlı sıra çoğu zaman problem → kullanıcı akışı → domain modeli → arayüz detayları. Çünkü arayüzü çok erken kesinleştirirseniz kullanıcı davranışını mevcut ekran tasarımına zorlayabilirsiniz.

ts
const productOrder = [  "problem",  "core user flow",  "domain model",  "system boundaries",  "interface",  "polish",];

Bu sıra mutlak değil. Ama görsel üretimin çok kolay olduğu AI araçları çağında özellikle önemli; güzel ekranlar yanlış modeli olduğundan daha doğru gösterebiliyor.

7. Teknolojiyi ürün riskine göre seçiyorum

Yeni ürün yeni teknoloji denemek için çok cazip bir fırsat. Fakat ürünün temel riski kullanıcı talebiyse, yeni backend öğrenmek risk azaltmıyor; risk ekliyor. Bu yüzden çoğu zaman bildiğim ve hızlı ilerlediğim altyapıyı varsayılan seçiyorum.

Teknoloji değişikliğini ancak ürün gerçekten gerektiriyorsa meşru görüyorum: veri modeli, maliyet, latency, platform gereksinimi veya operasyon sadeliği gibi ölçülebilir bir neden.

ts
const techDecision =  productNeed > curiosity    ? "evaluate alternative"    : "use proven default";

8. İlk sürümde intentionally missing listesi tutuyorum

Roadmap genellikle yapılacaklar listesidir. Ben ilk sürümde yapılmayacakları da açıkça yazmayı daha önemli buluyorum. Çünkü AI agent'a veya kendinize boş alan bırakırsanız ürün doğal olarak genişler.

ts
const v1 = {  mustHave: ["core loop", "basic trust", "usable mobile flow"],  intentionallyMissing: [    "advanced customization",    "secondary integrations",    "social layer",    "complex automation",  ],};

Intentionally missing demek ‘asla yapmayacağız’ demek değil. ‘Bu sürümün öğrenme hedefi için gerekli değil’ demek.

9. Tasarımın görevi kapsamı gizlemek değil, açıklamak

İlk sürüm küçük olduğunda bazen ürünü dolu göstermek için dashboard'a ekstra kart, placeholder veya dekoratif özellik eklemek cazip geliyor. Bunun yerine ürünün az ama anlamlı aksiyonlarını daha belirgin göstermek daha iyi.

İyi ilk sürüm ‘boş’ hissettirmeden sade olabilir. Bunun için feature sayısından çok hiyerarşi, empty state, onboarding ve core action'ın görünürlüğü önem taşıyor.

10. Ödeme sistemini çok geç düşünmek de hata

Monetization'ı ilk ekrana koymak gerekmiyor. Ama ürün ücretli olacaksa hangi değerin ücretsiz, hangi değerin ücretli olduğunu çok geç düşünmek mimariyi etkileyebilir. Entitlement, limitler ve platform mağazaları sonradan eklenince ürün modelinin her yerine dokunabilir.

ts
type MonetizationQuestion = {  freeValue: string;  paidValue: string;  upgradeTrigger: string;  entitlementModel: string;};

Ben ücretli planı tasarlarken ‘hangi özelliği kilitleyelim?’ yerine ‘kullanıcı hangi devam eden değere para öder?’ sorusunu daha yararlı buluyorum.

11. Launch hedef değil, ölçüm başlangıcı

Ürün canlıya çıkınca ‘tamamlandı’ hissi geliyor. Aslında ilk defa gerçek sinyal gelmeye başlıyor. İnsanlar kayıt oluyor mu? İlk işi tamamlıyor mu? İkinci gün geri geliyor mu? Hangi ekranda çıkıyor? Support soruları neyi anlamadıklarını gösteriyor?

ts
type EarlySignals = {  activation: number;  returnUsage: number;  coreActionCompletion: number;  qualitativeFeedback: string[];};

İlk kullanıcı sayısı küçükken istatistiksel kesinlik beklemiyorum. Ama davranış sinyalleri ve tekrar eden geri bildirimler bir sonraki ürün kararını değiştirebilir.

12. Kullanıcı isteği ile ürün yönünü aynı şey sanmıyorum

Kullanıcı geri bildirimi çok değerli ama her istek roadmap'e girmemeli. İnsanlar kendi bağlamlarındaki çözümü tarif eder. Ben geri bildirimin arkasındaki problemi bulmaya çalışıyorum.

Feature request veri noktasıdır; otomatik görev değildir.
ts
function processFeatureRequest(request: Request) {  return {    statedSolution: request.feature,    underlyingProblem: inferProblem(request),    frequency: countSimilarSignals(request),    fitWithProduct: evaluateFit(request),  };}

13. Scope büyümesini durdurmak için bir kabul testi kullanıyorum

Bir özellik ‘iyi fikir’ olduğu için ürüne girmemeli. Ben mümkün olduğunca şu dört filtreden geçirmeye çalışıyorum: core problemle ilişkili mi, bugün gerekli mi, bakım maliyeti kabul edilebilir mi, mevcut kullanıcı davranışından sinyal var mı?

SoruHayırsa
Core probleme bağlı mı?Başka ürün olabilir
Şimdi gerekli mi?Roadmap'e ertele
Bakım maliyeti makul mü?Daha küçük çözüm ara
Sinyal var mı?Önce doğrula

14. Hata: MVP'yi kalitesiz ürün sanmak

MVP'nin minimal kısmı özellik kapsamına aittir; temel kaliteye değil. Core flow sürekli kırılıyorsa, veri kayboluyorsa veya mobilde klavye temel işlemi engelliyorsa kullanıcı ürün hipotezini değil bug'ı test ediyor.

Bu yüzden reliability, temel accessibility, loading/error state ve veri güveni gibi alanları ‘sonra polish ederiz’ kategorisine tamamen atmıyorum.

15. Ne zaman yeni özellik yerine sadeleştirme seçiyorum?

Bir ürün ilk geri bildirimlerini aldıktan sonra doğal refleks feature eklemek. Ama kullanıcı mevcut yapıyı anlamıyorsa yeni özellik sorunu büyütebilir. Bazen en yüksek değerli sprint ekran silmek, navigation azaltmak veya iki kavramı birleştirmek.

ts
if (userConfusion > missingCapability) {  nextSprint = "simplify";} else {  nextSprint = "add-capability";}

Benim pratik ürün karar sıram

  • Problemi davranış seviyesinde yaz.
  • İlk kullanıcıyı daralt.
  • En kritik varsayımı seç.
  • Core loop'u tek cümleyle tanımla.
  • V1'e sadece loop, güven ve doğrulama için gerekenleri al.
  • Intentionally missing listesini yaz.
  • Bildiğin teknolojiyle hızlı ilerle; istisnayı gerekçelendir.
  • Gerçek kullanıcının core action'ı tamamlayabildiğini doğrula.
  • Launch sonrası davranışı ve nitel geri bildirimi izle.
  • Yeni feature yerine sadeleştirmenin daha değerli olup olmadığını her turda sor.

Sonuç

Bir fikirden çalışan SaaS'a gitmenin en zor kısmı yazılımı üretmek değil. Özellikle bugün AI ile yazılım üretimi dramatik biçimde hızlandı. Zor olan, hangi ürünün üretileceğine ve neyin bilinçli biçimde dışarıda bırakılacağına karar vermek.

Ben MVP'yi küçük ürün olarak değil, küçük bir öğrenme sistemi olarak düşünüyorum. İyi MVP bana ürünün geleceğine dair gerçek bilgi üretmeli.

ts
const goodMvp = {  scope: "small enough to finish",  experience: "good enough to trust",  hypothesis: "important enough to matter",  feedbackLoop: "fast enough to learn",};

İlk sürümün başarısı her fikri içine sığdırması değil. Bir sonraki doğru kararı verecek kadar gerçeği ortaya çıkarması.

  • SaaS
  • MVP
  • Ürün Stratejisi
  • Scope
  • Solo Builder
  • Validation

PROJELERE AÇIK · ÜRÜN VE SİSTEM MİMARI · DEVRALMA / STABİLİZASYON / OPERASYON · WEB · ANDROID · WINDOWS · AHMET CANAL

İletişim

Ürününüz sisteminden hızlı mı büyüdü?

Mevcut durumu, en büyük tıkanmayı ve istediğiniz sonucu yazın. Kapsamı birlikte netleştirelim.

Durum

Yeni danışmanlık ve proje işlerine açık.