tr
tr

A-Spice Nedir? Otomotiv Yazılım Geliştirme Süreci Neden Denetlenmeli?

Proje nedir? 

Benzersiz, özgün bir ürün, hizmet veya sonuç üretmek amacıyla yürütülen geçici faaliyetler bütünü bir girişimdir.

Bu tanımdaki en kritik kelime “geçici”dir. Yani projenin bir başlangıç ve bitiş tarihi bulunmalıdır. Bu da projeye daha başlamadan proje süresini olabildiğince iyi tahmin etmeniz gerekir. Ki çoğunlukla tahmininizin tutmadığını ve en kötünün de en kötüsüne hazırlıklı olmak gerektiğini her tecrübeli yönetici bizzat yaşayarak öğrenmiştir. 🙂

Türkiye’de ne kadar popüler bilmiyorum ancak Almanya’da her yazılım ve sistem geliştirme bölümünün panosunda mutlaka bir adet Dilbert karikatürleri bulunur. Bir nevi ibret vesikası…

Ben de durumu aslında özetleyen bir karikatürü sizinle paylaşmak isterim: (Çevirmenlerden özür dileyerek)

“Yazılım geliştirmenin ne kadar süreceğiyle ilgili birbirinden alakasız tahminler alıyorum” “Deneyimime göre, en uzun tahmini alıp 3 ile çarpman gerekir.” “Peki gerçekten deneyimin bu pesimistlikte mi?” “Gerçek deneyimim bundan da kötü…”

Başka hangi sorunlar var?

Mekatronik sistemlerin geliştirilmesini amaçlayan projelerde en bilindik mesele sistem karmaşıklaştıkça bilinmezliğin artması ve bunun da neticesinde riskin artmasıdır. Özellikle yüksek karmaşıklığa sahip otomotiv sistemlerinin süreç içerisinde projeyle ilgili onlarca önemli aşamanın tam anlamıyla gerçekleştiriliyor ve denetleniyor olması gerekir. 

Stacey Karmaşıklık Modeli’nden Esinlenilmiş Belirsizlik ve Karmaşıklık Modeli [1]: Sisteminiz basitlikten karmaşıklığa doğru geçtikçe teknik belirsizlik artar ve artık bir noktada kaos ile buluşur

 

Genelde kötü giden bir projede şu tür problemler gerçekleşir:

  • Gereksinimler eksik ya da yanlış bir şekilde yazılmış (Bazen de ortada test edilecek bir gereksinim değil, fakat sadece bir bilgi var. )
  • Geliştirme süreci gerektiği kadar denetlenmiyor. Şeffaf bir geliştirme sürecinden bahsedemeyiz. 
  • Kalite kontrolü genelde sadece mühendise bırakılır, ne kadar gereksinimin test edildiği, test senaryoları ve sonuçları raporlanmaz ya da hiç takip edilmez.
  • Proje yönetiminde planlama ve sonuç takibine sistematik bir yaklaşımda bulunulmaz.

Belki 10 senedir bu sorunların onlarca örneğini dünyanın en büyük otomotiv tedarikçilerinde(Bosch, Continental, ZF, vb.) gördüm. Bu yüzdendir ki otomobil üreticileri kendileri ve tedarikçileri için yazılım geliştirme sürecinin denetlenmesini ve sürecin her aşamasında kabiliyet(olgunluk)seviyesinin ortaya çıkarılmasını şart koşuyor. Günümüzde artık bu şart, tedarikçi bir otomobil üreticisiyle daha kontrat imzalarken önüne konuluyor. Eğer ki süreciniz beklenen olgunlukta ve becerideyse ne ala, değilse şansınıza küsün. Bu şartı sağlayan başka bir tedarikçi otomobil üreticisinin projesini kazanacaktır.


Neden Otomotiv SPICE (A-SPICE)?

Otomotiv SPICE, AUDI, BMW, Daimler, Porsche, Fiat, Ford, Volvo gibi önde gelen otomotiv üreticileri tarafından oluşturulan Otomotiv Özel İlgi Grubu tarafından ISO 15504–5 standartlarının otomotiv özelinde türetilmiş, kısaltmasının açılımı Software Process Improvement and Capability dEtermination (Yazılım Süreci İyileştirme ve Kabiliyet/Olgunluk Belirleme) olan, adından da anlaşılacağı gibi bir süreç değerlendirme ve iyileştirme modelidir. Peki bir şirket böyle bir modele neden ihtiyaç duyar? 

  • Oluşabilecek riskler önceden tespit edilir ve böylece ileride oluşabilecek yüksek maaliyetler en aza indirilir. Seri üretimdeki bir otomobil için üretilen bir üründe ortaya çıkabilecek herhangi bir hatanın maaliyeti ile ürün geliştirmenin hemen başında ortaya çıkacak bir hatanın maaliyeti arasındaki fark hata başına on binlerce euroyu bulabilir. Sadece 2016 senesinde otomotiv üreticilerinin otomobilleri yazılım güncellemesi ya da parça değişimi için geri çağırmasına harcadıkları para 22 milyar dolar… 
  • Projedeki hatalar daha erken tespit edilir
  • Üründe daha az sistematik hata bulunur
  • Proje planları daha doğru belirlenir
  • Çoğu zaman otomotiv tedarikçileri herhangi bir otomobil üreticisiyle sadece bir kontrat yapabilmek için dahi üretici tarafından belirlenmiş, belli bir kabiliyet/olgunluk seviyesinde olması beklenir ki bu seviye A-SPICE değerlendirme ve denetiminde ortaya çıkar
  • Amaç, karmaşıklık seviyeleri oldukça yüksek olan mekatronik sistemlerin olabildiğince en az hataya sahip, yüksek kalitede ve önceden ön görülebilir bir şekilde geliştirilmesini ve üretilmesini sağlamak

Tüm bu amaçlara erişebilmek için üretici tecrübeli baş A-SPICE denetçisi ve yanında eşlik eden 2 yardımcı denetçiyle birlikte projenin nasıl bir süreçle geliştirildiğini ve yönetildiğini denetler. Proje sahip olduğu tüm süreç alanlarının anlık fotoğrafını çeker ve sonuç olarak o an için sürecin kabiliyet/olgunluk seviyesi belirlenir. 

Kabiliyet/Olgunluk Seviyeleri

A-SPICE’ta değerlendirilen şey projede uygulanan süreçtir. Değerlendirme sonucunda ise projenin hangi olgunluk seviyesinde geliştirildiği saptanır. Olgunluk seviyelerini daha iyi anlatabilmek için A-SPICE eğitimlerinde de verilen “Yemek pişirme” örneği yeterli olur diye düşünüyorum. Farz edelim ki projemiz “Hamburger”.

Proje: Hamburger

Senaryo 1

Hamburger için hangi malzemeler gerektiğine bakmaksızın, buzdolabının kapağını açıp, hamburgere uyacağını düşündüğümüz, elimizde ne varsa bir araya getirip, misafirlere servis ettiğimizi düşünelim. 

Bu tamamlanmamış bir süreç olurdu ve süreç kabiliyet seviyesi CL0 (Incomplete — Tamamlanmamış) olarak belirlenirdi. Neden? Daha gereken malzemelere doğru düzgün bakmaksızın, seçtiğimiz malzemelerin birbiriyle uyumunu düşünmeden, malzemelerin gerçekten pişip pişmediğini kontrol etmeden servis ettik. Ortaya bir hamburger çıkabilir evet ancak bu, belirlenmiş bir süreç işletilmediğinden dolayı kişisel bir çaba olurdu ve ortaya çıkan hamburgerin etinin ne kadar iyi piştiği, hangi sosun ve salata malzemesinin konulduğu gibi “kalite kontrolü” hamburgeri hazırlayanın insiyatifine bırakılmıştır. Ortada uygulanan bir süreç yok ya da süreç tamamlanmamıştır.

Senaryo 2

Hamburger için gereken malzemeleri marketten satın alır, malzemeleri hamburgeri hazırlamaya başlayana kadar taze tutmak için buzdolabına koyarız, zamanı geldiğinde ise malzemeleri buzdolabından çıkartıp, kendi tecrübemize göre yemeyi hazırlar, pişirir ve servis ederiz.

Yemek bir süreç sonucunda hazırlanmıştır ve süreç kabiliyet seviyesi CL1 (Performed — Gerçekleştirilen) olarak belirlenirdi. Fakat bu senaryo da sorunlar barındırıyor. Hazırladığımız hamburgerin hala kalitesini kontrol etmedik. Lezzetli oldu mu? Peki bir dahaki sefer yine aynı lezzette hazırlayabilecek miyiz? Kısacası süreç gerçekleştirilmiş fakat planlanmamış, yönetilmemiş ve denetlenmemiş.

Senaryo 3

Hamburgeri hazırlamak için hangi tarifi kullanacağımızı, bütçemizi ve bu bütçeye göre hangi malzemeleri seçeceğimizi, pişirme, hazırlama ve servis etme gibi görevler için hangi çalışanlara ihtiyaç olduğumuzu ve zamanı belirler, görevleri takımınıza dağıtırsınız. Görevlerin zamanında tamamlanıp tamamlanmadığını da kontrol edersiniz; süreci yönetir ve hamburgerin planlanan zamanda hazırlandığından ve servis edildiğinden emin olursunuz. 

Bu senaryoda süreç yönetilmiş, fakat hamburgerin başka bir takımla da aynı lezzette hazırlanıp, aynı kalitede servis edilecek miydi? Kısacası şöyle düşünelim, bir hamburger zincirisiniz Bursa ve İstanbul’da şubeleriniz var. Farklı şubelerde aynı hamburgerin aynı lezzette ve aynı zamanlamayla hazırlanacağından nasıl emin olabilirsiniz? Süreç kabiliyet seviyesi CL2 (Managed — Yönetilen) olarak belirlenirdi.

Senaryo 4

Şirketiniz tarafından kullanılacak, her şubeye uyarlanabilir ve uygulanabilir şirketiniz için standart hamburger pişirme ve servis etme metodu geliştirirsiniz. Et ve salata malzemelerinin hangi üreticiden geldiği, kaç gün buzdolabında kalması gerektiği, pişirirken hangi yöntemle ne kadar süre kaç derecede pişirileceği, hangi sosun hamburgere ne kadar konulacağı, çalışanların giyeceği kıyafetten, servis ederken söyleyeceği cümleye kadar her şeyi her şube için aynı ya da uyarlanabilir derecede bir standart metod belirlersiniz ve bunu uygularsınız. Bununla da yetinmeyip çalışanlarınızdan ve müşterilerinizden gelen geri bildirimlerle bu metodunuzu daha da geliştirir, eksik yanlarını iyileştirirsiniz. Sonuçta farklı şubelerde, farklı çalışanların hazırladığı ve servis ettiği sizin beklediğiniz kalitede hamburgeri müşterilerinize sunmuş olursunuz. Süreç kabiliyet seviyesi CL3 (Established — Belirlenmiş) olarak belirlenirdi. Bu noktada sorun belirlediğiniz hamburger pişirme süreci ön görülebilir mi yoksa sürecinizin sezgisel mi değerlendiriyorsunuz? Bazen neden istenilen lezzette hamburgerin pişirilemediğini biliyor musunuz? 

Endüstride, otomotiv sektöründe genellikle otomotiv üreticileri, tedarikçilerden bu süreç kabiliyet seviyesini talep etmektedirler.

Eğer ki hamburgerin pişirme süresini, sıcaklığını devamlı kayıt altına alır, her hamburgerden sonra müşteriden geri bildirim alır ve bunları istatistiksel olarak anlamlı bir veriye dönüştürür hamburger pişirme sürecinizi devamlı düzeltir, hatalardan arındırır ve her defasında gerçekten istatistiksel olarak da ön görülebilir mükemmellikte hamburgeri hazırlar ve servis ederseniz süreç kabiliyet seviyesi CL4 (Predictable — Ön görülebilir) olarak belirlenebilirdi. 

Endüstride askeri alanda üretilecek ürünlerden bu süreç kabiliyet seviyesi beklenir.

Bir de bunun üstüne yeni pişirme teknikleri, laboratuvar ortamında geliştirilmiş etler gibi yenilikçi teknolojilerin araştırılması ve kullanılan metodun sürekli geliştirilmesi süreci CL5 (Innovating — Değişen) kabiliyet seviyesine taşırdı.


Özetle

A-Spice projenizin fotoğrafını çeken bir değerlendirme ve iyileştirme modelidir. Sürecinizin kabiliyet seviyesi A-Spice değerlendirme toplantıları sonucunda denetçiler tarafından, projenizle ilgili sunduğuz bilgiler ışığında belirlenir. Bu olgunluk seviyeleri CL0 (Incomplete — Tamamlanmamış), CL1 (Performed — Gerçekleştirilen), CL2 (Managed — Yönetilen), CL3 (Established — Belirlenmiş), CL4 (Predictable — Ön görülebilir) ve CL5 (Innovating — Değişen)tir. 

Her otomotiv tedarikçisinin, üreticinin belirlediği süreç kabiliyet seviyesinde projesini yönetmesi, ortaya çıkacak ürün için hayati öneme sahiptir. Projeniz belirli bir olgunluk seviyesinde değilse, sürecinizde iyileştirmeler yapılmalı, A-SPICE’a uygun bir şekilde süreciniz yeniden ele alınmalı ve stratejik hedeflerinize uygun bir şekilde gereken değişiklikler yapılmalıdır.

A-SPICE danışmanlığı için bizimle iletişime geçebilirsiniz. 

M.Eng.Can Acar


Referanslar

https://de.wikipedia.org/wiki/Automotive_SPICE

https://vda-qmc.de/en/software-processes/automotive-spice/

[1]Agile Practice Guide, Project Management Institute, 2017

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.