Yazılımda Benim Kuzey Yıldızım
(kristoff.it)Yazılım geliştirirken öncelikler
- Yazılım son kullanıcı için faydalı olmalı ve "Sevilebilecek Yazılım" olmayı hedeflemeli
- Yazılım doğru (correct) olmalı. Hatalı çalışan yazılım, kullanıcının elde edebileceği faydayı azaltır
- Yazılım bakımı yapılabilir ve verimli olmalı. Yazılımdan daha fazla fayda çıkarmaya çalışırken insan ve bilgi işlem kaynaklarının israfını önlemek için bir ölçüttür
Öncelikler tersine döndüğünde anlamsızlaşması
- Bir blockchain'de hata olmasa bile, eğer bu bir rugpull ise bunun hiçbir anlamı yoktur
- Kullandığınız dil bellek güvenli (memory-safe) olsa bile, doğruluk için tasarım yoksa ve sonunda tüm hataları düzeltmeye yönelik bir süreç bulunmuyorsa bunun hiçbir anlamı yoktur
- Yazılım güzel bir soyutlama katmanları örtüsü (canopy of abstractions) olsa bile, berbat çalışıyorsa ve kimse bakım yapamıyor ya da yeni özellik ekleyemiyorsa bunun hiçbir anlamı yoktur
Bazen hevesim kırılıyor, bazen yanlış yola giriyorum ve bazen de bilerek dolanıyorum; ama hiç kimse benim gerçek varış noktamı daha aşağıda bir yer sanmama neden olamaz.
Geliştirici olarak kendi deneyimime önem veriyorum, ancak buna yalnızca benim başkalarıyla birlikte sizin de keyif alabileceğiniz daha fazla yazılım üretmeme yardımcı olduğu ölçüde önem veriyorum.
- Nihai hedef, son kullanıcının elde ettiği faydayı en üst düzeye çıkarmaktır ve bunun dışındaki her şey bu hedefe ulaşmak için bir araçtır
- Yazılım geliştirirken en önemli ilke budur
1 yorum
Lobste.rs yorumları
Benzer bir yaklaşımı tercih ediyorum
Tornavida gibi “sevimli olmayan” araçlar bile çok uzun süre son derece güvenilir olabilir. Yıldız tornavida her zaman yıldız başlıdır; alet çantasından çıkardığınızda %1 ihtimalle düz tornavidaya dönüşüp geri koyup tekrar çıkarmanız gerekmez. Sap tasarımı da durmadan değişmez ve satın aldığınız aleti bozulana kadar kullanabilirsiniz.
Keşke daha fazla yazılım da böyle olsa
“Nihai hedef son kullanıcının faydasını en üst düzeye çıkarmaktır ve geri kalan her şey bu hedef içindir” ölçütüne sadık kalan geliştiricilere saygı duyuyor ve minnettarım, ama ben kendim her zaman böyle yaşayamıyorum. Yazılımda son kullanıcı dışında da meşru sorumluluk alanları olduğunu düşünüyorum.
Profesyonel olarak ailemi geçindirmek için yazılım yapıyorum; kullanıcıların tarafını epey tutuyorum ama sonuçta parayı ödeyen şirkete ve aileme sadakatim daha ağır basıyor.
Kişisel işlerimde ölçüt “bu iş bana tatmin veriyor mu” oluyor; sanatsal, estetik ve entelektüel tatmin önemli. Çoğu zaman bu kullanıcı yararıyla örtüşüyor, ama kullanıcının faydasını yanlış değerlendirebilirim; örneğin animasyonlu hamburger menünün faydayı en üst düzeye çıkardığı kanıtlansa bile, kendi üretimimde estetik tercih hakkımı kullanıp bu faydadan vazgeçirebileceğimi düşünüyorum
Kullanıcının, kendi işinin kullanıcılarına zarar veren saçma şeyler yapamaması için yazılımın bazı kısımlarını bilerek kullanıcıya karşı kullanıcı dostu olmaktan çıkarmayı nasıl değerlendirmek gerektiği de var.
Goodhart yasasına çok açık olan ve yan etkilerinin kapsamı da büyük olan belirli bir raporlama özelliğini, yazılım kullanıcıları istese bile sonsuza kadar “henüz hazır değil” durumunda tutmak için bilerek böyle mekanizmaları tartıştığım oldu
Bu yazı sayesinde Tiger Style'ın artık bir web sitesi olduğunu öğrendim
“Kimsenin bakımını yapamayacağı, yeni özellik eklemenin ise hiç mümkün olmadığı” ile “tüm hata düzeltmeleri”ni aynı anda söylüyor ama sonuçta kapsamı dondurmadan tüm hataları düzeltmenin nasıl mümkün olduğunu pek anlamıyorum
“Blockchain'de hata olmasa bile rug pull ise bunun anlamı yok” sözü üç şeyi tek cümlede söyleyebiliyor
Bir şeyin verimliliğini artırmanın, yeni hatalar yaratıyorsa bir anlamı yok; üstelik bu, ancak rug pull değilse anlamlı
Yazılımın mutlaka sadece insanlar tarafından yazılması gerektiğine dair bir gereksinim olmaması dikkat çekici. Kristoff'un Ziglang'ın çekirdek geliştiricisi olduğunu bildiğim için bu daha da ilginç geliyor
AI destekli geliştirme kullanılsa bile bu gereksinimlere uyan yazılım üretilebileceğini düşünmek istiyorum.
Kodu bizzat elle yazmak da keyifli, işi tamamlamak da keyifli; ama bu ikisi bazen çatışıyor.
AI konusunu açtığım için kusura bakmayın ama Kristoff ile Zig topluluğunun yakın ilişkisi, Zig'in güçlü duruşu ve sonuçta benim de hâlâ Ziglang'ı savunuyor oluşum nedeniyle bunu ayırmak zor
Bir projenin büyük dil modeli tabanlı kod konusunda net bir duruşu olması, o projedeki herkesin bu projede ya da tüm projelerde aynı duruşu paylaştığı anlamına gelmez.
Bu sadece Loris'e özgü bir mesele de değil; bu tür kararları duruma göre değerlendirmek makul görünüyor