Tüm yazılım projelerinin yüzde 75'i başarısız oluyor! Geçen Ekim ayında bir katkı yazdım. İçinde önemli ve temel bir sorunu da ele aldım: Birçok yazılım projesi teknoloji nedeniyle değil, aşağıdaki profesyonelliğin anlaşılmaması nedeniyle başarısız oluyor. Çünkü nadiren geliştiricilerin ve uzmanların ve uzman uzmanların aynı dili konuşması. Bununla birlikte, bu, Alman, İngilizce veya Fransızca olarak doğal bir dil değil, ortak bir teknik dilin olmaması anlamına gelir (ve sonunda yazılımın geliştirilecek ne olduğu hakkında ortak bir anlayış).
Duyuru
Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.
Bahsedilen videoda, bunun örtük hipotezlere, yanlış anlamalara ve yanlış yorumlara yol açtığını ayrıntılı olarak açıkladık. Sonuçta, bu, geliştiricilerin her zaman gibi yazılımlar oluşturmasından başka bir şey ifade etmiyor O Bunlar ve iş ihtiyaçları yazılımı olarak mutlaka değil. Sonuç olarak, soru ne yapabileceğiniz şey ortaya çıkıyor: Olası bir cevap gerçekten profesyonelliğin mükemmel bir modellemesidir. Bu modellemenin bugün bu blog yazısında nasıl geliştirildiğini açıklıyorum.
Sorunun bir nedeni olarak dil
Her şeyden önce, önce ortak dil eksikliği ve ortak anlayış eksikliğinin nereden geldiğini anlamalısınız. Çünkü aslında bunun hakkında konuşmanın çok zor olamayacağını düşünmelisiniz. Ancak sorun, farklı dünyaların burada buluşması, her ikisinin de diğer disiplinle iletişim kurmayı hiç öğrenmemiş olmasıdır:
X Programlama dili veya çerçevesi y?
Bununla birlikte, korkutucu, çok fazla takımın ve onu görmezden gelmesini sağladığı ya da bu tutarsızlığın farkında olmadığı için şahsen daha da kötüsü bulduğum. Bu nedenle, X programlama dilini kullanmanız veya Y çerçevesini tercih etmeniz gerekiyorsa, haftalar veya aylarca tartışılacaktır, ancak kimse profesyonelliği tedavi etme düşüncesinden ayrılmaz.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Crud dündü: Profesyonel olarak // Alman model yazılımı
Bu yüzden bir noktada geliştirilecek ve bu birkaç ay veya belki bir veya iki yıl iyi gidiyor, ancak er ya da geç yazılımın başlangıçta istenen şeyi tam olarak yapmadığını görebilirsiniz. Ve sonra iyileştirilmelidir: her şey daha fazla zaman alır, her şey daha pahalı hale gelir ve elbette, temeller (yanlış hipotezler alındığı için) tamamen uygun olmayan bir yönde geliştirilmiştir, böylece ayarlamalar artık çok hantal ve bu nedenle tekrar son derece pahalıdır.
Birinin köşeden gelmesi ve şöyle diyor:
“Size en başından beri söyledim: X teknolojisini koymamış olsaydık, ancak Y teknolojisine, o zaman şimdi sorunumuz olmazdı!”
Ancak mesele şu ki: sorun da orada olurdu, sadece farklı bir teknolojik temelde. Bu atlama noktası olduğu için: daha nadir durumlarda, teknolojinin kendisi sorundur (ki bu daha iyi ve daha kötü teknolojik kararlar olmadığı anlamına gelmiyorum, normalde, sadece teknoloji seçiminin etkisi bir projenin başarısı üzerindeki büyük ölçüde abartılmıştır).
Bir başlangıç noktası olarak ham
Bu, aşağıdaki profesyonel soruna uygun ve hatta hedeflenen bir yazılım geliştirdiğinizden emin olmak istiyorsanız, yalnızca teknik açıdan ne olduğunu anlarsanız çalışır. Önemsiz görünebilir – maalesef uygulama çok sık farklı görünüyor.
Genellikle maalesef erken yaşlardan gelen geliştiriciler açısındayız: veritabanı tablolarını düşünmek. Eğitimimizde veya çalışmalarımızda, verileri ilişkisel yapılarda saklamayı öğrendik. Bu yapılarla çalışmak için dört fiil biliyoruz, yani Yaratıcı,, Işık,, Güncelleme VE Elemekgenellikle kısaltılır Çiğ. Aslında her şeyi onunla modelleyebileceğimizi öğrendik ve teknik açıdan bu da oldukça doğru.
Peki ya teknik dil?
Ancak bu, bu kelimelerin veritabanının teknik dili olduğu gerçeğini değiştirmez. Yaratıcı,, Işık,, Güncelleme VE Elemek Veritabanları tarafından kullanılan tamamen teknik terimlerdir. Veritabanlarına erişen kodla sık sık uğraştığımız için, kodumuzda bu dört fiili kullanmak için geçtik: UpdateBook.
Teknik bir bakış açısından, bu işlev veritabanındaki bir kitabın veri kaydını güncellerse bu da oldukça uygun olabilir. Ancak sorun şu ki, bu değil profesyonel Yansıma örneği. Neden Neden Kitap mı yoksa veritabanınız güncelleniyor mu? Ne yazık ki, fonksiyonel isim bu bilgileri sağlamaz. Sorun aynı zamanda bunun arkasındaki Güncelleme Her şeyi gizleyebilir. Eminim bu noktada durur ve kendiliğinden kaç neden geldiklerini düşünürseniz, bir kitap güncellenmesi gerektiğinden, on veya yirmi farklı nedene ulaşmakta zorluğunuz yoktur.
Ayrıca, seçtiğiniz profesyonelliğe bağlı olarak: uygulamanın farklı gelişeceğinden eminim: Bir kütüphanede ödünç alınan kitapların yönetimi için bir sistem, büyük bir çevrimiçi mağaza için bir sistemden farklıdır ve her ikisi de, romanların yazılmasında yazarları desteklemesi gereken bir sistemden tamamen farklı bir şeydir.
Her üç durumda da, bir kitabı er ya da geç güncellemek gerekebilir, ancak tüm iş akışı tamamen farklıdır ve buna bağlı olarak bazı şeyler muhtemelen farklı yönetilir. Çevredeki süreç hakkında derin bir bilgi olmadan, doğru olanı yapan kodu yazmak zordur ve çok kısa değil, eşit değil UpdateBook Uygulamak için.
Crud bir anti -patter
Uzun Konuşma, Kısa Duygusal: Kodu süreçleri bilmeden yeterince ve hedefli bir şekilde yazamazsak, bu süreçleri başlangıçta daha iyi anlamaya çalışabilir miyiz? Tüm konunun neyle ilgilentiğini anlamak için? Kim bir şey yapar? Bu kişi ne yapıyor? Neden yapıyor? Ne zaman ve ne kadar sık yapar? Her şeyin amacı nedir? Sonuçlar nelerdir? Ve benzeri.
Şimdi düşünüyorsanız:
“Doğru, mantıklı olurdu!”
Bu nedenle süreçlerin nasıl uygun şekilde tanımlanacağını düşünmeliyiz. Size önceden bir şey söyleyebilirim: terimler Yaratıcı,, Işık,, Güncelleme VE Elemek Ben oldukça yerim. Aslında, bu dört fiilde düşünme şekli bile bir anti -patliktir.
Ancak teknik süreçleri tanımlamak için Crud'u kullanamazsak, bunun yerine ne yapacağız? Gerçekte oldukları gibi iş süreçlerini sunmak için bir yönteme ihtiyaç vardır, yani bir dizi olay. Akşam eve döndüğünüzü hayal edin ve eşiniz size gününüzün nasıl olduğunu sorar, daha sonra söylediğiniz ve sonra önce oldu. Gün içinde yaşayan olayları rapor ediyorlar – ve bir iş sürecinde tam olarak olan budur.
Duyuru

Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.
Bahsedilen videoda, bunun örtük hipotezlere, yanlış anlamalara ve yanlış yorumlara yol açtığını ayrıntılı olarak açıkladık. Sonuçta, bu, geliştiricilerin her zaman gibi yazılımlar oluşturmasından başka bir şey ifade etmiyor O Bunlar ve iş ihtiyaçları yazılımı olarak mutlaka değil. Sonuç olarak, soru ne yapabileceğiniz şey ortaya çıkıyor: Olası bir cevap gerçekten profesyonelliğin mükemmel bir modellemesidir. Bu modellemenin bugün bu blog yazısında nasıl geliştirildiğini açıklıyorum.
Sorunun bir nedeni olarak dil
Her şeyden önce, önce ortak dil eksikliği ve ortak anlayış eksikliğinin nereden geldiğini anlamalısınız. Çünkü aslında bunun hakkında konuşmanın çok zor olamayacağını düşünmelisiniz. Ancak sorun, farklı dünyaların burada buluşması, her ikisinin de diğer disiplinle iletişim kurmayı hiç öğrenmemiş olmasıdır:
- Gelişimden dil odaklı dil uzmanlara kullanılmaz ve bu nedenle onları anlamaz.
- Buna karşılık, geliştiriciler teknik dile alışık değildir ve bu nedenle onları anlamıyorlar, çünkü her şeyden önce, arkasındaki iş süreçlerini bilmiyorlar.
X Programlama dili veya çerçevesi y?
Bununla birlikte, korkutucu, çok fazla takımın ve onu görmezden gelmesini sağladığı ya da bu tutarsızlığın farkında olmadığı için şahsen daha da kötüsü bulduğum. Bu nedenle, X programlama dilini kullanmanız veya Y çerçevesini tercih etmeniz gerekiyorsa, haftalar veya aylarca tartışılacaktır, ancak kimse profesyonelliği tedavi etme düşüncesinden ayrılmaz.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Crud dündü: Profesyonel olarak // Alman model yazılımı
Bu yüzden bir noktada geliştirilecek ve bu birkaç ay veya belki bir veya iki yıl iyi gidiyor, ancak er ya da geç yazılımın başlangıçta istenen şeyi tam olarak yapmadığını görebilirsiniz. Ve sonra iyileştirilmelidir: her şey daha fazla zaman alır, her şey daha pahalı hale gelir ve elbette, temeller (yanlış hipotezler alındığı için) tamamen uygun olmayan bir yönde geliştirilmiştir, böylece ayarlamalar artık çok hantal ve bu nedenle tekrar son derece pahalıdır.
Birinin köşeden gelmesi ve şöyle diyor:
“Size en başından beri söyledim: X teknolojisini koymamış olsaydık, ancak Y teknolojisine, o zaman şimdi sorunumuz olmazdı!”
Ancak mesele şu ki: sorun da orada olurdu, sadece farklı bir teknolojik temelde. Bu atlama noktası olduğu için: daha nadir durumlarda, teknolojinin kendisi sorundur (ki bu daha iyi ve daha kötü teknolojik kararlar olmadığı anlamına gelmiyorum, normalde, sadece teknoloji seçiminin etkisi bir projenin başarısı üzerindeki büyük ölçüde abartılmıştır).
Bir başlangıç noktası olarak ham
Bu, aşağıdaki profesyonel soruna uygun ve hatta hedeflenen bir yazılım geliştirdiğinizden emin olmak istiyorsanız, yalnızca teknik açıdan ne olduğunu anlarsanız çalışır. Önemsiz görünebilir – maalesef uygulama çok sık farklı görünüyor.
Genellikle maalesef erken yaşlardan gelen geliştiriciler açısındayız: veritabanı tablolarını düşünmek. Eğitimimizde veya çalışmalarımızda, verileri ilişkisel yapılarda saklamayı öğrendik. Bu yapılarla çalışmak için dört fiil biliyoruz, yani Yaratıcı,, Işık,, Güncelleme VE Elemekgenellikle kısaltılır Çiğ. Aslında her şeyi onunla modelleyebileceğimizi öğrendik ve teknik açıdan bu da oldukça doğru.
Peki ya teknik dil?
Ancak bu, bu kelimelerin veritabanının teknik dili olduğu gerçeğini değiştirmez. Yaratıcı,, Işık,, Güncelleme VE Elemek Veritabanları tarafından kullanılan tamamen teknik terimlerdir. Veritabanlarına erişen kodla sık sık uğraştığımız için, kodumuzda bu dört fiili kullanmak için geçtik: UpdateBook.
Teknik bir bakış açısından, bu işlev veritabanındaki bir kitabın veri kaydını güncellerse bu da oldukça uygun olabilir. Ancak sorun şu ki, bu değil profesyonel Yansıma örneği. Neden Neden Kitap mı yoksa veritabanınız güncelleniyor mu? Ne yazık ki, fonksiyonel isim bu bilgileri sağlamaz. Sorun aynı zamanda bunun arkasındaki Güncelleme Her şeyi gizleyebilir. Eminim bu noktada durur ve kendiliğinden kaç neden geldiklerini düşünürseniz, bir kitap güncellenmesi gerektiğinden, on veya yirmi farklı nedene ulaşmakta zorluğunuz yoktur.
Ayrıca, seçtiğiniz profesyonelliğe bağlı olarak: uygulamanın farklı gelişeceğinden eminim: Bir kütüphanede ödünç alınan kitapların yönetimi için bir sistem, büyük bir çevrimiçi mağaza için bir sistemden farklıdır ve her ikisi de, romanların yazılmasında yazarları desteklemesi gereken bir sistemden tamamen farklı bir şeydir.
Her üç durumda da, bir kitabı er ya da geç güncellemek gerekebilir, ancak tüm iş akışı tamamen farklıdır ve buna bağlı olarak bazı şeyler muhtemelen farklı yönetilir. Çevredeki süreç hakkında derin bir bilgi olmadan, doğru olanı yapan kodu yazmak zordur ve çok kısa değil, eşit değil UpdateBook Uygulamak için.
Crud bir anti -patter
Uzun Konuşma, Kısa Duygusal: Kodu süreçleri bilmeden yeterince ve hedefli bir şekilde yazamazsak, bu süreçleri başlangıçta daha iyi anlamaya çalışabilir miyiz? Tüm konunun neyle ilgilentiğini anlamak için? Kim bir şey yapar? Bu kişi ne yapıyor? Neden yapıyor? Ne zaman ve ne kadar sık yapar? Her şeyin amacı nedir? Sonuçlar nelerdir? Ve benzeri.
Şimdi düşünüyorsanız:
“Doğru, mantıklı olurdu!”
Bu nedenle süreçlerin nasıl uygun şekilde tanımlanacağını düşünmeliyiz. Size önceden bir şey söyleyebilirim: terimler Yaratıcı,, Işık,, Güncelleme VE Elemek Ben oldukça yerim. Aslında, bu dört fiilde düşünme şekli bile bir anti -patliktir.
Ancak teknik süreçleri tanımlamak için Crud'u kullanamazsak, bunun yerine ne yapacağız? Gerçekte oldukları gibi iş süreçlerini sunmak için bir yönteme ihtiyaç vardır, yani bir dizi olay. Akşam eve döndüğünüzü hayal edin ve eşiniz size gününüzün nasıl olduğunu sorar, daha sonra söylediğiniz ve sonra önce oldu. Gün içinde yaşayan olayları rapor ediyorlar – ve bir iş sürecinde tam olarak olan budur.