William Pietri'nin cevabını çok beğendim (+1), ancak buna eklenmesi gerektiğine inanıyorum. Sistemler ile kastettiğinizin yalnızca yazılımdan oluştuğunu varsayarsak.
Ama etine girmeden önce yardım edecek bir kitap bilmiyorum. Bundan sonra, deneyimlerden öğrendim (William'ın yaptığı üç nokta).
Bahsettiğiniz şey en az dört geniş rolde uzanıyor. Bazen küçük veya orta ölçekli projeler için bir kişi tüm bu rolleri doldurabilir, ancak büyük projelere başladığınızda bu rolleri en azından bir şekilde ayırmanız gerekir. Herhangi birinin anlamlı bir şekilde uzman olması herkes için zordur.
İş analisti
Müşteriyle konuşan ve gereksinimlerini bir mimarın anlayabileceği bir şeye çeviren kişi budur. Temel olarak uygun şekilde formüle edilmiş gereksinimlerin bir listesi. Bu bariz fonksiyonel gereksinimleri (bu sistem ne sunmalıdır?), Fakat aynı zamanda işlevsel olmayan gereksinimleri de (sistemin yerine getirmesi gereken genel özellikler nelerdir? Bu güvenlik, güvenilirlik, kullanılabilirlik, esneklik, kapasite, performans, sağlamlık ve kullanıcı açısından bu gibi diğer gereksinimler).
Sistemin yapması gereken ilk geçiş budur, ciddi düşünmenin başlangıcıdır.
Sistem mimarı
Bu kişi, içinde çalışabileceği üst düzey teknik çerçeve üretir. Anahat maç planı verir. Genel araçlar, teknikler, yapılar. Tüm sistemi daha küçük parçalara ayırırlar, birbirleriyle nasıl uyum sağlarlar, dış dünyayla nasıl uyum sağlarlar ...
Bu, düşünülmesi gereken şeyleri pek çok açıdan iyileştirmeye yardımcı olur. Bu aşamada, iş analisti tarafından yazılan gereksinimlerle ilgili sorunlar sıklıkla bulunacaktır. Ne istediklerine dair anlayışlarını ve ifadelerini geliştirmek için bazı iterasyonlar için onlara geri dönün.
Sistem tasarımcısı
Bu rol, hepsini nasıl çalıştıracağınızla ilgilidir. Bu tek kişilik bir gösteriden daha fazla takım çalışması olabilir. Ancak, tüm sistem tasarımını denetlemek için muhtemelen bir lider tasarımcı var. Bu kişi detayı araştırmalı ve mimarın görüşünün gerçekten inşa edilebilen bir şey olduğundan emin olmalıdır.
Sistem mimarisinin ve dolayısıyla potansiyel olarak iş analizinin daha da rafine edilmesini bekleyin.
Test yöneticisi
Bu rol sıklıkla unutulur. Ama günün sonunda test edemezseniz, onu inşa edebileceğinizi nasıl kanıtlayabilirsiniz? Tüm aşamaların sonuçlarının gözden geçirilmesi gerekir: herhangi bir kod yazılmadan önce, eksiklikleri vurgulayabilecek ve bu nedenle erken düzeltmeleri mümkün kılacak testlerde yetkin bir kişi tarafından iş analizi, mimari ve tasarım.
Bu kısa bir özet.
Bu adamlar / kızlar, zincirdeki değirmen insanlarının ne hakkında düşünülmesi gerektiğini düşünmek için sadece genel koşuştur.
Büyük bankacılık veya uzay uygulamaları gibi karmaşık projeler için sadece iki örnek almak (yüzlerce ila binlerce işgünü düşünün), her aşamada projeleri gözden geçirme ve destekleme olarak adlandırdığımız birçok konu uzmanı var. Bu roller güvenlik analizi, sistem boyutlandırma, kapasite, performans, veritabanları, kümeleme ve hassas iş alanları da dahil olmak üzere bu gibi dar uzmanlık alanlarını içerir. Rollerin çeşitliliği, sistemlerin büyüklüğüne ve karmaşıklığına bağlıdır.
Bütün bunları söylemek denemek ve bilmemelisiniz, olmaz. Bununla birlikte, genel resmi kavrayabilir ve küçük projelerde, büyük projelere göre çok daha fazlasını inceleyebilirsiniz, çünkü karmaşıklık düzeyi daha yuvarlak olmanıza izin verir.
Sistemleri nasıl tasarlayacağınızı bilmek istiyorsanız, kutunun dışında düşünerek soru sormaya başlamanız gerekir. Kendinizi müşterinin yerine koyun ve neyin yanlış gidebileceğini, neyin test edilmesi gerektiğini düşünmeye çalışın. Ardından gerçek bir müşteriyle bir araya gelin ve ihtiyaç duydukları sistemin kapsamlarını ve sınırlarını açıklamaya itin. Ayrıca 'müşteri' dediğimde bunun çok farklı insanları kapsadığını anlamalısınız. Sistemin her gün yaptığı gibi yapmak için kullanan kişi var. Operatör, teknik destek, rapora veya başka bir şeye ihtiyacı olan yönetici, denetçi, altyapı ekibi, bunun için ödeme yapan paydaş, ihtiyaç duyulan kalite yöneticisi sisteminizi test etmek anlamına geliyor ... Hepsine sorun (ve onlar bir kişidir, tüm bu şapkaları birer birer takmalarını isteyin), bu yüzden onlara neye ihtiyaç duyduklarını sorun ve sistem gereksinimlerinizin ne olduğunu bilmeye başlayabilirsiniz. Oradan mimariyi ve oradan tasarımı türetebilirsiniz.
Karmaşık sistemler için (ister yazılım ister donanımla en genel anlamda bütünleşmek olsun), yukarıda listelediğim dört rolün her biri için sadece bir kişi yeterli değildir, aynı zamanda sistemin ne tanımlaması gerektiğini bile tanımlamanız gerekir. diğer evreleri bir kenara bırakın.
HPH, asm.