Analiz ve Yazılım

Sümeyye Görgülü —  11 Nisan 2019 — Yorum bırakın

Uzun süredir yazmayı planladığım ama bir türlü derleyip toparlayamadığım bir konu var. Yazılım geliştirirken hangi konularda zorlanıyorum?  İşleri çoğu zaman çıkmaza sürükleyen nedenler ne?  Şimdi bu soruları çalışma tecrübeme ve gözlemlerime dayanarak yanıtlamaya çalışacağım.     
Bu soruların elbette birden fazla cevabı var. Teknik yetersizlik , yönetimsel sorunlar, zaman  kısıtı, analiz eksikliği, analist ile iletişim problemleri, takım içi iletişim problemleri gibi.

Dönüp arkama baktığımda en çok “zaman  kısıtı” ve “analiz eksikliği, analist ile iletişim problemleri” konusunda sıkıntı yaşadığımı düşünüyorum. O yüzden analiz ve yazılımanalist ve yazılımcı arasında ki ilişkiye değinmeye çalışacağım.

Öğrenciyken ve işe yeni başladığım dönemlerde İş Analiz’inin , Analist’in önemini çok anlamazdım. Hatta gereksiz görürdüm. Zamanla insan öğreniyor; proje için çok önemli (hatta bence en önemli) etmenlerden biri olduğunu 😊


Yazılım Analizi Nedir ?
Analiz, projenin ön tanımıdır. Bir sistemin gerçeklerini ve ayrıntılarını düzenleme süreci olarak tanımlanır. Projede istenen gereksinimler nelerdir sorusunun cevabı olmalıdır.
Yazdığınız kod isteneni doğru bir biçimde yerine getiriyorsa başarılı bir yazılımdır. Bu nedenle öncelikle yazılımdan ne istendiğinin doğru bir biçimde tanımlanması gerekir. Eğer birden fazla sistem olacaksa diğer sistemlerle nasıl entegre bir şekilde çalışacağı detaylandırılıp, netleştirilmelidir.

Analist Ne İş Yapar?

  • Müşteri ve diğer sistemlerden aldığı bilgileri pekiştirerek ve zenginleştirerek ekibin geri kalanına taşımalıdır. Diğer sistemler ile çözümü bulmaya çalışan, onlarla el sıkışan kişidir analist. Müşterilerden ve diğer sistemlerden bilgiyi alır, çözüm şablonu oluşturur ve onları yazılımcıların anlayacağı bir dile çevirir. Burada analistin isterleri tam anlaması ve konuya hakim olması önemlidir. Analistin yanlış yönlendirmesi ve konuya hakim olmaması projenin en başta başarısız olmasına neden olabilir.
  • Analistin bunları kusursuz yaptığını varsayalım. Tüm bunları yazılımcıya veya muhattabına eksiksiz anlatabilmesi gerekir.
  • Analist ayrıca birbiriyle çakışan gereksinimleri de tanımlamak ve çözmek için de sorumludur. Bu gereksinimleri de sistemin karşılayıp karşılamayacağı mukayesesini de yapmalıdır.

    Örneğin;  X sistemi; Denizin rengi Mavi olmalı
                       Y sistemi; Denizin rengi Kırmızı olmalı
    diyorsa, buradaki karmaşa için iki sistemle de görüşmeli ve ortak bir karara varmalıdır.
  • Analistin yazacağı döküman; en temel düzeyde son çözümün sahip olması gereken tüm özellikleri içermelidir.
    Bu gözler kendi yazdığı dökümanı anlamayan analist de gördü 😊 Bu döküman sayesinde müşteri ne istediğini, yazılımcı ne yapması gerektiğini bilir. Analiz dökümanı hem teknik detay hem iş akışı hakkında bilgiler içermelidir.
  • Analistte olmazsa olmaz bir özellikte “İyi İletişim”dir.

İyi Analiz Yapılmadığında Neler Oluyor?

Yazdığınız kodu,  yaptığınız tasarımı tamamen geri almanıza neden olabilir. Teste çıkmadan önce farkedilirse şanslısınız. Test sürecinde de farkedilmezse CANLI ortamda mevcut süreçleri bozabilirsiniz, ki bu durumda ilk sorgulanacak kişi sizsinizdir.

Net olmayan isterler ile geliştirme yapmak zorlayıcıdır. Yazılımcının çok dikkatli olması ve sürekli isterleri sorgulaması gerekir. Olabilecek sorunları farketmeye çalışarak analiste bilgi vermesi gerekir. Yapılacak geliştirmeden başka sistemler etkileniyorsa gerekirse sürecin değişmesi gerekebilir.

Analist ile toplantıya katılıyorsunuz ama dökümanda yazanlar ile toplantı da konuşulanlar bambaşka şeyler .
Projede birden fazla sistem etkileniyor, iş yapıyor. Ama sistemler arası anlaşmalar yapılmamış. X sistemi ile haberleşmeniz gerekiyor, ama haberleşmenin nasıl, hangi veriler ile yapılacağı belirlenmemiş. Mevcut süreçler ile ilgili bilgiyi analiste soruyorsunuz “yaaa sen koddan bi bakıversene” şeklinde cevap alıyorsunuz.
Bu durum nelere sebep oluyor peki? Takımın diğer üyelerine ekstra maliyet (yazılım, test), işin kalitesinin düşmesi , çözümün zamanında yetiştirilememesi, fazla mesai.

İyi Analizin Sonuçları
Kurumsal Yönetim Kurulu Uygulama Yürütme Kurulu tarafından yürütülen bir araştırmaya göre, “İş analisti yeterliliğinin arttırılması, uygulama performansını% 30’a kadar artırabilir.”  Reference – Summary and Conclusions

İyi analiz projede fazla mesaiyi azaltır, takım moralini arttırır ve zamanında teslimat şansını arttırır. Hepsinden önemlisi müşteri memnuniyeti de artacaktır.

References:

If You Think You Can Do Without a Business Analyst ÉThink Again!

Sümeyye Görgülü

Sümeyye Görgülü

Posts Twitter

Çanakkale On Sekiz Mart Üniversitesi Bilgisayar Mühendisliği bölümünden mezun oldu. Etiya'da Uzman Yazılım Yardımcısı olarak çalışıyor.Yazmayı,paylaşmayı seviyor.

No Comments

Be the first to start the conversation.

Yorum yapmak için