Vezir Wiki

Proje Ekibinin Oluşturulması

Modified: Thu, 10 Apr 2008 11:17 by admin - Categorized as: Vezir
Aşağıdaki bölümde bir proje ekibinde olması gereken iş sorumluluklarını ve tanımlarını yazmaya çalıştım.

Bir proje ekibinin birbirini tanıması için en azından 2 ay birlikte geçirmeleri gerekir. Bu 2 ay zarfında her kes birbirinin psikolojik yapısını, ailesini, yaşam tarzını, değerlerini, önem verdiği şeyleri, dinlediği müzik türünü, çaldığı enstrümanı, ne kadar bilgisayar bilgisi olduğunu öğrenmelidir. Bu liste oldukça fazla uzatılabilir. İlk aşamada proje ekibi için iç-örütbağ üzerinde bir web sitesi hazırlayıp, temel olarak özgeçmiş bilgilerinden başlayıp yayınlamak gerekir. Böylece ekip içerisinde kim ne kadar, ne biliyor, daha önce nerelerde calışmış gibi bilgiler herkese ulaşır ve birbirini tanır. Daha sonra proje ekibinin görevlerini ve bu görevlerin kimler tarafından üstlenildiğini belirten bilgilerde yer almalıdır. Ekibe verilen sorumluluklar yerine getirilmeye başlandıkça bu bilgiler güncellenir ve herkesin ne kadar iş yaptığıda gözler önüne serilir. Sanırım oldukça şeffaf bir yöntem oldu bu ama birbirimizden saklayacak neyimiz olacak ki. Ekip ilişkilerini geliştirecek bir kaç aktiviteden burada bahsetmek istiyorum.

  • Sabah çayı: Her ekip ayda bir defa içlerinden seçecekleri 3 kişinin hazırlayacağı bir sofra ile 2 saat sürecek bir sabah çayı düzenleyebilir. Yiyecekler için para tüm ekipten toplanır. Bu sofrada genelde kahvaltı amaçlı yiyecekler bulunur ve sofra akşam iş çıkışına kadar ortada durur. Herkes kendi bardağı ve çayı ile katılır. Ekip içindeki ilişkileri arttırmak ve iş dışında başka konuları konuşmak için ortam oluşturmalıdır. Gün sonunda sofrayı kuran kaldırır.

  • Genel sabah çayı: Gene aynı formatta bu sefer firma genelinde düzenlenir. Firmaya yeni katılan insanlar takdim edilir, yeni başlayan projelerden, başarılan işlerden, başarılması gereken hedeflerden bahsedilir. Sunumlar hazırlanarak firma genelindeki bilgi paylaşımının en üst seviyeye çıkarılması sağlanır.

  • Bazı yarışmalar açıp kazananlara ödül verilebilir. Verilen ödüllerin ve yarışmaların gene yapılan işle alakalı olması gerekir.

  • Son teknolojilerin tartışıldığı bir ortamda hazırlanmalıdır. Bir araştırma geliştirme laboratuarı bu amaç için uygun olabilir.

  • Bir aktivite kulübü oluşturarak firma içinde düzenlenecek yemek, piknik, mangal partileri gibi olayları organize etmek te iyi bir fikir olabilir.

  • Piyasa takibi ve haberleri öğrenmek için bilgisayar dergilerine abone olunabilir. Her ay alınacak dergiler herkesin ulaşabileceği bir yerde durmalıdır. Bir kütüphane oluşturulup çeşitli yayınlardan ve kitaplardan herkesin yararlanması sağlanmalıdır.

Şimdi bir proje ekibindeki sorumluluklara göz atalım.

Edit

Sistem sorumlusu

Sistem sorumlusu firmanın ihtiyacına bağlı olarak kullanılacak tüm yazılım ve donanım’ın kurulumu ve bakımı konusunda bilgili olmalı yada öğrenmeye ve araştırmaya açık olmalıdır. Genel elektrik işlerinden anlamalı, lehim yapmak, kablo çekmek gibi işleri bilmesi gerekir. Ayrıca Microsoft Visio gibi bir programı bilmesi ve yerleşim düzeni ve kablolama için gerekli şemaları çizebiliyor olması gerekir.

Eğer sistemde bir değişikliğe gidilecekse ve sistem sorumlusunun yeni sistem hakkındaki bilgisi az ise, yeterli eğitim verilmeli ve ancak sistem sorumlusu kendini yeterli gördüğü zaman sistem değiştirme işlemlerine başlanmalıdır.

Sistem sorumlusu e-mektup, örütbağ gibi kullanıcı haklarını firmanın prensiplerine göre ayarlamalıdır. Sınırlı bir internet bağlantısı ve sıkı virüs tarama programlarıyla denetlenen bir e-mektup altyapısını kurup yönetebilecek seviyede olmalıdır. Her BT çalışanı ilk 4 yıldan sonra alıştığı, bildiği yazılımları kurup kullanmak ister. Bu seviyeye gelmiş bir sistem sorumlusu da kullanılacak yazılım ve donanım hakkında fikir belirtebilmeli ve rahatça çalışabileceği bir ortam yaratılmalıdır. Çalışanların fikrini almak ve bu bilgileri kullanmak, bir sürü paranızı yutup hiç bir iş yapmayan BT danışmanlarından daha etkili ve ucuz bir yöntem olacaktır.

Güvenlik ile ilgili konularda piyasa genelinde kullanılan yazılım ve donanımları bilmeside gerekir. Firewall tabir edilen güvenlik yazılımlarını çok iyi bilmesi gerekir. Yapılan projelerin yedeklenmesi ve saklanması konularında titiz çalışmalı, sistem göçmeleri halinde en kısa zamanda bir önceki yedeklere dönecek kadar bilgiye sahip olması gerekir.

Kesintisiz güç kaynakları ve kullanımı hakkında bilgiye sahip olmalı, sağlayıcı firma ile ilişkileri sağlam tutmalıdır. Servis zamanlarında yada arıza hallerinde sağlayıcı firma tarafından yapılan her işlem kayıt edilmeli ve arşivlenmelidir. Kesintisiz güç kaynağına ait prizlerin diğer prizlerden farklı olması ve şarj cihazları veya elektrik süpürgesi gibi kesintisiz güç kaynağına zarar verebilecek cihazların bu prizlerden kullanılmamasına dikkat etmelidir.

Edit

Proje lideri

Proje liderinin firma içi tüm operasyonlar ve projesi yapılan iş hakkında geniş bilgiye sahip olması gerekir. Tercihen iş ile ilgili sektörden gelmiş ve Bilgi Teknolojileri Yönetimi hakkında bilgisi olması istenir. Eğer böyle birisi bulunamaz ise tüm analiz aşamalarında bulunacak ve işi en ince ayrıntısına kadar anlayabilecek bir kimse olmalıdır. Proje Lideri ekibi bir arada tutmak ve zaman çizelgelerine uyulması için gerekli motivasyonu sağlayacak sosyal bir insan olmalıdır. Ayrıca Yönetim Kurulu ile proje arasındaki bilgi alış-verişini de sağlar. Bütçe konularında düzenlemeler ve maliyet analizlari konusunda yönetim kuruluna bilgi ve tavsiye verir.

Proje Sözlüğünün oluşturulmasında görev alır ve proje genelinde kullanılan terimlerin herkes tarafından öğrenilmesine dikkat eder. İyi bir ekip iltişimi için önem verilmesi gereken bir konudur.

Yazılacak modüllerin ve arayüzlerin zorluk derecelerine göre zamanlarını tayin eder ve proje planı içinde yayınlar. Bu zamanların tayini sırasında proje ekibi ve yazılım uzmanları ile beraber çalışır. Onların fikirlerini dinler ve tavsiyeleri göz önünde bulundurur. Proje Lideri yeni gelenlere bilgi akışının sağlanması ve ekip içindeki yerlerini kolayca bulabilmeleri için de yardımda bulunur. Yeni gelenler için hazırlanacak dosyada, gerekli her şey olmalı, işe başlarken getirecekleri evraklardan, proje standartlarına ve bina içinde uyulması gereken kurallara kadar her şey maddeler halinde bulunmalıdır. Firma ahlaki, kuralları, calışma prensipleri, yönetim şeması, iş tanımı vb. gibi her türlü bilgi düzgün biçimde aktarılmalıdır. Bu tür bilgiler güncellendiğinde tüm çalışanların bunları öğrenmesi sağlanır.

Yeni yazılım uzmanlarına iş atanırken daha yeni oldukları düşünülerek atanmalı ve öncelikle ortama uyum sağlamaları ve projesi yapılan işi öğrenmeleri için yeterli zaman tanınmalıdır. Modül tabanlı geliştirme yapılıyorsa basit modüllerden işler verilerek kişinin işe alışması sağlanır.

Proje Lideri yazılım aracı olarak kullanılan araçları ve dilleri de bilmelidir. Böylece maliyet analizi ve teslimat günlerini belirlerken gerçekçi tahminlerde bulunabilir. Eğer proje lideri firma içinden yetişmiş ve yazılım uzmanlığından yükselmiş ise daha da iyi olur. Alt yapıları ve firma ahlakını çok iyi bildiği için, sadece yönetim ile ilgili bir eğitim alması yeterli olacaktır.

Diğer proje ekipleri ile bilgi alışverişini sağlar ve kontrol altında tutar. Diğer ekiplerin yöneticileri ile koordineli çalışır. Kendi projesinin teslim zamanı diğer projelerdeki modüllere dayanıyorsa bu uzantılarıda kontrol eder ve ekibine bildirir.

Projedeki her türlü riski takip eder ve kaynaklarını ona göre tahsis eder. Riskleri belgeleyerek çözümler için onaya sunar. Onay sonucu çıkan kararları işleyerek sonuçları tekrar yönetim kuruluna bildirir.

Edit

Görev süreçlerinin tayin edilmesi

Atanacak görevlerin alacağı zaman belirlenirken PERT (Project Evaluation Review Technique, Proje Değerlendirmesi Teftiş Tekniği) ortalamasından yola çıkılabilir. Proje Ekibine görevler atanırken 3 farklı zaman tayini yapılır. Bunlar “En İyi”, “En Kötü” ve “Normal Bitiş” zamanlarıdır. Görev atanan kişinin deneyimlerinden yararlanılarak tayin edilir. Aşağıdaki formül bu verileri kullanarak görev zamanını belirlemek amacı ile kullanılır.

GZ = (Eİ + 4NB + EK) / 6

GZ = Görev Zamanı

Eİ = En iyi durumda görevin alacağı zaman

NB = Normal bitiş süresi

EK = En kötü durumda görevin alacağı zaman

Bu formülden elde edilen GZ değeri Microsoft Project™ üzerinde görevlerin süreçlerinin tayin edilmesi amacı ile kullanılır.

Edit

Analiz ekibi

Sürekli müşteri ile yüz yüze toplantılar yaparak iş akışının çok iyi bir biçimde aktarılmasından sorumludur. Yazılım ekibi ile müşteri arasındaki problemlere çözüm bulmak için uğraşır. Analiz toplantılarında İş Senaryolarını ortaya çıkararak detaylandırılmasında görev alır.

Yazılım ekibinden gelecek her türlü soruyu cevaplamaya çalışır. Yazılım ekibi senaryolar hakkındaki sorularını merkezi bir dosyada tutar. Haftada bir kere analiz ekibi ile yapılacak toplantı ile bu sorulara cevap bulmaya yada ortaya çıkan istekler doğrultusunda senaryolarda değişiklik yapma yoluna gidebilir.

Müşteri isteklerinin tam olarak anlaşılması ve modellenmesi için hazır formlar ve şablonlar kullanır. Tüm toplantı notları belli düzenler içinde veya tutanak biçiminde tutulur ve saklanır. Kağıt kullanmayı azaltmayı amaçladığımıza göre 10 parmak yazabilen veya steno bilen bir eleman toplantı notlarını hızlı ve eksiksiz biçimde tutmalıdır. Daha sonra bunların belgeleyerek proje ekibine ulaştırılmasını da sağlar.

Yazılım ve dizayn ekibi ile birlikte çalışarak müşteri isteklerinin tam olarak modellenmesine ve yazılım ekibi tarafından iyice kavranmasına dikkat eder. Ortaya çıkan modellerin doğruluğunu senaryolar ile onaylar ve yanlış yerlerin değişmesi için öneride bulunur. Bu önerilerin ve değişimlerin yapılıp yapılmadığını kontrol eder.

Ortaya çıkan ürünün, müşteri öncesi testlerin yapar ve senaryolar yolu ile doğruluğunu ölçer. İş akışı içinde mantıksal olmayan yerleri ve müşteri isteklerine uymayan kısımları tesbit eder ve değişmesi için önerilerde bulunur.

Ekran dizaynları ve akışları için de önerilerde bulunabilir. Fakat kullanılan yazılım aracının ve dilin kapasitesini çok iyi biliyor olması gerekir.

Tüm analiz ekibinin, analiz metodları, UML, OOA gibi konularda bilgi sahibi olması gerekir. UML ve OOA konularına yeni başlayan firmalarda ise bu konularda eğitim verebilecek seviyede bir elemanın analiz toplantılarına yön vermesi ve yeni gelenleri eğitmesi gerekir. En iyi eğitimde müşteri ile olan toplantılarda olur. Yeni gelenler bu toplantılara katılarak hem analizin nasıl yapıldığını hemde UML ve OOA konularının nasıl uygulandığını görürler.

Edit

Tasarım ekibi

Dizayn ekibi, analiz ekibinin ürettiği senaryoları UML kullanarak modeller ve analizi yapılan müşteri gereksinimlerinin elle tutulur bir kopyasını ortaya çıkartır. Ortaya çıkartılan modellerin bakımından da sorumludur. Dizayn ekibi UML tabanlı bir araç kullanıyorsa, modelleri iç-örütbağı üzerinde yayınlar ve analiz ekibinin test etmesini sağlar. Eğer bir UML aracı yoksa modeller kağıtlara çizilerek duvarlara asılır. Bu duvara model duvarı (wonderwall, modeling wall) denir ve herkesin görebileceği bir duvar seçilir. Model Duvarı ekip içindeki iletişimi arttırmak için çok önemlidir.

Modellerden veri tabanı ve sınıf şemalarını oluşturarak ilk veritabanı modellerini ortaya çıkarır ve yazılım uzmanları ile analiz ekibinin test etmesini sağlar. Testler sonucu oluşacak değişiklikleri uygular ve önerileri dikkate alır.

Veritabanı modeli ortaya çıkmaya başladıkça oluşan sahaların ne işe yaradığını gösteren veri sözlüğünün oluşturulmasını sağlar. Bu sözlükte veritabanında bulunan her sahanın açıklaması ve örnekleri bulunur. Sahalar için bulunan iş kurallarına da referans verilir. Örneğin belli sahalara belli formatlarda veri girilmesi gerekebilir. Saha 15 karakterlik bir tekst katarıdır fakat girilen verinin 100-110-111-121 şeklinde olması gerekir. Bu gibi durumlarda ilgili iş kuralı numarası ile belirtilmeli ve bir “hyperlink” ile bağlanmalıdır.

Modelleme sonucu ortaya çıkan modülleri teste sunar ve gerçekten gerekli olup olmadıklarını bulmaya çalışır. Analiz ekibi ve yazılım ekibi modül testlerini ortak yapar. Modelleme, süreci boyunca değişime açık bir konudur ve genelde ilk tesbit edilen modüllerin %60’ı ortadan kalkar. Modül normalizasyon toplantıları, sistem gereksinimleri ve müşteri istekleri karşılaştırılarak yapılır. Sistem gereksinimi, ürünün çalışacağı sistem düşünülerek ne kadar cpu, ne kadar hafıza, ne kadar disk alanına ihtiyacınız olduğudur. Modüllerin gereksiz yere şişmemesi ve çalışmaya başladığında performans sorunlarına yol açmaması için yapılması gereken bir analizdir.

İş Akışı Senaryo (Sequence) Şemalarının oluşturulmasına öncülük eder ve tüm proje ekibinin bu genel akışlardan haberdar olmasını sağlar. Projesi yapılan işi tam olarak anlayabilmek ve geliştirmeler için fikir yürütebilmek amacıyla bu şemaların çok iyi kavranması ve sindirilmesi gerekir. Önce genel iş akışlarından başlayıp detaylandırarak gitmek mantık olarak olayların anlaşılmasını kolaylaştırır. Mesela yazılım ekibi detay akışları incelerken, yönetim sadece genel akışları kontrol edebilir. Böylece yönetim işine yaramayacak pek çok bilgiden kendini soyutlamış olacaktır.

İlk sürümde yer alacak modül ve servislerin belirlenmesi amacı ile tüm modülleri öncelik sırasına dizer. Projenin minimum kapasite ile çalışacak biçimde ilk sürümünü verebilmesi amacı ile planlama yapar ve bu modüller üzerine yoğunlaşılmasını sağlar.

Modüllerin sunacağı servislerin belgelendirilmesi için bir şablon belirler ve her servis için giriş/çıkışların ve servisin yaptığı işin içeriğini ortaya koyar. Daha sonra yazılım ekibi bu belgelerde anlatılan servisleri hayata geçirecektir. Servis belgelerinda kullanılan dil herkesin anlayabileceği bir şekilde olmalı ve okuyan yazılım uzmanı bildiği yazılım dili ile uygulayabilmelidir. Servis belgesinin kullanılan yazılım araçlarından ve dillerinden bağımsız olması gerekir. Yani servisin yaptığı işler yazıya dökülürken yalın ve düzgün bir Türkçe ile anlatım yapılmalıdır.

Ortaya çıkan servislerin hangi senaryolar ile test edileceğini de maddeler halinde belirtir. Yazılım uzmanları bu bilgiyi kullanarak Ünite Testi için gerekli veriyi hazırlayacaktır. Veri ile çelişen durumlarda yada test senaryosunun gerçeklenemeyeği durumlarda, konu iyice tartışılmalı ve veritabanı ile program dizaynları gözden geçirilmelidir. Zira bu tür bir çelişme dizaynlarda bir değişikliğe yol açabilir.

Edit

Yazılım ekibi

Firmanızın kalbi, modelleri hayata geçirerek gerçekleyen ve elle tutulur (göreceli, ancak tıkıza yazarsak olabilir), gözle görülür yazılımlara dönüştüren ekibiniz. Yazılım ekibinin görevlerine bir bakalım.

Yazılım uzmanları dizayn ekibinin oluşturduğu her türlü ürünü okuyarak öğrenmeli ve aklına takılan soruları rahatça dizayn ekibine yöneltebilmelidir. Analiz aşamalarında bulunmalı ve projesi yapılan işi en derin yönleriyle öğrenmelidir. Gerektiğinde müşteri tarafında işi öğrenmek için çalışması sağlanmalıdır yada eğitim günleri ile tüm işi öğrenmesi sağlanır. Ortaya çıkan modüllerin servislerini yazarak işe başlar. Gerektiğinde değişiklikler için fikir sunar. Küçük modüllere ayrılmış bir projede her yazılım uzmanı bir modülün sorumluluğunu alabilir. Modüller arası bağlantıları gerçekleştirir. Servislerin tek tek testini yapar. Test için gerekli veriyi hazırlar ve veritabanına yükler. Dizayn ekibinin belirlediği test senaryolarının ayrıntılarını yazar ve uygular. Servisleri kodlamaya başlamadan evvel test verileri ve yöntemi hazır olmalıdır. Kod içinde kullandığı yorum satırları ile kodun kendini anlatabilmesini sağlar. Karmaşık fonksiyonları yada tekrar eden işlemleri bölerek ufak parçalar halinde yazmalıdır. Tüm bölünen bu parçaların nasıl çalıştığını belgelendirerek diğer kişilerin anlamasını kolaylaştırır. Belgelendirme işi uzun süreceğinden kod içine yazılacak yorum satırları da yeterli olabilir. Zaten ana servis ayrıntıları ile yazıya dökülmüştür. Kodlama aşamasında ortaya çıkan ufak fonksiyonlar yorum satırları ile anlaşılacak biçimde detaylandırılır. Her yazılan servisin ve onun kullandığı alt fonksiyonların girdi ve çıktıları, bunların biçimleri, diğer hangi servisler tarafından çağırıldığı, hata durumlarında yarattığı hata mesajları ve kodları ayrıntılı biçimde yazılmalıdır. Modül tabanlı geliştirme konusunda bunların örneklerini göreceksiniz.

Yazılım uzmanı kullandığı cihazlara karşı sorumluluk sahibi olmalıdır. Firma kaynaklarını kötü amaçlarla kullanmamalı, piyasada firmanın yada kendisinin ismini kötü olarak duyuracak davranışlardan kaçınmalıdır. Masasının ve kullandığı cihazların temizliğinden sorumludur. Arıza hallerinde hemen sistem sorumlusunu konudan haberdar eder. Günlük tutarak yaptığı işleri yazar veya yapamadığı işlerin nedenlerini sıralar. Performans değerlendirme zamanlarında bu günlükten yararlanılır. Firmanın kurallarına göre kendini yeni sahalarda geliştirmelidir. İşini zamanında bitirebilmek için planlamaya vakit ayırması gerekir. Proje genel planından ve tüm servislerin teslim zamanlarından haberdar olmalıdır. Yaptığı planları yöneticisi ile paylaşmalı ve fikir almalıdır. Gerekiyorsa planlarını buna göre değiştirmelidir.

Yazılım uzmanı üretilen her türlü kodun ve belgenin firma dışına çıkmaması için bilinç sahibi olması gerekir. Yıllar boyunca emek verdiğiniz yazılımınızın 4 milyona yerlerde satıldığını görmek pek iyi olmasa gerek. Bu konuda pek çok önlem alabilirsiniz fakat en önemlisi ekibin bilinçlendirilmesi ve eğer ihtiyaç varsa, bindikleri dalı kesmemeleri için eğitilmeleri gerekir.

Edit

Müşteri temsilcisi

Ürününüzü pazarlayacağınız sektörden yada firmadan atanacak 2 kişi sürekli yazılım geliştirme süreçlerinde bulunacak ve aşamalara yön vererek kaydedecektir. Müşteri ile yapılan analiz toplantılarında köprü görevi üstlenecek ve yanlış anlamaları ortadan kaldıracaktır. Müşterinin ne istedigini tam olarak, dizayn ve yazılım ekibine aktarılmasında kilit rol oynayacaktır. Her toplantıdan sonra, tartışılan gündemi ve analizleri belgelendirecektir. Bu belgelerin Tüm proje ekibine ayrım yapmadan dağıtılmasından da sorumludur.

Müşteri temsilcileri yaptıkları işi çok iyi bildikleri için kendi işleri ve hizmet sundukları sektörler arasındaki akışı en iyi onlar anlatabilir. Analitik düşünce yapısına sahip olmalı ve problem çözme becerileri bulunmalıdır. Bilgisayar nedir, yazılım nedir ve bu yazılımdan neler bekliyorlar gibi konularda bilgi sahibi olmaları gerekir. Mühendis yada yazılımcı olmalarına gerek yoktur. Eğer ilk defa bu tür bir işde çalışacaklarsa, ilişkili veri tabanı mantığı, kullanılacak işletim sistemlerinin genel yapıları, kullanılan yazılım araçların işlevselliği, firma içi standartlar ve kurallar hakkında bilgilendirilmelidirler. Firmadaki teknik alt yapı ve haberleşme metodları hakkında da bilgi verilmelidir. Giriş seviyesi UML modelleme konuları öğretilmeli ve analizlerde kullanmaları sağlanmalıdır. Ürün ortaya çıktıktan sonra iş akışı testlerini yapar ve hesaplamaların doğruluğunu kontrol eder. Ekranların kullanılırlığını ve akışları konusunda genel testler yapar. Test ekibine doğrudan yardımcı olur. Proje başında dizayn ve analiz ekibine, ortasında yazılım ekibine ve sonunda da test ekibine yardımcı olur.

Edit

Test ekibi

Test ekibine geçmeden önce bu ekibin kullanacağı alt yapıdan biraz bahsedelim. Test ekibi testlere başladıktan sonra ortaya çıkacak hataları bir yerlere kaydetmelidir. Modül bazında kayıt edilmesi ve hatanın tam bir açıklaması ile ekran resimlerinin iliştirilmesi gerekir. Hatanın yazılım uzmanı tarafından tekrar edilebilmesi amacı ile kullanılan veride belirtilmelidir. Tüm bu verilerin kayıt edileceği bir ortam önceden hazırlanmalı yada satın alınmalıdır. Bu ortam ileride müşteri sorunlarına çözüm ararken de kullanılacağı için güvenilir, yüksek kapasitede çalışabilecek ve örütbağı izerinden ulaşılabilecek bir ürün olması gerekir.

Test ekibinin yapacağı testleri bir kaç sınıfa ayırabiliriz. Bunlar:

Edit

Servis testleri

Modül içinde barınan servislerin tek tek test edilmesi ve bu servislerin giriş ve çıkışları servis belgelerinden kontrol edilerek test edilir. Tüm sonuçlar, servis belgesindeki tahmin edilen sonuçlar ile karşılaştırılır ve uymayan durumlar tekrar gözden geçirilir. Verinin bütünlüğü genel amaçtır ve hesaplamalar ile veritabanı operasyonlarının gerçekleşip gerçekleşmediği tesbit edilmeye çalışılır. Edit

Modül testleri

Modüller arası ilişkiler gözden geçirilerek beraber çalışması umulan modüller birlikte test edilir. Bir modülün çıktıları başka bir modülün bir servisini tetikliyor olabilir. Bu tür tetiklemelerin oluşup oluşmadığı test edilir. Bu aşamada veri pek önemli değildir. Dikkat edilmesi gereken konu modüllerin birbirleri ile nasıl çalıştığı ve bir modülün çıktılarının bir diğer modül tarafından nasıl kullanıldığı ve doğru olarak veri akışının gerçekleşip gerçekleşmediği test edilir. Edit

İş akışı testleri

En uzun süren test budur. Servis ve Modül testlerinden başarı ile çıkmış modüllerin tüm sistem içinde nasıl davrandıkları ve ilk gerçek hayat testleri bu aşamada yapılır. İşin gerektirdiği biçimde ve Müşteri Temsilcisi tarafından yapılmalıdır. İş akışlarını çok iyi bilen Müşteri Temsilcileri tüm yazılımı bir bütün olarak ele alıp incelerler.

Örneğin bir hisse senedi alma işine bakalım. Müşteri aracı firmayı arayarak hesap bilgilerini ve şifresini doğruladıktan sonra almak istediği hisse senedini belirtir. Bu arada hattın diğer ucundaki personel müşterinin bilgilerine ulaşmış ve alım için gerekli ekranlara girmiştir. Müşteri satın almak istediği hisse senedini ve miktarını belirtir ve alım için gerekli talimatı verir. Personelimiz bu bilgileride alarak programa girer ve alım için son bir onaydan sonra alım tuşuna basar. Bundan sonra programımız alımı yapar, müşterinin banka hesabından ücreti düşer, ve hesapları günceller. Son durumu ekranda gösterir ve personelimizde bu son durumu telefondaki müşteriye söyler. Buraya kadar geçen tüm olaylarda programın nasıl kullanıldığını hayal edin. Tüm ekranları gözünüzde canlandırın. Kullanılacak modülleri bir sayalım, öncelikle müşteri modülü ile müşteri bilgilerine ulaştık, daha sonra alım/satım modülünden istenen hisse senedine ulaştık. Bu arada başka bir modül hisse senetlerinin fiyatlarını güncelledi. Müşterinin bankası ile bağlantı kuracak fon transferi modülüde para aktarımını gerçekleştirdi. Son olarak ta müşteri hesabını görüntüleyen Muhasebe modülü devreye girdi.

Bu tür iş akışları önceden Dizayn ekibi tarafından hazırlanmalıdır ve Servis Testleri sırasında belli parçaları yazılım uzmanları tarafından kullanılmalıdır. Analizler sırasında ortaya çıkan senaryo modelleride kullanılabilir. Test için gerekli verinin senaryolar halinde hazırlanması ve veritabanı uzmanları tarafından yüklenmesi gerekir.

Müsteriden iki kişinin teste yön vermesi de gerekebilir. Yarım gün calışacak iki görevli testlere farklı bir göz ile bakmayı sağlayacaktır. Müşterinin atayacaği iki kişi hem iş akışlarını hemde neler istediklerini bilecekler, ayrıca bu kişiler bizim test ekibini de eğiteceklerdir. Senaryoların genişlemesine yardımcı olacaklardır. Bu kişilerin zaman içerisinde belli bir döngüye girip test senaryolarına dar bir görüş açısı ile saplanmamaları için belli zamanlarda farklı kişiler ile değiştirilmeleri gerekir.

Edit

Eğitim ekibi

Eğitim ekibi firma içinde gerekecek her türlü eğitim gereksinimini karşılayacak biçimde olmalıdır. Firma içi eğitimler kadar dışarıdan da eğitim almak için gerekli organizasyonu yapar. Bu ekibin yapacağı işi bir kaç alt başlık altında incelersek:

  • Yazılım ekibinin egitilmesi
Yazılım ekibi için gerekecek eğitimleri belirleyecek ve alt yapısını hazırlayacaktır. Firma içi eğitimler dışında eğer gerekirse uzman eğitim firmalarından destek alması gerekebilir. Yazılım ekibinin çeşitli konularda sertifikalandırılması ve bu eğitimlerin güncel işlerde kullanılabilecek olmasına dikkat eder. Eğitim ekibi firma içinde kullanılan ürünlerden, yazılım araçlarından haberdar olmalı ve gerekli eğitimleri dizayn edebilmelidir. Eğitimin için kullanılacak bilgisayarları ve eğitim belgelerini hazırlamalıdır.
  • Pazarlama ekibinin egitilmesi
Pazarlama ekibini satışı yapılacak ürün konusunda bilgilendirmeli, rakipleri araştırarak zayıf yönlerini belirlemeli ve ürünün özelliklerini tamamı ile pazarlama ekibine öğretmelidir.
  • Belgelerin hazırlanması
Eğitimler için gerekecek her türlü belge ve program önceden hazırlanmalıdır. Standart haline gelmiş eğitimler ile yeni firmaya katılanlara verilecek eğitimler kitapçiklar halinde hazır olmalıdır. Firma ahlakını ve çalışma prensiplerini anlatan eğitimler çok önemlidir. Mezuniyetten sonra hayata atılan iş arkadaşlarıma planlı programlı ve prensipleri olan bir firmada çalışmalarını tavsiye ederim. Eğer işe girdiğinizin ikinci günü sizden bir şeyler üretmeniz isteniyorsa anlayın ki firma düzeni pek oturmamıştır ve sizden yapmanız istenen işler de yarın şekil değiştirecektir. Belirsizlikler içinde sürklenmektense bir an önce başka bir firma bulup geçiş yapmanız geleceğiniz için iyi olacaktır.
  • Eğitim odalarının hazırlanması
Eğitim odalarının düzeni ve kullanılacak bilgisayar ve beyaz tahtaların bakımı konularından sorumludurlar. Tüm ekipman kayıt altında tutulmalı ve her eğitimden sonra kontrol edilmelidir. Kayıplar yada yeni istekler yönetim kuruluna bildirilmelidir.
  • Ürün eğitimlerinin hazırlanması
Üretilen ürünün eğitim kitaplarını hazırlar, yeni güncellemeleri ve ekran değişikliklerini eğitim belgelerine yansıtır. Ürünün her majör sürümü ile birlikte eğitim kitaplarıda yenilenmelidir.

Edit

Pazarlama ekibi

Pazarlama ekibi en az yazılım ekibi kadar önemlidir. Hangisinin daha çok gerekli olduğuna değil birbirleri arasındaki haberleşmenin -firmanın geleceği için- nasıl olması gerektiğine odaklanmak gerekir. Çalıştığım firmalarda zaman zaman bu konuda tartışmalara tanık oldum. Fakat bilinmesi gerekir ki bu tür tartışmalar sadece firmanın kaynaklarını boşa kullanmaktır. Pazarlama ekibi müşteri pazarının belirlenmesi için çalışmalar yapar. Potansiyel müşterileri belirleyerek ziyaretlerde bulunur. Fuar veya sergi gibi etkinliklerde hem rakipler üzerine araştırma yapar hemde yeni müşteriler bulabilmek için çalışır. Sektör ile ilgili medyayı takip eder ve gerekli haberleri arşivleyerek firma içinde dağıtır. Rakiplerin neler yaptıklarını, ürünlerinde ne gibi özellikler olduğunu, hangi müşterilere satış yaptıklarını öğrenmeye çalışır. Rakiplerin satış fiyatları hakkında bilgi toplar ve tüm bilgiyi karşılaştırmalı tablolar halinde firma içinde yayınlar.

Reklamların hazırlanması için çalışır. Reklamların hangi dergilerde veya televizyonda hangi saatlerde çıkacağını belirler. Sektörü yakından takip etmek için medya takip ajansları ile çalışabilir. Satış stratejileri belirlemek için rakiplerin yeni sürümlerinin ne zaman çıkacağı takip edilmelidir. Reklam tasarımları için bünyesinde bir grafik tasarımcısı bulundurabilir. Bu sayede grafik tasarımcısı ürünü nasıl tanıtacağını daha iyi anlar. Medya ile ilişkileri güncel tutmak için bir kaç köşe yazarı ile bağlantısı olması gerekir. Yeni bir sürüm çıktığında köşe yazarları ile bağlantı kurup ürünün reklamının yapılması sağlanır.

Müşteri analizleri yaparak veritabanı oluşturma ve müşteri isteklerini kaydederek dizayn veya yazılım ekibine bildirmesi gerekir. Müşteriyi isteği konusunda bilgilendirerek konu ile ilgilenildiğini göstermelidir. Bu istekler dizayn ve yazılım ekibi tarafından tartışılarak genel sürümlerde uygulanabilirliği ortaya çıkartılmalıdır. Bir alt proje gibi ele alınıp harcanak kaynak ve zaman planlanmalıdır.

Lisans takibi için çalışmalar yaparak hangi müşterinin ne tür lisanslara sahip olduğunu tutar ve yeni lisansların sağlanması için müşteri ile kontak kurar. Öğrenci lisansı, 30 günlük deneme sürümleri ve akademik lisansların sağlanması ve ürünün mümkün olan en fazla kişi tarafından kullanılmasını sağlamak için çalışır. Fuarlarda deneme sürümlerinin dağıtılması ve yeterli eğitim belgesi ile birlikte sunulması için gerekli organizasyonu da yapar. Firmanın örütbağ sitesi üzerinden gerekli reklamın yapılması ve yeterli belgenin yayınlanması için çalışmayı da yapar.

BSA ile olan ilişkileri düzenler ve ürünün lisansız kullanılmaması için gerekli tedbirleri alır. Ürünün elektronik ve yasal olarak korunması için düzenlemeleri yapar. Anlaşma metinlerini düzenler ve hem ürün içinde hem de örütbağ sitesinde yayınlanmasını sağlar. Değişiklik gerektiren durumlarda tüm bu ortamlar güncellenir ve müşteriler bu değişiklikten haberdar edilir.

Satış sonrası müşteri memnuniyeti testleri ve ziyaretleri ile sürekli müşteri ile bağlantıda olur ve böylece müşteri kendini yanlız hissetmez. Müşteriler için etkinlikler organize eder ve müşterilerinde kendi aralarında bağlar yaratır. Böylece müşteriler birbirlerinin bilgilerinden yararlanabilirler. Bu tür ilişkilerin artması aile gibi bir yapının müşteriler ve firmanız arasında doğmasına yol açar. Gittikçe ilerleyen ve gelişen bu yapı ileride meyvelerini toplayacağınız bir ağacın fidesi olabilir.

Edit

Kurulum yönetimi ekibi

Kurumsal çözümler sunan bir firma yapısına sahip iseniz yada ürünlerinizi sizin kendi sunucularınız üzerinden kullandırıyorsanız, tüm kurulum işlemlerinin ve yeni sürümlerin kontrol altında olması gerekir. Yapılacak iş projelerin bitim tarihleri ile koordineli olarak tüm mevzuatın düzene sokularak madeler halinde yazılmasıdır. Özellikle 3-katmanlı yada n-katmanlı sistemlerde güncellenmesi gereken programlar bir kaç sisteme dağılmış olabilir hatta coğrafik olarak birbirlerinden uzakta bile olabilirler. Yapılacak işler sırası ile:

  • Güncelleme için planlama yapmak.
  • Güncellenecek programların kurulumlarını hazırlamak ve bu kurulumların nerelerde çalıştırılacağını belirlemek. Kurulum işlemlerin en ince ayrıntısına kadar belgelendirilmesi gerekiyor.
  • Güncelleme için gerekli, yazılım dışı, ürün kurmak gerekiyor mu araştırmak.
  • Müşterileri uyararak, güncelleme yapılacağı gün programların çalışmayacağını belirtmek.
  • Güncellenecek sistemin yedeğini almak.
  • Güncellemeyi yapmak
  • Tekrar yedek almak
  • Yazılım Doğrulama Testi yaparak güncellemenin doğru çalıştığından emin olmak
  • (EK) Eğer YDT sonuçları güncellemenin çalışmadığını gösteriyorsa, yedekleri geri yükleyerek sistemi bir önceki konumuna getirmek.

Bu ana maddeler ışığında tüm adımların en ince ayrıntısına kadar detaylandırılması ve bağlantı kurulacak kişilerin telefon numaraları bir belge halinde projede görev alan herkese ulaştırılmalıdır. Yazılım ekibinden bir kişi olası bir sorun durumunda bağlantı kurulması amacı ile destek hizmeti verir. Oluşturulacak belge bir akış şeması, bir Excel belgesi yada bir MS Project belges olabilir. Önemli olan tüm tarih ve saatlerin en ince ayrıntısına kadar yazılmasıdır.

Edit

Değişim ve isteklerin yönetimi

Projenin her safhasında değişim ve isteklerin yönetilmesi zorunluluğu vardır. Bu iş için bir kişi ayrılması şarttır. Değişim ve istekleri yönetecek kişi üretilen her türlü belge ve yazılım parçasından sorumludur. Üretilen belge yada kod ilk majör sürüm numarasını aldığında o parça artık Değişim ve İstekler Yönetimi altındadır. Majör numaradan kastımız 1.0’dır. Noktanın sol tarafı 1 olduğu zaman artık ilk sürüm verilmiş demektir. İstenen her türlü değişiklik ve istek bir toplantı yapılarak karara bağlanır. Değişimden etkilenen her proje parçası ortaya çıkartılarak maliyet araştırılır. Eğer çok fazla maliyetli bir değişim ise bir sonraki sürüme bırakılabilir. Fakat bu işleri yöneten kişinin bunların takibini yapması zorunludur.

Edit

Pilot firma

Ürününüz belli bir seviyeye geldikten sonra bir pilot firma seçip yazılımı buraya kurmak ve iş akışı içindeki davranışlarını görmek yapılacak en iyi testlerden biridir. Ortaya çıkan ve testleri bitmiş modüllerin bu şekilde test edilmesi size ve ürününüze çok yararlı olur. Bu iş için atanacak kişiler ve kurulacak sistem önceden belirlenmeli ve pilot firmanın iş akışını aksatmayacak biçimde derlenmelidir. Kurulacak bilgisayarlar ve yazılımlar, var olan sistem üzerine değil, yedek bir sistem üzerine kurulmalıdır. Belki her masada iki kişi ve iki bilgisayar (biri sizin diğeri pilot firmanın) olacaktır ama ilk aşama için bu gereklidir. Yazılımınız olgunlaşmaya başladıkça pilot sistem var olan sistemin yerini almaya başlar. Tüm operasyonlara cevap verecek düzeye geldiğinde ise artık tamamı ile sizin yazılımınız işi ele almış olacaktır.

Bu iş için ayrılacak elemanlar özel olarak seçilmeli, stres ve baskı altında rahatça ve soğukkanlı kalabilmeli, problem anlarında kontak kuracakları kişileri bilmeli, tüm alt yapı ve yazılım ile yapılan işi bilmelidir. Her çıkacak hata veya değişiklik istemi iyi bir hata takip programı ile firmaya aktarılmalı ve çözümler hızlı ve ayrıntılı biçimde bulunmalıdır.

Edit

Şeffaf muhasebe

Firma içinde yapılan tüm harcamaların ve gelirlerin şeffaf bir biçimde çalışanların görmesini sağlayarak belli bir oranda bilinç oluşturabilirsiniz. Kullandıkları makinelere ne kadar harcandığını bilen bilinçli kullanıcılar, onları korumak için daha fazla çaba gösterecektir. Mutfak ve tuvaletler için yapılan harcamalar da dahil olmak üzere her harcama herkesin rahatlıkla ulaşabileceği bir yerde olmalıdır. Firma çalışanlarından gelecek tavsiyeler ile harcamalarda daha hesaplı davranılabilir. Maliyet bilinci ile çalışan kişi daha dikkatli bir biçimde çalışır. Ayrıca bu harcama bilgisinin firma dışına çıkmaması için gerekli eğitiminde çalışanlara verilmesi gerekir. Şeffaf muhasebenin miktarını size bırakıyorum. Eğer saklamayı arzu ettiğiniz harcamalar varsa bunları neden sakladığınızı bir kez daha düşünüp harcamayı o şekilde yapın.

Firma çalışanlarının firmaya maddi zarar verecek davranışlardan da kaçınması gerekir. Şeffaf muhasebe ile belirli bir bilinç seviyesine gelen çalışanlar, çalıştıkları firmanın daha uzun ömürlü olması için ellerinden geleni yapmalıdırlar.

Edit

Yapılan yanlışlar



Edit

Lisanssız yazılım kullanımı

Firmanızı kurdunuz, üründe hemen hemen hazır, müşteriler sırada bekliyor fakat ne kullandığınız yazılım araçları nede işletim sistemleri lisanslı değil. Bu gibi durumlarda yazdığınız ürünü satmanız mümkün değil. Bir an önce lisanslama yoluna gitmeniz gerekir. Ülkemizde bu konu hakkında çalışma yapan BSA (Business Software Alliance) lisanssız kullanım için oldukça ağır cezaların uygulanmasına öncülük etmektedir. Ayrıca yazdığınız ürünün başkaları tarafından kopyalanmamasını istiyorsanız gene BSA ile bir anlaşma yaparak, ürününüzü piyasada koruyabilirsiniz.

Edit

Yeterli yardım ve deteği alamama

Kullandığınız yazılım araçlarının üreticisi ile olan ilişkileriniz çok sıkı ve akışkan olmalı. Bir yardıma ihtiyacınız olduğunda acil aranması gereken telefon numaraları, yardım siteleri, sadece kayıtlı müşterilerin girdiği forum siteleri gibi tüm yardım araçlarını çok iyi kullanabilmelisiniz. Firma içinden atanacak bir kişi tüm bu bağlantıları sağlayacak ve bilginin akışkan olarak firmanıza akmasına yardımcı olacaktır. Ayrıca eğer kontaklar yurt dışında ise, yabancı dili iyi olan bir kişi bu işleri yürütmelidir.

Yeterli desteği alamıyor iseniz kendi içinizde bu problemleri çözmeniz gerekir. Bu yapıyı da oluşturmak seneler alabilir. Birde bu işlere bakan kişinin 6 ay sonra işden çıktığını düşünün. Yeni gelen kişinin olayı anlaması ve destek konularını ayağa kaldırması gene bir 6 ay alacaktır. Eğer kendi içinizde halletmeye karar verirseniz, tüm işlemlerin çok net bir biçimde belgelendirilmesine özen gösterilmelidir ve tekrar eden işlerin kısa programcıklar ile otomatize edilmesi bazı işleri kolaylaştıracaktır.

Üretici firmalar dışında özel e-mektup listeleri de yardım almak için yararlı olabilir. Bazen üretici firmadan da daha iyi olabiliyor bu listeler. Kullanıcıların bulduğu çözümler daha gerçek hayata yakın ve uygulaması kolaydır. Fakat üretici firmanın desteklemediği bir çözüm olabilir, buna dikkat etmek lazım.

Yardım alınacak tüm yollar ve yöntemleri yazılmalı ve genel bir hata veritabanı oluşturulmalıdır. Bu sayede tekrar eden hatalar zaman kaybetmeden çözüme kavuşturulabilir.

Edit

Eğitimsiz yazılım uzmanları

Nasıl bilgisayar sisteminizi ve programlarınızı güncelliyorsanız, yazılım uzmanlarınızında güncellenmesi gerekir.Yeni bir aracın veya dilin firmanız içinde uygulanmaya baslanmasından evvel, yazılım ekibine yeterli eğitim verilmeli ve bilgi seviyelerinin aynı olması sağlanmalıdır. Oluşturulacak güncel bir kütüphane ile her zaman güncel bilgiye ulaşmaları sağlanmalı, sanal belgeler ile de sürekli desteklenmelidir. En fazla para harcayacağınız yer uzmanlarınız olduğuna göre bu konularda ciddi çalışma yapılması gerekir. Eğitimsiz bir Yazılım Uzmanı firmanıza çok büyük zararlar verebilir. Projeleriniz zamanında yetişmez, yazılan programların yeterli belgeleri bulunmaz, kayıt dışı pek çok rutin program veya iki kere yazılmış pek çok fonksiyon ile ürününüz şişebilir. Sonuçta ortaya çıkan üründe müşterinin isteği ile ilgisi olmayan bir ürüne dönüşür. Mükemmel çalışıyordur belki ama müşterinin isteğini yerine getirmiyorsa ne işe yarar ki.

Edit

Firma içi ahlakın öğrenilememesi

Firma içi giyim kuşam, hareket ve davranışların belli bir düzene sokulması amacı ile ceşitli standartlara gidilebilir. Müşteri ile yüz yüze olmayan yazılım uzmanlarının takım elbise giymesi gerekmez ama müşteri toplantılarında veya analiz toplantılarında takım elbise şart koşulabilir. Tuvaletlerin temizliği, mutfağın ve banyonun kullanımı belli standartlar ve hijyenik kurallar içerisinde olması gerekir. Bu tür kuralları öğrenemeyen firma çalışanı sorun yaratmaya başlar. Sorunlar kısa zamanda giderilmezse diğer çalışanlar rahatsız olur ve işten ayrılmalara kadar gidebilir. İyi elemanlarınızı sebepsiz yere kaybetmeye başlarsınız ve proje için pek iyi olmaz. Sorun çıkaran kişi proje lideri de olabilir. Bu gibi durumlarda proje liderine başka işler verip projeyi yürütmesi için başka bir lider arayışına girmeniz gerekir.

Edit

Lidersizlik

Proje liderine çok fazla iş verilmesi yada başka bir projeye atanması sonucu, ekibin başıboş kalması ve kontrol edici mekanizmanın iyi çalışmaması nedeni ile projenin aksamasına neden olur. Bu gibi durumlarda liderin yerine geçici olarak geçecek, proje içinden bir kişi belirlenir ve işlerin normal yürümesi temin edilir. Performans kriterleri ve varılması gereken hedefler çok açık ve net bir biçimde herkesin görebileceği gibi yayınlanmalıdır. Aksi takdirde hedefsizlikten doğacak çok büyük gecikmelere maruz kalabiliriz. Yanlış belirlenmiş hedeflerde problem yaratabilir. Ekipten gelecek yorumlar dikkate alınıp hedef zamanlarının tekrardan belirlenmesi gerekebilir.

Edit

Bütün işin herkes tarafından bilinmemesi

Bir projeye başlandığında, proje ile ilgili her türlü bilgi en ufak birimlere kadar aktarılmalıdır. Ekibin bilgisi aynı seviyede tutulmalı ve yazılan programların aslında ne gibi işlere yaradığını gerçek hayatta görülmesi ve kavranması gerekir. Ayrıca proje planının herkesin görebileceği bir duvara asılarak yayınlanması gerekir. Böylece ne kadar yol alındığı her kes tarafından görülür. Tüm plan ve bilgi eşit biçimde paylaşılmalıdır. Her yazılım uzmanı, işin iyi kavranabilmesi için sektörde en az 1 hafta çalışmalı ve işi kaynağında öğrenmelidir. İş kurallarını ve temel işleyişleri en hızlı bu biçimde öğrenir. Örneğin ayakkabı tabanı üreten bir firmaya proje yapıyorsunuz. Analiz ve yazılım ekiplerinin dönüşümlü olarak bu firmada çalışması ve işleyişi tam olarak kavramaları, iş kurallarını öğrenmeleri, iş içinde geçen terimleri ve müşterinin psikolojisini iyice kavramaları gerekir. Böylece yazılım üretilirken ortaya çıkan parçaların işin hangi aşamasında kullanılacağı daha rahat hayal edilir.

Edit

Yetersiz haberleşme ve bilgi akışı

Firmanızda, yukarda anlattıgım bölümler arasında haberleşme ve bilgi alış verişi cok iyi olmalıdır. Yazılım ekibi kendi işini, pazarlama ekibi kendi işini, yonetim kendi işini yaparken, ortaya çıkan sonuçların her kes tarafından paylaşılması gerekir. Ancak bu şekilde herkesin firmaya olan güveni sağlamlaştırılır ve ortak çıkarlar için birlikte çalışılır. Bir kaç örnek verelim:

  • Yazılım ekibi günler geceler boyu ürünün bir modülünü ortaya çıkarır ve testlerine başlanır. Fakat pazarlama ekibinin bu gidişattan haberi yoktur ve modül hakkında pazarlama için gerekli stratejik bilgiyi zamanında öğrenemez. İkinci modülde ortaya çıkar ve testleri başlar ama pazarlama ekibinin daha birinci modülden yeni haberi olmuştur ve ögrenilecek şeylerin sayısı artmıştır. Planlarda gecikme olur ve zaman daraldığı için Pazarlama ekibinin modüller hakkındaki bilgi kalitesi düşer.

  • Yönetim yeni bir programlama aracı için karar verir ve kimseye söylemeden aracı alır. Araç yazılım ekibine verilerek bu ürün ile bir şeyler ortaya çıkarması istenir. Hakkında yeterli araştırma yapılmadığı ve yazılım ekibine danışılmadığı için ürünün kapasitesi tam olarak kullanılamaz ve anlaşılamaz.

  • Yazılım ve dizayn ekibi birbirinden kopuktur ve programlama süreci başladıktan sonra müşteriden gelen istekler doğru biçimde yazılım ekibine aktarılamaz. Sonuçta ortaya çıkan ürün müşterinin isteğine uymayan bir ürün olacaktır.

Firma bölümleri aynı dili konuşuyor olmalıdır. Bunun içinde herkesin UML mantığını kavraması ve kullanması gerekmektedir.

Edit

Yetersiz alt yapı

Bir projeye başlarken, yada bir yazılım firması kurmaya karar verdiğinizde aldığınız risk seçeceğiniz ucuz ve yavaş bilgisayar sistemleri, kalitesiz kablolama, ikinci el monitörler gibi kalitesi düşük cihazlara yapacağınız harcamalar ile 3 yada 5 kat artmaktadır. Yetersiz bilgiye sahip yazılım uzmanlarınıda bu kategoriye sokabiliriz. Temeliniz ne kadar sağlam olursa üstüne çıkacağınız bina o kadar sağlam ve çok katlı olur. Eğer alt yapıya gereken önemi verirsek, üstüne yapacağımız projeler zamanında ve tam olarak teslim edilir. Altyapı konusunda dikkat etmemiz gereken hususlar:

  • Teknik altyapı
Bilgisayar sistemleri, donanım, ağ, örütbağ, iç-örütbağ gibi firmanın bel kemiğini ve haberleşme araçlarını içeren sistemlerdir.

  • Bilgi altyapısı
Firmanın tüm bilgi alma kaynaklarıdır. Fiziksel bir kütüphane, iç-örütbağındaki sayısal kütüphane gibi kolay ulaşılabilecek bir yapısı olmalıdır. Sayısal olanlar için yeterli arama mekanizmaları geliştirilmiş olmalıdır. Her türlü eğitim belgeside bu sistem içerisinde olmalıdır.

  • Yazılım altyapısı
Ürününüzü geliştirmek için kullandığınız tüm ürünler ile yazılım süreci ile doğrudan bağlantısı olmayan tüm yazılımların bulunduğu yazılım kütüphanesidir. Tüm bu altyapıların yeri geldikçe güncellenmesi ve yedeklenmesi gerekir. Yanlış kısımların değiştirilmesi ve zamanı dolan ve artık kullanılmayan bilgi kaynaklarının ise sistemlerden kaldırılması gerekir.

Edit

Yetersiz belgeleme

Yazılım uzmanları olarak belge yazmayı sevmesekte bu işin yapılması gerekmektedir. Yazılan kodların, yapılan analizlerin, senaryoların, veritabanı modeli gibi proje içerisinde üretilen her parçanın bir belgesi olmalıdır. Gruba yeni katılacak kişiler ancak bu belgeler sayesinde her şeyi öğrenebilir. Eğer yetersiz belge gibi bir sorununuz varsa, acilen bir ekip toparlayıp belgeleri tamamlamaya bakmanız gerek. Eğer yazılım uzmanlarının zamanı yoksa, günde 1 saat ayırarak belgelendirme ile ilgili bilgiyi bu ekibe geçirmeleri gerekir.

Edit

Yazılım ekibinden kopmalar

Yönetimde yapılan yanlışlıklar nedeni ile yada tamamen kişisel sorunlardan dolayı, yazılım ekibinden ayrılmalar olduğunda projenizden bir bilgi birikimi ayrılmış olur. Bu bilgi birikimini yerine koymak ise zaman zaman oldukça zor olmaktadır. Yeterli belgeleme yapılmış bir firmada çok fazla sıkıntıya girmeden, kısa zamanda bu bilgi başka bir çalışana aktarılabilir ve proje normal olarak devam edebilir. Ayrılan kişininde bir süre daha devam edip bilgisini başka birisine aktarabilir. Eğer standart belgeleme iyi bir seviyede uygulanırsa, ekipten kopmalar bir sorun olmaktan çıkabilir.

ScrewTurn Wiki version 2.0.27. Some of the icons created by FamFamFam.