Oh, çocuk, gerçekten her şeyin sana olanları kastediyorsan, bu çok fazla!
UYARI : Aşağıdaki hususların çoğunda, sizi eleştirdiğim ve sizi yanlış durumlardan sorumlu kılmak ve dış etkenleri göz önünde bulundurmak istemediğimi hissedebilirsiniz. Yapmıyorum. Sadece çok fazla ayrıntı vermemeniz ve ben de işlerin ters gitmemesini sağlamak için üstlenilecek eylemlerin kontrol listelerini vereceğim. Ben kendim (herkesin yaptığı) birçok hata yaptığımı biliyorum ve sadece onlardan öğrenirsek daha iyi olacağız. Ve onlardan bir şeyler öğrenmek için, onları en başta hata olarak görmeye başlamalıyız ve bizim tarafımızdan neyin yanlış gittiğinin sorumluluğunu üstlenmeliyiz. Cehennem, başkalarının kısımlarında neyin yanlış gittiğinin sorumluluğunu üstlen, ondan da öğrenebilirsin.
Projen başarısız oldu
Şimdi hafifletmek için yapabileceğin bir şey yok.
Ancak gelecekte çoğalmasını önlemek için çok şey yapabilirsiniz. Projenizi ve zaman yönetimi becerilerinizi geliştirmeye çalışmanızı öneririm.
Bu konuda okuduğum en iyi kitaplardan biri ((geçerli tavsiye) / sayfa) Konuyu okudum, belki de en iyisi olmasa da, Rob Thomsett'in Radikal Proje Yönetimi .
Projenizin başarısız olduğunu gerçekten belirtmiyorsunuz, ancak olağan maliyet / zaman / kalite üçgeninde dengesizlik getiren bir şeyin birleşimini varsayardım . Gözlerimdeki en önemli faktör, hem teknik aktörlerinizle (geliştiriciler ve testçiler) hem de paydaşlarınızla her zaman iletişim halindeyken projeye ve kalkınmaya öncülük etmektir. Çok fazla proje başarısız çünkü sponsorları veya paydaşları dinlemiyorlar ve onları sürece katılmaya zorlamıyorlar.
Eğer karışmazlarsa, ne istediklerini bilemezsiniz. Ne istediklerini bilmiyorsanız, teslim edemezsiniz. Eğer teslim etmezsen, mutsuz olacaklar. Bu bir başarısızlık. Ayrıca, paydaşlarınızı dahil etmiyorsanız, yazılım mühendisliği gerçeği ile bağlantısı kesilir, yani sorunlarınızı anlamadıkları anlamına gelir. Eğer sık sık sizinle iletişim halindeyse, başa çıkmanız gerekenleri daha iyi anlarlar. Onlara “küçük” bir kahkaha özelliğinin aylar alacağını söylerken daha fazla anlayacaklar. Planlamanıza daha iyi güvenebilirler çünkü onu inşa etmeye yardımcı oldular. Bir proje, sadece "başlangıçtaki özellikler, testler, teslimat sonunda" ile başaramaz. Sadece asla yapmaz. Şartnamede istenenleri iletebilirsiniz,
En önemlisi, bir retrospektif yapmak ve ego-az olduğundan ve bir suçlama oyunu olduğundan emin olun. Sadece sorunları tanımla.
Günlerce kod yazdığınız şey ekibiniz tarafından reddedildi
Bu durumda oldum. Yine, bunu hafifletmek için yapabilecekleriniz dışında:
- Daha sonra SCM'de tutun.
- Belki küçük parçalar ve parçalar aşamalı olarak büyük bir yeniden düzenleme yapmak yerine ana kod tabanına yerleştirmeye çalışın.
Ancak bu tür bir durumu önlemek için yapabileceğiniz şeyler var:
- Neden oldu Reddetmenin sebebi nedir?
- Bunu gördüğümde çoğu zaman (ve bu benim için de geçerliydi), geliştiricinin yalnız başına ya da inek-çocuk kodlama modunda gittiği ve hiç istenmediği şeyleri ürettiği anlamına geliyor. İş gereksiniminden gelmeyen kod, süslü ve "daha iyi" olabilir, ancak genellikle zaman ve para kaybı olur. Artı, tekrar test etmeniz gerekeceği için entegre ederseniz daha da pahalıya mal olur. Sana para veren insanlar gibi düşün: o seviyede de verimli olmalısın.
- Üretilen yazılımın kalitesi yeterli miydi? Şirketinizde faaliyet gösteren standartlara ve sözleşmelere uygun mu?
- Yöneticileri bu konuda yönlendirmek için periyodik olarak (ve sık sık!) Rapor ettiniz mi? Bazen ekibin diğer geliştiricileriyle takas yaptınız mı? Değilse, bunun hakkında hiçbir şey bilmiyorlarsa, şimdi değerlendirmeleri ve incelemeleri büyük bir zaman maliyeti olacaktır. Sonunda aynı zamanda hesap değil. Her zaman kiralık dairenizi temizlemeye çalışmak ve daha sonra sadece taşındığınızda temizlemeye çalışmak gibi: Bu berbat bir iş, çok yorucu, düzenli olarak yapılmasından daha zor ve sık sık yapılmayacak sağ.
- Ürün testleri yaptınız mı? Birim testleri? Entegrasyon testleri?
- Kodunuz SCM'de düzenli olarak kontrol edildi mi? Farklı bir dalda mıydı? Farklı bir şubeye mi ihtiyacı vardı yoksa bagajda mı yapılmış olabilir? Kabul kodunu ertelemek genellikle kötü bir işarettir. Belli ki bazen yapmaya kararlısın, ama sadece kendini ayağından vuruyorsun.
Şirketinizdeki fikirlerinizi kimse dinlemiyor
Burada 2 seçenek var ve ikisine de bakacağız:
- Fikirlerin kötüydü.
- Fikirlerin iyiydi.
Kötü olduklarını varsaymaya başlayalım (yine, bunun üzerinde kendi kendine düşünerek ve fikrinizi kabul etmenin sadece düz kötü olduğunu kabul etmek zor olabilir, biliyorum). Bunu değiştirmek için ne yaparsın?
- Neden bu fikri buldun? Ne var mantık ? Fikrinizin masaya getirmeye çalıştığı şeye gerçek bir ihtiyaç var mı?
- Bu fikir nasıl aklına geldi? Kendi kendine yaptın mı? Paylaştın mı Beyin fırtınası? Plan? Prototip? (bunları doğru sırayla yapın. Yolda başarısız olursa, o zaman fikri atın, devam etmeyin. Veya en azından çalışma programınıza göre değil.)
Fikirler sadece fikirlerdir. Onlara sadece fikir olarak öneriyor ve reddedilirse, neden bu konuda kendini kötü hissettiğini anlamıyorum. Bununla birlikte, kimseye haber vermeden onlara karşı davranırsanız ve SONRA sadece fikirlerinizi iletir ve reddedilirse, açıkça boşa harcanan zamandaki hüsranı hissediyorum. Ve yöneticileriniz de yapıyor!
Fikirlerin iyi olduğunu varsayarsak:
- Sunumun iyi miydi?
- Sunumu sunma şekliniz iyi miydi? (: Biz huysuz, konum Ben bahsettiğimi biliyorum geliştirici olarak çalışıyorum kibirli , bilgiçlik taslayan her zaman doğru olan pide ve kiminle bu kadar çalışmak zor sıklıkla nedeniyle bizim orantısız egoları ).
- Uygulamak için bir planın var mı? Maliyet ve zaman hakkında düşündün mü? Kullanıcılara / müşterilere nasıl fayda sağladığını düşündünüz mü? Satışları nasıl etkilediğini düşündünüz mü? Bu fikir üzerinde çalışmanın diğer projeleri ve öncelikleri nasıl etkileyebileceğini düşündünüz mü? Bana “neden bütün bunları yapmalıyım, yöneticilerimin ve pazarlama veya satış ekiplerinin işi?” Diyeceksiniz. Şu an hariç, tüm işlerinin bir bölümünü yapmaya çalışıyorsun.
Takımınıza zorla girdiğiniz tasarım deseni karışıklık yarattı
- Deseni neden tanıttınız?
- Bir karmaşa yarattıysa, muhtemelen ya:
- doğru model değildi
- doğru uygulanmadı
- doğru entegre edilmedi.
- Bunu nasıl tanıttınız? “Dağınıklık” halini tam olarak nasıl tanımlarsınız?
- daha az okunabilir kod mu?
- daha az bakım gerektirebilir mi?
- yapılar bozuldu?
- Farklı "karışıklık" türleri vardır. Karışıklık bilerek edilir orada başarısızlık olduğunu bilmek yardımcı olabilir ve bu tasarım deseninin hatamdı eğer.
Ayrıca, yaklaşımın kendisinden biraz şaşırdım. Aslında tasarım modelinin tanıtılması için zorlamak zorunda kaldınız mı? Bu oldukça garip görünüyor. Bir kalıp zaten var ya da kalıbınıza göre çözümünüzün bir kısmını yeniden canlandırmanız gerekiyor. Sen yok itin (insanlar gibi bir çerçeve veya teknoloji benimsenmesi olur senin gibi itti insanlar yazabilmek için bastırıyor başlamadan gibi artık her yerde XML olması gerçekten zor ve HTML5 büyük parlak harflerle kendi ürün kapağında).
Neden zorlamak zorundaydın? Neden direnç vardı? Belki de haklıydı.
Bu özel kalıbın kod tabanınızı önemli ölçüde geliştirmeye yardımcı olabileceğine dair örnekler verebildiniz mi (örneğin, Kalıplara Yeniden Düzenleme örneği ile eşleştirerek ).
Tamamen konu dışı not ama soruyu sorarken ilk olarak yazılım hatalarına atıfta bulunduğumu düşündüğümde düşündüğüm ilk konu budur. bileşenler. Belli ki garip ve kirli bir kesmek gibi görünebilir (ve gerçekten öyle), ancak ismin kendisi o kadar mükemmeldi ki, bir başarısızlıkla başa çıkmak için oldukça havalı bir yol için hepimiz için teşekkür ederiz! :)