21 Ocak 2014 Salı

İŞ ANALİSTİ OLMANIN ÖNEMİ GİDEREK ARTIYOR


Bilgi Teknolojilerinde, iş analizi yapılmasının önemi ile ilgili farkındalık, her geçen yıl daha da arttığından, bu mesleğe ilgi ve bu mesleğin yaygınlaşması da giderek artmaktadır.

Bir iş analistinin ne iş yaptığını anlatması hakikaten zordur ama iş analisti kısaca, müşterinin iş ihtiyaçlarını, anlayıp çözümleyen, kodu yazılabilir hale getiren kişidir diyebiliriz.

Tanıma bakılınca iş analisti olmak kolay bir iş gibi görünse de, analiz yapmanın bir tekniği, analistin de sahip olması gereken yetkinlikleri vardır.

Üniversitelerde İş Analizi öğrenimi yapılacak bir bölüm olmadığı halde, analitik düşünme ve problem çözme yetkinlikleri taşıması gerektiğinden genellikle üniversitelerin mühendislik bölümlerinden mezun adaylar iş analisti için uygun adaylar olarak değerlendirilmektedir.

Analist;

•İletişim becerisi yüksek kişi olmalıdır. Talep sahibi müşterilerle yazılımcı arasındaki iletişimi sağlamakla yükümlü olduğundan, dinleme ve anlama faaliyetlerini etkin şekilde yerine getirebilmelidir. Anlayabilmek için önce dinlemek gerekir. Doğru anlaşıldığından emin olmak için de muhakkak, müşteriden teyit almak önemlidir. Yanlış anlaşılan bir ihtiyaç için yapılmış yazılım geliştirmeyi düzeltmenin maliyeti yüksek olabilir.

•Üslubuna ses tonuna ve beden diline önem vermelidir. Hazırladığı analiz dokumanlarında, anlatım bozukluğu olmamasına, dilbilgisi kurallarına uyumlu olmasına dikkat etmelidir.

•İş birimi ile yapılan her görüşme toplantı notları ile kayıt altına alınmalıdır. Söz uçar yazı kalır..

•Analitik düşünme yeteneğine sahip olmalıdır. Müşteri ihtiyacının karşılanacağı iş ürünün geliştirileceği sistemi ve o sistemle etkileşimde bulunan diğer sitemleri bir bütün olarak görebilmeli, aynı zamanda bu bütünün parçalayarak sistematik bir şekilde detaylandırabilmelidir.

•Sistematik şekilde konuyu ele alıp, olası riskleri önceden fark edebilmelidir.

•Geliştirilecek iş ürünü ile ilgili bilgi ve tecrübeye sahip olmasa bile, bilgiye ulaşma yöntemlerini biliyor olmalıdır. Müşteriler ile yapacağı toplantılara mutlaka hazırlık yaparak gitmelidir. Müşterinin analiste güven duymasının birinci koşulu budur. Müşteri karşısında; konusuna hakim, kendisini yönlendirebilen bir analist görmek ister.

•Lider olmalıdır. Gereksinim belirleme toplantılarında, toplantıları yönetebilen, kapsam dışınına çıkılmasını engelleyen , toplantı zamanını verimli kullanan bir kişi olmalıdır.

•Analizini yaptığı sektörle ilgili, trendler ve kullanılan teknolojiler hakkında bilgi sahibi olmalıdır.Müşteriler için geliştirilecek çözüm önerilerini sunabilmenin yolu, mevcutta iş ürünü ile ilgili uygulamaları, birbirlerinden farklarını ve eksikliklerini bilmekten geçer. Önerilecek yöntemde hedef, piyasa koşullarını yakalayan, rakiplerin önüne geçmeyi sağlayan yenilikçi bir yöntem olmalıdır.

•Yapacağı analizlerin kalitesini arttırmak için, Visio, SQL, UML diyagramlarını, ekran tasarımı uygulamalarını biliyor olmalıdır.

9 Ocak 2014 Perşembe

NİTELİKLİ YAZILIM YAPMANIN YOLU İYİ GEREKSİNİM YAZMAKTAN GEÇER


Yazılım mühendislik süreçlerinde analiz aşamasında yazılan gereksinimlerin; netliği, herkes tarafından anlaşılabilirliği, eksiksiz olması, iyi bir yazılım yapılmasını doğrudan etkileyen en önemli unsurlardır.

Gereksinim yazmak, müşteri ihtiyacını aynen alıp yazmak demek değildir. Gereksinim yazarken dikkat edilmesi gereken unsurlar vardır. Nitelikli yazılımlar yapılması için de bu unsurlara dikkat edilmesi gerekir.

Gereksinim yazarken dikkat edilmesi gereken unsurlar:
1.Yazılım geliştirmesi yapılacak iş ihtiyacının, her bir parçası gereksinimdir.Ve gereksinimler tek tek yazılmalıdır.
2.Edilgen cümleler değil, etken cümleler kullanılmalıdır.Gerçekleştirilecek fonksiyonalitenin ne olduğu, hangi roldeki kişi veya sistem tarafından gerçekleştirileceği, çıktısının ne olacağı belirtilmelidir.
3.Gereksinim dokumandan çıkartıldığında yapılacak yazılım geliştirme, bu durumdan etkilenmiyorsa, gereksinim olarak dokumanda yer alan ifade dokumandan çıkartılmalıdır.
4.Ölçülebilir olmayan, subjektif ifadeler kullanılmamalıdır. (“Sık sık”, “hızlı”, “gelişmiş”, “verimli” vb..)
5.İmla ve noktalama işaretlerine dikkat edilmelidir. Geniş zaman kipinde yazılmalıdır.
6.İfadeler olasılık içermemelidir. (“yapılabilir”, “olabilir”vb..)
7.Gereksinimler uzun cümlelerle ifade edilmemelidir.Basit, yalın bir dille anlatılmalıdır.
8.Veya, ya da, gibi ifadeler olmamalıdır. Bu tip bağlaçları kullanma ihtiyacı hissediyorsak, ilgili cümlede birden fazla gereksinim vardır anlamı çıkar. Bu durum düzeltilmeli ve gereksinimler tek tek yazılmalıdır.
9.Yoruma açık ifadeler içermemelidir. Farklı kişliler tarafından okunduğunda da aynı anlamın çıkarılmasını sağlayacak nitelikte olmalıdır.
10.Gereksinimler kendi içinde tutarlı olmalıdır. Birbirleri ile çelişen ifadeler kullanılmamalıdır. (Bir gereksinimde, “x işlermleri sadece on us kredi kartları ile yapılabilecektir.” derken bir başka gereksinimde “x işlemleri on us debit kartlar ile yapılabilecektir.” şeklinde bir ifadeye yer verilmemelidir.)
11.Gereksinimlerden birinde bir değişiklik olduğu zaman, değişikliğin ilgili olduğu bir başka gereksinimde de etki analizinin yapılması gerekeceğinden, gereksinim yazarken birbirleri ile ilgili gereksinimler belirtilmelidir.
12.Tasarım ile ilgili bilgiler, gereksinim dokumanı içinde yer almamalıdır.
13.Yazılan gereksinimler, yazılım ve test ekiplerine input olacağından, yazılım ve test ekipleri açısından empati kurularak, gereksinimlerin anlaşılırlığından emin olunmalıdır.

Gereksinimler yazılırken dikkat edilmesi gereken diğer hususlar ise:
1.Her bir müşteri talebinin "gereksinim" olarak ifade edildiğinden emin olmak için, müşteri ihtiyaçları ve gereksinimler arasında izlenebilirlik sağlanmalıdır. Gereksinimin, müşteri ihtiyacını doğru şekilde ifade ettiği, müşteri tarafından teyit edilmelidir.
2.Gereksinim dokumanında açık konular kalmamalı, tüm konular netleştirilmiş olmalıdır.
3.Gereksinim dokumanının kapsamı net olarak ifade edilmelidir. Hangi varsayım ve bağımlılıklarla, hangi gereksinimlerin kapsama dahil edildiği belirtilmelidir.
4.Kaynak/zaman maliyeti sebebi ile gerçekleştirilemeyecek kapsam dışı bırakılmış gereksinimler ayrı bir alanda ifade edilmelidir. (Çünkü gereksinimler gelecek zaman kipinde yazılmaz.)
5.Gereksinimlerle ilgili planlamanın sağlıklı yapılabilmesi için, gereksinimler fazlandırılarak önceliklendirilmelidir.
6.Olması gereken akışlar, alternatif akışlar ve kötü senaryo akışları belirtilmelidir.