Yapay Zeka ile Geliştirdiğin Uygulamayı Ne Zaman Yeniden Geliştirmeli (ve Ne Zaman İterasyona Devam Etmeli)
Yapay zeka ile geliştirilen her uygulama bir yol ayrımına gelir: elindekine eklemeye devam etmek mi, yoksa baştan başlamak mı. İşte hangi seçimin gerçekten doğru olduğunu nasıl anlayacağın.
Yana Doğru Büyüyen Uygulama
Maria, basit bir müşteri kabul formu geliştirmeye başladı. Altı ay sonra elinde randevu planlama, bir ödeme sayfası, otomatik hatırlatma e-postaları, her müşteri için bir notlar bölümü ve o hafta kaç kişinin randevu aldığını izleyen bir pano vardı. Çoğunlukla çalışıyordu. Ama eklediği her yeni şey, başka bir şeyi bozar gibiydi. Notlar bölümünü eklemek, randevu akışının düzgün kaydetmeyi bırakmasına neden oldu. Randevu akışını düzeltmek, hatırlatmaları bozdu.
Bana sordu: “Hangi noktada artık baştan başlamalıyım?”
Dürüst cevap şu: sandığından daha az sıklıkla, ama yeniden geliştirme lehine olan savı çürütmesi zor kılan spesifik işaretler var.
Yeniden Geliştirmek Neden Cazip Gelir (Yanlış Olduğunda Bile)
Bir uygulama yavaşladığında, ya da öngörülemez davranmaya başladığında, ya da artık istediğin gibi görünmediğinde — içgüdü onu çöpe atıp baştan başlamaktır. Temiz sayfa. Eski yüklerin hiçbiri yok.
O içgüdü genellikle yanlıştır.
Yeniden geliştirmek, insanların beklediğinden daha uzun sürer. Mevcut uygulamanın sessizce çözdüğü tüm uç durumları kaybedersin. Şeyin nasıl çalıştığına dair edindiğin aşinalığı kaybedersin. Ve çoğu zaman aynı yapısal sorunları yeniden geliştirirsin çünkü asıl sorun uygulama değildi — uygulamanın ne yapması gerektiğine dair netliğin eksikliğiydi.
Yapay zeka ile geliştirilen çoğu uygulama iterasyonla kurtarılabilir. İyi bir yapay zeka uygulama oluşturucu, kafa karıştırıcı bir veri modelini yeniden yapılandırabilir, karmaşık bir sayfayı sadeleştirebilir ya da kontrolden çıkmış bir özelliği temizleyebilir. Önemli olan, “düzelt” bölgesinde mi yoksa “baştan başla” bölgesinde mi olduğunu bilmektir.
Gerçekten Yeniden Geliştirmen Gerektiğinin Üç İşareti
1. Sadece özellikler değil, çekirdek fikir değişti
Bir müşteri kabul aracı geliştirmeye başladıysan ve şimdi abonelikleri, kullanıcı ekipleri ve halka açık bir pazar yeri olan bir B2B SaaS istiyorsan — bu farklı bir uygulamadır. Aynı teknoloji, tamamen farklı bir ürün. Birini diğerine özellik katmanları ekleyerek dönüştürmeye çalışmak, bir bisiklete parçalar ekleyerek onu arabaya çevirmeye benzer. Sonunda ne o ne bu olan bir şeyle kalırsın.
Sorulacak soru: Bu uygulamayı, ilk geliştirdiğimdeki gibi tarif eder miydim?
Cevap hayırsa — adı, kitlesi ve çekirdek değeri başta geliştirdiğinden farklıysa — yeniden geliştirme muhtemelen doğru karardır. Başka bir şey için geliştirdiğin şeyin etrafında yamalar yapmak yerine, gerçekten istediğin şey için tasarlama fırsatı bulursun.
2. Yapay zeka artık uygulamada yolunu bulamıyor
Bu felsefi değil, pratik bir işarettir. Yapay zeka uygulama oluşturucular, uygulamanın mevcut yapısını okuyup değişiklik yaparak çalışır. Bir uygulama defalarca yamalandığında, yapı tutarsızlaşır — veriler beklenmedik yerlerde yaşar, sayfalar şeylere dolambaçlı yollarla atıfta bulunur, düğmeler başka düğmelerden kopyalanmış ve hiç temizlenmemiş mantığa bağlanır.
Her değişikliğin alakasız bir şeyi bozduğunu ya da yapay zekanın aynı hatayı tekrar yaptığını (bir özelliğin uygulamanın hangi kısmına ait olduğunu yanlış tanımlamak gibi) fark ettiğinde, “yapısal borç” bölgesine geçmiş olabilirsin.
Yeniden geliştirmek bunu sihirle çözmez — ama tüm resim aklında olacak şekilde en baştan temiz bir şekilde geliştirmene izin verir.
3. Uygulamanın kullanıcıları var ama onları geride tutuyor
Gerçek insanlar uygulamanı kullanıyorsa ve aynı duvara çarpıp duruyorsan — “X’e ihtiyacımız var ama her şeyi yeniden yapmadan onu ekleyemiyoruz” — bu meşru bir yeniden geliştirme işaretidir. Uygulama kötü olduğu için değil, gerçekte çözmen gereken sorunun daha küçük bir versiyonu için geliştirildiği için.
Bu, sahip olunması iyi bir sorundur. Uygulamanın insanların onu ciddi ciddi kullanacağı kadar iyi çalıştığı anlamına gelir. Bu aşamadaki bir yeniden geliştirme bir başarısızlık değildir — bir mezuniyettir.
Yeniden Geliştirmeden Önce Ne Yapmalı
Yeniden geliştirmeye karar vermiş olsan bile, önce şunu yap:
Neyin işe yaradığını yaz. Mevcut uygulamanı gözden geçir ve kullanıcıların gerçekten kullandığı her şeyi listele. Bu özelliklerin kanıtlanmış talebi var. İlk gün yeni uygulamada olmalılar.
Neyin soruna yol açtığını yaz. Sadece “bu yavaştı” ya da “bu çok bozuldu” değil — spesifik ol. “Notlar özelliği randevu akışıyla çakıştı çünkü ikisi de verileri aynı kullanıcı kaydında saklıyordu.” Kodu değil, dersleri taşımak istersin.
Yeniden geliştirme için bir kapsam sınırı belirle. Yeniden geliştirmelerin en büyük riski kapsam kaymasıdır. Her şeyi yeniden yapmaya karar verirsin ve iki ay sonra hâlâ bitmemiştir çünkü “hazır başlamışken” özellikleri ekleyip durursun. Yeniden geliştirme, eski uygulamadaki çalışan özellikleri artı gerçekten engellenmiş bir ya da iki şeyi yayınlamalı. Geri kalan her şey sonradan eklenir.
Ne Zaman İterasyona Devam Etmeli (Çoğu Zaman)
Uygulaman yavaş mı yükleniyor? İterasyon yap — bu genellikle bir veri sorgusu sorunudur ya da aynı anda çok fazla şeyin yüklenmesidir.
Tasarımın eski mi görünüyor? İterasyon yap — bir tasarım tazelemesi, altta yatan mantığa dokunmadan bir yapay zeka oluşturucuda %100 yapılabilir.
Önemli bir özellik hantal mı hissettiriyor? İterasyon yap — sadece o özelliği yeniden geliştir, bütün uygulamayı değil.
Çok fazla özellik ekledin ve her şey dağınık mı hissettiriyor? İterasyon yap — özellikleri kaldırmak ve gezinmeyi sadeleştirmek, tam bir yeniden geliştirmeden çok daha hızlıdır ve çoğu zaman daha etkilidir.
Genel kural: veri modeli yapmaya çalıştığın şey için hâlâ mantıklıysa, iterasyon yap. Veri modeli ürün için yanlış şekildeyse, yeniden geliştir.
Maria’nın Uygulaması
Uygulamasını birlikte gözden geçirdik. Çekirdek yapı — müşteriler, randevular, ödemeler — aslında gayet iyiydi. Karmaşa, müşteri kayıtlarının saklanma şekliyle çakışacak biçimde eklenmiş bir notlar özelliğinden geliyordu.
Yeniden geliştirmek yerine, yapay zeka oluşturucuya tam olarak ne olduğunu anlattı: “Notlar bölümü ve randevu akışı, bilgileri çakışan yerlerde saklıyor ve bu çakışmalara neden oluyor. Notları, randevu kaydından tamamen ayrı olacak şekilde yeniden yapılandırmak istiyorum.” İki oturum sonra düzeldi. Uygulamanın geri kalanı sağlam kaldı.
Altı aylık birikmiş özellikler, kaybedilmedi.
Asıl Soru
Yeniden geliştirmeye karar vermeden önce sor: Sorun uygulamada mı, yoksa uygulamanın ne yapması gerektiğine dair netliğimde mi?
Çoğu zaman cevap netliktir. Ve netlik bir yeniden geliştirme gerektirmez. Sadece yapay zeka oluşturucuna gerçekte ne istediğin konusunda spesifik olmayı gerektirir.
Oradan başla. Yeniden geliştirme her zaman elinin altında. Bir hafta sonra da orada olacak.
Uygulamanın gerçekte neye ihtiyacı olduğunu çözmeye çalışıyorsan — ister bir rötuş ister taze bir başlangıç olsun — Proyecta bunu enine boyuna düşünmek için iyi bir yer. Küçük bir şey geliştir, neyin tuttuğunu gör ve oradan büyüt.