=Paper= {{Paper |id=Vol-1721/UYMS16_paper_31 |storemode=property |title=Yazilim Gelistirme Surecinde Deger Akis Haritalama Yontemi Uygulama Calismasi |pdfUrl=https://ceur-ws.org/Vol-1721/UYMS16_paper_31.pdf |volume=Vol-1721 |authors=Sezen Erdem |dblpUrl=https://dblp.org/rec/conf/uyms/Erdem16a }} ==Yazilim Gelistirme Surecinde Deger Akis Haritalama Yontemi Uygulama Calismasi== https://ceur-ws.org/Vol-1721/UYMS16_paper_31.pdf
    Yazılım Geliştirme Sürecinde Değer Akış Haritalama
               Yöntemi Uygulama Çalışması

                                      Sezen Erdem1
        1ASELSAN A.Ş. SST-KKYTM P.K.1 06172, Yenimahalle/Ankara, Türkiye
                              1erdem@aselsan.com.tr




      Özetçe. Üretim alanında başarılı sonuçlar elde edilmesini sağlayan süreç
      iyileştirme yaklaşımlarının Yazılım Geliştirme alanında da uygulanmaya
      alınması ile yazılım geliştirme süreçlerinde yaşanan sorunların aşılmasına
      yönelik adımlar atılmaya çalışılmaktadır. Geçmişi 1960’lara dayanan Yalın
      yaklaşımları da üretim alanında büyük kazanımlar sağlanmasından dolayı
      yazılım geliştirme alanı da dahil olmak üzere birçok başka alan için kullanımı
      değerlendirilen yöntemlerden birisi olmuştur. Temelde atık ve israfın yok
      edilmesine dayalı olan Yalın yaklaşımları öncelikle atık ve israfın belirlenmesi
      için Değer Akış Haritalama yöntemi ile başlamaktadır. Değer Akış Haritası
      mevcut sürecin analiz edilerek akışta değer katan adımların ve israfa yol açan
      etkenlerin tespit edilmesini sağlamaktadır. Üretim bantlarında büyük
      kazanımlar elde edilmesine öncülük eden Değer Akış Haritalama yöntemi
      yazılım geliştirme süreçleri için de uygulanmaya çalışılmakta ancak yazılım
      geliştirmenin doğası gereği üretime göre daha dinamik ve kişi merkezli olması
      sebebi ile uygulamada bazı sıkıntılar yaşanabilmektedir. Bu çalışmada
      ASELSAN Savunma Sistem Teknolojileri (SST) Sektör Başkanlığı
      bünyesindeki Yazılım Tasarım Müdürlükleri tarafından izlenen yazılım
      geliştirme sürecinde Değer Akış Haritalama yönteminin uygulanarak atık ve
      israfların bulunmasına yönelik olarak yapılan çalışma anlatılmaktadır.


      Anahtar Kelimeler: Yalın, Değer Akış Haritalama, Yazılım Geliştirme Süreci,
      Süreç İyileştirme


1     Giriş

   Üretim alanında başarılı sonuçlar elde edilmesini sağlayan süreç iyileştirme
yaklaşımlarının Yazılım Geliştirme alanında da uygulanmaya alınması ile yazılım
geliştirme süreçlerinde yaşanan sorunların aşılmasına yönelik adımlar atılmaya
çalışılmaktadır. Geçmişi 1960’lara dayanan Yalın yaklaşımları da üretim alanında
büyük kazanımlar sağlanmasından dolayı yazılım geliştirme alanı için de kullanımı
değerlendirilen yöntemlerden birisi olmuştur. Temelde atık ve israfın yok edilmesine
dayalı olan Yalın felsefesi öncelikle atık ve israfın belirlenmesi için Değer Akış
Haritalama yöntemi ile başlamaktadır. Değer Akış Haritası mevcut sürecin analiz
edilerek akışta değer katan adımların ve israfa yol açan etkenlerin tespit edilmesini




                                            488
sağlamaktadır. Üretim bantlarında büyük kazanımlar elde edilmesine öncülük eden
Değer Akış Haritalama yöntemi yazılım geliştirme süreçleri için de uygulanmaya
çalışılmıştır. Ancak yazılım geliştirmenin doğası gereği üretime göre daha dinamik ve
kişi merkezli olması sebebi ile üretim alanında başarılı olan yöntemlerin doğrudan
yazılım geliştirme alanına uygulanabileceği ya da üretim alanında başarılı olan her
yöntemin yazılım geliştirme alanında da başarılı olacağı düşünülmemelidir. Değer
Akış Haritalama yönteminin de yazılım geliştirmeye alanına uygulamasında bazı
sıkıntılar yaşanmaktadır. Bu çalışmada ASELSAN Savunma Sistem Teknolojileri
(SST) Sektör Başkanlığı bünyesindeki Yazılım Tasarım Müdürlükleri tarafından
izlenen yazılım geliştirme sürecinde Değer Akış Haritalama yönteminin uygulanarak
atık ve israfların bulunmasına yönelik olarak yapılan çalışma anlatılmaktadır.

   Makalenin 2. bölümünde Yalın Yaklaşımı ve Değer Akış Haritalama yönteminden,
3. bölümünde SST Yazılım Geliştirme Süreci’nde Değer Akış Haritalama yönteminin
uygulanmasından ve 4. bölümde de uygulamanın sonuçlarından bahsedilecektir.


2      Yalın Yaklaşımı ve Değer Akış Haritalama Yöntemi

   Yalın Üretim yaklaşımı Toyota Ürün Geliştirme grubu tarafından ortaya konulmuş
ve müşteri taleplerini en az kaynakla, en kısa zamanda, en ucuza ve eksiksiz olarak
karşılamayı amaçlayan bir yaklaşımdır. Üretim alanında sağladığı başarıların
görülmesinin ardından Yalın Üretim yaklaşımının temelinde yatan Yalın felsefesi
otomotiv alanı dışındaki birçok alanın ilgisini çekmiş ve farklı alanlarda kullanımı
değerlendirilmiştir[1]. Temel olarak israfın yok edilmesine ve değer katan süreç
adımlarının güçlendirilmesine dayanan Yalın felsefesi İsrafı Giderme, Bütünü
Optimize Etme, Kalite ile Geliştirme, Devamlı Öğrenme, Hızlı Teslim, Takımı
Güçlendirme ve Mümkün Olduğunca Geç Karar Verme ilkelerine dayanmaktadır. Bu
ilkelerin en temel amacı üretimin ve kalitenin başarılı bir şekilde artırılmasıdır[2]. Bu
ilkelerin Yazılım Geliştirme alanına uygulanması amacı ile 1990’larda Yalın Yazılım
Geliştirme yaklaşımı ortaya atılmıştır[1]. Yalın felsefesi ilkelerinin uygulanabilmesi
için öncelikle süreç içerisinde atık, israf ve değer tanımlamalarının yapılması ve bu
tanımlar çerçevesinde süreçteki israf, atık ve değer adımlarının tespit edilmesi
gerekmektedir. Yalın yaklaşımında bu tespitlerin yapılması için Değer Akış
Haritalama yöntemi kullanılmaktadır. Değer Akış Haritalama yöntemi bir sürecin
mevcut durumunun analiz edilmesini, olması istenen gelecekteki durumunun
tasarlanmasını sağlayan yalın yönetim yöntemidir. Değer akış haritalama yalın
düşüncenin ilk adımıdır. Süreç akışının ortaya çıkarılması ile bu akış yönetilebilir hale
getirilebilmekte ve bu akıştaki aksayan noktaların tespit edilmesi ve iyileştirmelerin
yapılması sağlanmaktadır. Yazılım geliştirme süreçleri de yazılımın üretilmesine
yönelik bir akış içerdiği için Değer Akış Haritalama yöntemi yazılım geliştirme
süreçleri üzerinde de uygulanabilmesi ve süreç iyileştirme çalışmaları için faydalı
çıktılar üretmesi beklenmektedir. Bu amaçla Değer Akış Haritalama yönteminin
yazılım geliştirme süreçlerinde uygulanmasına yönelik araştırmalar ve çalışmalar
yapılmaktadır[3][4][5]. Ancak yazılım geliştirme alanının üretim alanından




                                          489
farklılıkları sebebi ile Değer Akış Haritası oluşturulması üretim süreçlerindeki
uygulamalarından farklı olmaktadır. Üretim süreçlerinde fiziksel materyaller bir akış
içerisinde ilerlerken, yazılım geliştirme süreci akışı içerisinde gereksinim tanımları,
test tanımları, kaynak kodlar, çalışan uygulama gibi fiziksel olmayan çıktılar
ilerlemektedir. Yazılım geliştirme süreç adımlarının çıktılarının yazılım geliştirmenin
doğası gereği değişime açık olması bu çıktıların akış içerisinde takip edilmesini
zorlaştırmaktadır. Yazılım geliştirmenin bilgi tabanlı ve kişi merkezli bir iş olması
sebebi ile de akış kişilerin karakteristik özelliklerinden etkilenmektedir. Bu durum
yazılım geliştirme süreçleri için Değer Akış Haritası çıkarılmasını oldukça karmaşık
ve zor bir hale getirmektedir. Bu zorluklar sebebi ile Değer Akış Haritalama
yönteminin yazılım geliştirme alanı için uygulanabilirliği konusu da bir
değerlendirme konusudur.
   Makalenin 3. bölümünde ASELSAN SST bünyesindeki Yazılım Tasarım
Müdürlükleri tarafından uygulanan yazılım geliştirme sürecinde Değer Akış
Haritalama yöntemi ile akışın çıkarılmasına yönelik olarak yapılan çalışma
anlatılmaktadır. Bu çalışma sırasında yakarıda bahsedilen Değer Akış Haritalama
yönteminin yazılım geliştirme süreçlerine uygulanmasında yaşanması muhtemel
sıkıntılar ile de karşılaşılmıştır.


3       SST Yazılım Geliştirme Sürecinde Değer Akış Haritalama
        Yöntemi Uygulaması

  ASELSAN SST bünyesindeki Yazılım Tasarım Müdürlükleri’nde geliştirilen
yazılımlar Şelale yazılım geliştirme yaklaşımı tabanlı olarak tanımlanmış bir sürece
uygun olarak geliştirilmektedir. Süreç temel adımları Şekil-1’de verilmiştir.
       Yazılım
    Gereksinimleri
       Tanımla          Yazılım
                     Tasarımını Yap
                                        Yazılımı Kodla
                                                         Yazılım Yeterlilik
                                                           Testlerini Yap
                                                          ve Değerlendir
                                                                              Yazılımı Teslim
                                                                                     Et


                            Şekil-1. Yazılım Geliştirme Süreci

   2015 yılı içerisinde başlatılan süreç iyileştirme çalışmaları kapsamında Yalın
yaklaşımlarının yazılım geliştirme süreci üzerinde uygulamasının değerlendirilmesi
konusunda bir çalışma başlatılmıştır. Bu çalışmanın ilk adımı olarak Değer Akış
Haritalama yöntemi kullanılarak yazılım geliştirme sürecindeki akış haritasının
çıkarılması çalışmasına başlanmıştır. Değer Akış Haritasının çıkarılmasına yazılım
geliştirme sürecinin “Yazılım Gereksinimlerini Tanımla” adımının detaylandırılması
ve bu adıma ait alt süreç adımlarının belirlenerek süreç akışının belirlenmesi ile
başlanmıştır. Yapılan çalışma sonucunda ortaya çıkan akış diyagramı Şekil-2’de
verilmiştir.




                                          490
           Şekil-2. “Yazılım Gereksinimlerini Tanımla” Değer Akış Adımları

   Elde edilen akış üzerinde değer ve atık sürelerini bulmak için yazılım geliştirme
projelerinden örnek kümesi oluşturularak gerekli verilerin çıkarılmasına başlanmıştır.
Örnek proje kümesi seçiminde farklı alanlarda farklı ekipler tarafından geliştirilmiş
projelerin seçilmesi sağlanarak tespit edilecek atık ve değerlerin daha genel geçer
olması sağlanmaya çalışılmıştır. Örnek kümesine dahil edilecek projelerin
belirlenmesinin ardından bu projeler ile ilgili veriler toplanmaya başlamıştır.
Toplanan veri tanımlamaları Tablo-1’de verilmiştir.
Veri                          Tanımı                                Kaynağı
Gereksinim Sayısı             Yazılım gereksinim sayısı             DOORS Gereksinim
                                                                    Yönetim Aracı
Yazılım Gereksinim            YGÖ dokümanının hazırlanması          Team Foundation Server
Özellikleri (YGÖ) Dokümanı    için harcanan işçilik                 (TFS) İşçilik Takip Aracı
Hazırlama İşçiliği
YGÖ Dokümanının               YGÖ Dokümanın Hazırlanması için       MS TFS İşçilik Takip
Hazırlanma Süresi             geçen süre                            Aracı
YGÖ Hazırlayan Kişi Sayısı    YGÖ Dokümanını hazırlayan kişi        Kurumsal Kaynak
                              sayısı                                Planlama Sistemi (KKPS)
YGÖ Gözden Geçirme (GG)       YGÖ gözden geçirme için harcanan      TFS İşçilik Takip Aracı
İşçiliği                      işçilik
YGÖ GG Süresi                 YGÖ gözden geçirme için geçen         TFS İşçilik Takip Aracı
                              süre
YGÖ GG Yapan Kişi Sayısı      YGÖ gözden geçirme yapan kişi         Kurumsal GG Otomasyon
                              sayısı                                Aracı
GG Sonrası Güncelleme         Gözden geçirme sonrası yapılan        TFS İşçilik Takip Aracı
İşçiliği                      güncellemeler için harcanan işçilik
GG Sonrası Güncelleme         Gözden geçirme sonrası yapılan        TFS İşçilik Takip Aracı
Süresi                        güncellemeler için geçen süre
YGÖ Dokümanının KKPS’ye       YGÖ dokümanının KKPS’ye               TFS İşçilik Takip Aracı
Aktarım İşçiliği              aktarımı için harcanan işçilik
YGÖ Dokümanının KKPS’ye       YGÖ dokümanının KKPS’ye               KKPS
Aktarım Süresi                aktarımı için geçen süre
                    Tablo-1. Süreç Alt Adımları Ölçüm Veri Tanımları




                                          491
   Belirlenen verilerin ilgili kaynaklardan elde edilmesi sonrasında yaklaşık 500
gereksinimi olan bir yazılım projesinin geliştirimi için Değer Akış Haritası
oluşturulmuştur. Ortaya çıkan değer akış haritası Şekil-3’de verilmiştir.




           Şekil-3. “Yazılım Gereksinimlerini Tanımla” Değer Akış Haritası

   Değer akış haritasında bir adım için harcanan işçilik ile bu adımda geçen süre
arasındaki farkların atık olarak değerlendirilmiştir. Değer akış haritası bu bakış açısı
ile incelendiğinde “Yazılım Gereksinimlerini Tanımla” süreç adımı iyileştirme
yapılabilecek bazı noktaları işaret etmektedir. Gereksinimlerin tanımlanmasına
harcanan işçilik ile bu işçiliğin zamana yayılımı kıyaslandığında “Yazılım Gereksinim
Analizi Yap” alt adımında ciddi oranda bir atık olabileceği değerlendirilmiştir.
Çalışmaya veri sağlayan projelerde bu alt adımdaki gerçekleşmeler incelendiğinde
yazılıma girdi olacak sistem gereksinimlerinin netleştirilememesinin yazılım
gereksinimlerinin tamamlanamamasına yol açtığı görülmüştür. “Yazılım Gereksinim
Analizi Yap” adımının tamamlanması için girdi olacak sistem gereksinimlerinin
tümünün netleşmesini beklemek yerine net olan sistem gereksinimleri üzerinden
yazılım geliştirme faaliyetlerine başlanması, artımsal ve yinelemeli bir yöntem
izlenmesi ile bu alt adımdaki atık zamanların azaltılabileceği değerlendirilmiştir.
Şelale yazılım geliştirme yaklaşımı yerine artımsal ve yinelemeli yazılım geliştirme
yaklaşımı olan Çevik Yazılım Geliştirme yöntemlerinin uygulamaya alınmasına karar
verilerek ASELSAN SST bünyesindeki Yazılım Tasarım Müdürlükleri’nde Çevik
Yazılım Geliştirme yöntemlerinin uygulanması için pilot projeler başlatılmıştır. Pilot
projelerde Çevik Yazılım Geliştirme yöntemlerinden en yaygın olarak kullanılan
Scrum çerçevesi uygulanmaktadır. Pilot projelerden elde edilecek geri beslemeler
ışığında organizasyona uygun süreç tanımlanması hedeflenmektedir.
   Değer akış haritasında “Değişiklik Önerisi Oluşturma/Onaylama” ve “3-DOA
Oluştur” alt adımlarındaki veriler de israfa işaret etmektedir. Bu adımlardaki veriler
hazırlanan dokümanların dokümantasyon birimine aktarımı sırasında onay
mekanizmaları nedeniyle ciddi zaman kayıpların yaşandığını göstermektedir. Bu
durumun oluşmasındaki kök nedenin gözden geçirme faaliyetlerine yeterince zaman
ayrılamaması sebebi ile gözden geçirme aşamasında verilmesi gereken bazı görüşlerin
dokümanların dokümantasyona aktarım işlemi sırasında veriliyor olduğu ortaya
çıkmıştır. Bu durumu önlemek amacı ile gözden geçirme süreci ve dokümanların
onaylanması aşaması ile ilgili iyileştirme önerileri değerlendirilmekte ve bu alt
adımlardaki israfın önlenmesi hedeflenmektedir.
   Değer akış haritasının çıkarılması sırasında yazılım geliştirmenin doğası gereği
ortaya çıkan değişkenliklerin etkisi ile tanımlamada birbiri ardında görünen süreç




                                          492
adımlarının birbiri ile kesiştiği ve paralel olarak yürütüldüğü aşamalarının olduğu
görülmüştür. Ayrıca her projede yazılım geliştirme aynı tanımlı sürece uygun şekilde
yapılsa bile her bir yazılım geliştirim döngüsü çalışan kişilere, ortam şartlarına,
kaynakların verimliliğine ve bunlara benzer birçok farklı dinamiğe bağlı olarak
birbirinden farklılıklar gösterebilmektedir. Tüm bu etmenler sonucunda da üretim
süreçlerindekine benzer şekilde bir Değer Akış Haritalaması yapılabilmesi mümkün
olmamaktadır. Ancak tüm bu farklılıklara rağmen bu çalışma elde edilen bulgular
süreçlerin iyileştirilmesine yönelik birçok tespit yapılmasını sağlamıştır. Yapılan bu
çalışma sonucunda Değer Akış Haritalama yönteminin diğer süreç adımlarına da
uygulanmasına devam edilerek Yalın yaklaşımlarının Yazılım Geliştirme Süreci
üzerinde uygulamasına devam edilecektir.


4      Sonuç

   Yalın yaklaşımları üretim süreçlerinin iyileştirilmesi konusunda ortaya koyduğu
başarı sebebi ile yazılım geliştirme alanı da dahil olmak üzere üretim dışındaki birçok
alanın dikkati çekmiş ve Yalın yaklaşımlarının diğer alanlarda da kullanımına yönelik
çalışmalar yapılmıştır. Yalın yaklaşımların giriş adımı olan Değer Akış Haritalama
yöntemi de süreç akışının ortaya konulması, akış içerisinde hangi noktalarda atıklar
ve israflar olduğunun belirlenmesi için sistematik bir yaklaşım ortaya koymaktadır.
Ancak yazılım geliştirme alanının üretim alanından farklılıkları sebebi ile Değer Akış
Haritalama yönteminin yazılım geliştirme süreci için kullanımında bazı sıkıntılar
yaşanabilmektedir. Bu makalede ASELSAN SST bünyesindeki Yazılım Tasarım
Müdürlükleri tarafından izlenen yazılım geliştirme süreci adımlarından birisi için
Değer Akış Haritalama yönteminin kullanımına yönelik yapılan durum çalışması,
yaşanılan tecrübeler ve elde edilen bilgiler paylaşılmıştır. Bu tecrübeler ışığında
Değer Akış Haritalama yönteminin hem yazılım geliştirme sürecinin diğer
adımlarında hem de yazılım geliştirme dışında diğer süreç alanlarında da kullanımına
yönelik çalışmalara devam edilecektir. Elde edilen bilgiler ışığında süreç iyileştirme
faaliyetlerinin yürütülmesi hedeflenmektedir.


Kaynakça
 1. Poppendieck, M., Lean Software Development, Addison Wesley, 2003.
 2. Bocock, L., Martin, A, There’s Something About Lean. Agile Conference, pp.10-19, 2011.
 3. Ali NB, Petersen K, B. B. Nicolau de França. Evaluation of simulation-assisted value
    stream mapping for software product development: Two industrial cases. Information and
    Software Technology.
 4. Ali NB, Petersen K, Schneider K. FLOW-assisted value stream mapping in the early
    phases of large-scale software development. Journal of Systems and Software.
    2016;111:213-27.)
 5. Mujtaba, S., Feldt, R., Petersen, K., 2010. Waste and lead time reduction in a software
    product customization process with value stream maps. In: 2010 21st Australian Software
    Engineering Conference (ASWEC). IEEE, pp. 139–148.




                                           493