Yazılım Projesi SÜREÇ DÖKÜMANTASYONU
Hazırlayan Erkin Deveci 19 Ekim 2013
Önsöz Yazılım firmasının herhangi bir firmayla bir ‘Yazılım Çözümü’ ile el sıkıştığından sonra işletmesi gereken süreçleri içeren dökümantasyonun yazılması gerektiğini düşündüm. Bu dökümantasyon Salyangoz firmasında zamanımı geçirirken yazmış olduğum dökümandır.
Müşterinizi Tanıyın! Müşterinizi tanımanız çok önemli. Her müşterinin kendisine göre ihtiyaçları, projenizde takılabileceği noktaları olduğunu unutmayın. Müşterileriniz ile problem yaşamamak için işi alırken mutlaka doğru analizi yapabilecek bir yetkiliyi müşterinizin yanına götürün. Bu kişi müşterinin karakterinden ve konuşmalarından ihtiyaçlarını tam olarak algılayabilecek seviyede ve size projenin bir tanımını anlatabilecek ve rapora dökebilecek kalitede olmalı.
ERKİN DEVECİ | SAYFA 1
İşi Aldık Nasıl Başlayacağız? Pek çok firma iş yapma konusunda hayli ametör olarak ilerlemekte. Bir sorun oluştuğunda ise kimse sorumlu olmaz, problem müşteride’dir diye bakılır. Asla bu hataya düşmeyin ve hep hatayı kendinizde arayın ve atladığınızı düşündüğünüz noktaları yeniden gözden geçirin.
Yaratıcı, Çalışkan ve Üretici İlk aşama ekibinizde yaratıcı, çalışkan ve üretici olarak belirlediğiniz 3 kişiye ihtiyacınız var, eğer ekibiniz bu kadar geniş değil ise tek bu özellikleri barındıran tek bir kişi bile olabilir. Ancak bu özellikleri olduğundan emin olun. Grup olarak proje ile ilgili oluşabilecek sorunları, kimin hangi konuda sorumluluk alacağını paylaşın ve problemleri önceden tahmin edin. Problemleri önceden tahmin etmek, sonrasında işlerinizi kolaylaştıracak ve önlem anlamınızı sağlayacaktır. Daha sonra ‘KAOS’ kavramını yaşamanızı engeller.
ERKİN DEVECİ | SAYFA 2
İşlerinizi Müşteri İle Paylaşın Yazılım projelerinde yapılan en büyük hatalardan biri ise yapılması gereken süreçleri paylaşmadan bir anda projeyi teslim etme isteği, bir an önce parasını alalım gidelim deme isteği ve sürekliliğini getirememedir. Benim tavsiyem, projelerinizi doğru fiyatlandırın, projede ki bütçe kısıtlı bu yüzden bunu da yapmayalım şunu eksik yapalım deme lüksünü kendinize bahane etmemiş olursunuz!
Prototip, Prototip, Prototip! Projeyi yapmaya başlamadan önce mutlaka müşterinizle, kendi ekibinizle birer görüşme yapıyorsunuzdur. Ancak yapılan toplantılar ne kadar fazla olursa olsun, müşteriniz sizin nasıl,ne şekilde, hangi tasarımda ürün çıkartacağını bilemez. Siz ise ne kadar müşterinin isteklerini dinleseniz de iş projeyi yapmaya gelince küçük detaylar çıkagelir ve bunları yapmak için mutlaka tekrar tekrar müşteriye danışılması gerektiğini düşünürsünüz. Ürettiğiniz işleri asla müşterinin ERKİN DEVECİ | SAYFA 3
fikrini almadan yapmayın ve müşterinize mutlaka ‘prototipler’ gönderin ve memnun olup olmadıklarını, ihtiyaçlarını giderip gidermeyeceklerini sorun!
Yazılım’da Prototip De Nasıl Olurmuş Ki? Projeniz ne tür olursa olsun mobil, web, windows veya donanım farketmeksizin ‘paper mockup’ diye tabir ettiğimiz kağıt üzerine projenizin görüntülerini müşterilerinizle belirlemiş olduğunuz özelliklere göre tek tek çizin veya bunu alternatif çizim programlarıyla da yapabilirsiniz hangisi kolayınıza geliyosa. Prototiplerin amacı müşterinize oluşacak ürünü taslak olarak sunup ihtiyaçlarını giderip gideremeyeceğini göstermek ve bunu oldukça hızlı bir biçimde çıkarmanız için tercih edilmektedir. Çizimlerinizin profesyonel olmasına dikkat ve özen göstermeyin, müşterinize sunabileceğiniz ve müşterinin buna yorum getirebileceği şekilde olması yeterli. ERKİN DEVECİ | SAYFA 4
“Unutmayın prototip hızlı olması için yapılır vaktinizi çok harcamayın ve müşterinin geri bildirimini almaya bakın!”
Prototip Yaptık Peki Daha Sonra Napıcaz? Prototipinizi müşterinize sunduktan sonra, müşterinizden mutlaka bir geri bildirim almış olmanız gerekmekte. Prototiplerinizi hangi yolla iletiyorsanız iletin ancak müşterinizden fikirlerini bildirmesi gerektiğini anlatmaya çalışın. Gelen fikirlere göre mutlaka değişiklikler olacaktır ve bunları tekrar düzenleyip bir onay süreci daha geçirmeyi unutmayın.
ERKİN DEVECİ | SAYFA 5
Sistem’in Analizini Yapma Zamanı… Çalışmakta olan ekibinizden sistem analizi ve dökümantasyonu üzerine tecrübesi olan bir kişiyi görevi üstlenmek üzere seçin. Bu kişiye müşteriniz ile paylaşmış olduğunuz prototip çizimlerinin bir kopyasını iletin ve proje tanımını bir yazı halinde paylaşın. Analizi yapacak kişi ile projesine başlamadan önce projeyi anlamasını sağlayın. Sistem Analistleri oluşabilecek problemleri ve hataları önceden gözlemler ve buna göre analiz yaparlar. Projenizin analizi belki de projenizin zaman diliminde en uzun olması gereken detaydır. Analiz doğru yapıldığı takdirde proje belirtilen kapsamda başarılı olarak ortaya çıkarılabilinir. Yeter ki analiz ve hesaplamalar tutarlı olsun. Sistem analizi süreçleri oldukça detaylı ve tecrübeli kişiler tarafından yapılması gerekir. Bununla ilgili detaylı bilgi almak istiyorsanız Wikipedia’da ‘IEEE Software Document Definitions’ı arama ile başlayabilirsiniz. ERKİN DEVECİ | SAYFA 6
Tasarımı Ne Zaman Başlatalım? Tasarım, proje süresince her zaman var olan bir süreç. Prototip yapılırken tasarım süreci başlar. Prototip bitirilip müşteriden onay alındıktan sonra da gerçek tasarımlar ortaya çıkarılması için tasarımcıya projenin anlatılması, projenin prototiplerinin paylaşılması ve yapılan platforma uygun şekilde tasarlaması gerektiğini anlatın. Her platformun kendine özel tasarım ihtiyaçları ve gereksinimleri olduğunu unutmayın. İhtiyaçlara yönelik, son kullanıcı dostu ve projenin istediğini yapan tasarımlar her zaman müşterinizi memnu edecektir. Zor işleri basitleştirin!
Kodlamaya Başlayın Analiz süreçleriniz bitti ise, yapılan analiz dökümanlarını yazılımcılarınızla paylaşarak işe koyulabilirsiniz. Analiz dökümanlarında detaylı olarak süreçlerin zaman dilimleri belirtilir. ERKİN DEVECİ | SAYFA 7
Yazılımcılarınızdan bu süreye uyması gerektiğini mutlaka belirtin! Yazılım sürecini birden fazla koldan yürütebilirsiniz. Yazılım projenizin genişliğine bağlı olarak çoğu yazılım projesi günümüzde multi platform olarak yapılmakta. Bu süreçleri tek bir kişi yapar gibi düşünüp tüm işi bir yazılımcının yapmasını beklerseniz projeniz gecikir veya başka bir deyişle başarısız olur. Mutlaka projenizi yöneten bir bireye ihtiyacınız var, bu kişi rutin kontrollerini yapmalı dilerseniz projenizi yönetme işini yazılımcılarınızdan birine verebilirsiniz. Unutmayın yönetim işini alacak kişinin önsezileri çok kuvvetli olmalı. Gecikecek ve hataya düşebilecek durumları önceden sezmeli. Yazılımcılarınızın kodlamalarını yorumlamalar yaparak ve yazılım standartlarına uyarak yazmasını isteyin. İleride sizin proje ekibinizde olmayabilirler veya başka projeye atanabilirler bu durumda eksikliği hissedilmemeli. Profesyonel hayatın bir parçası, duygusallığa yer yok!
ERKİN DEVECİ | SAYFA 8
Test Olmadan Olmaz! Hiçbir yazılım projesi test olmadan hayata geçmez. Test için çok fazla sayıda alternatif mevcut, test için en önemli detay, Projeyi yazan yazılmcılarınıza asla test yaptırmayın. Onlar zaten doğru olduklarını düşündükleri süreçleri kodlarlar ve test iş atamasını projeyi yazanlara atarsanız hatalarınızın birçoğunu göz ardı etmek zorunda kalırsınız. Projenizi müşterinize ve kullanacak gruplara test ettirin. Eğer böyle bir imkanınız yok veya uğraşmazlar diyorsanız en azından projeye bakmaları gerektiğini söyleyin… Test süreçlerinde mutlaka yazılımcılara ve tasarım ihtiyaçlarına birden fazla şekilde geri dönüşler olur. Bunları en hızlı şekilde organize edip müşterinizin önüne sunun. Müşteriniz’in çok dominant değişiklikler istemesine engel olun ve süreci uzatacağını anlatın. Aksi takdirde projeniz çıkması uzar ve başarısızlığa doğru gidersiniz.
ERKİN DEVECİ | SAYFA 9
Tam Zamanında Bitirin ve Teslim Edin Yazılım projelerinin en büyük sorunu yanlış zamanlama, teslim sürelerinin sürekli ileri tarihe taşınması. Bu bir yazılım firmasının en çok yaptığı hatalardandır. Teslim edecekleri tarihleri mutlaka aşarlar , sakın teslim tarihinizi aşmayın ve müşteriye toplantılarınızda ve tekliflerinizde süreç bilgilendirmesi yapın. Zamanında bitmeyen projeler tek müşterinizde kötü bir etki yaratmaz aynı zaman sizin şirketinizdede düzensizliklere neden olur. Yeni gelecek işlerde ekibinize ara verdirmezseniz kötü sonuçlar doğacaktır. Bir projenin uzaması demek şirket çalışanların konsantrasyon kaybına, motivasyon düşüklüğüne ve isteksizliğe yol açacağını untumayın. Proje giderek işin içinden çıkılmaz bir hal alabilir.
ERKİN DEVECİ | SAYFA 10
Müşterilerinize Yenilikler Yapması Gerektiğini Söyleyin ve Teşvik Edin Projeniz başarılı bir şekilde çıktıktan sonra bunun, yönetilmesi, müşteri memnuniyeti ve geliştirilmesi gibi ihtiyaçlar doğar. Bu ihtiyaçların hepsine karşılık vermeniz gerektiğini asla unutmayın. Müşterilerinizin projesi sizin şirketinizin vizyonunuzu yansıtır!
TEŞEKKÜRLER
ERKİN DEVECİ | SAYFA 11