Yazılımda Fast Food Scrum

Konuk yazarımız Osman Sönmez'in kendi kişisel tecrübelerini aktardığı blog yazısını sizlerle paylaşıyoruz. Keyifli okumalar.
 
Baştan söyleyeyim yanlışım varsa düzeltin lütfen. 1.5 seneden fazladır projelerimizi Scrum metedolojisi kullanarak yapıyoruz ama ben hala Scrum'ın faydasını anlamış değilim. Scrum ile ilgili ilk bilgileri edindiğimde faydalı bir şey olduğunu düşünmüştüm. Japonlar kullanmışsa iyidir demiştim. Her ithal ettiğimiz şeyi amacına uygun kullanmadığımız gibi galiba bunu da amacına uygun kullanmıyoruz.
 
Scrum'ın ülkemizde veya kendi kullandığımız projelerde uygulanış biçimini Fast Food satan yerlere benzetiyorum. Kısa zamanda çok iş :). Biri yağı döksün, aynı anda biri ocağın altını yaksın, aynı anda biri köfteleri hazırlasın, aynı anda biri siparişleri alsın, aynı anda  biri patatesleri kızartsın, biri ekmekleri hazırlasın, biri patatesleri paketlesin, biri köfteleri paketlesin vs... Herkes koşturuyor, çünkü müşteri buraya geldiğinde 5 dakika içerisinde yemeğini almak istiyor. 5 dakikada bütün bunların hazır olması gerekiyor. 6 dakika  olmaz deniyor, mutlaka 5. dakikada bu müşteriye verilecek. Müşteri memnun mu? Eh... Evet, yemeğini almış mutlu :). Kalite mi? Çok da önemli değil biz müşteriye hızlı bir şekilde yemek vereceğiz demişiz. Mutfaktakiler mi? Çok yorulmuşlar ve şunu anlamışlar ve öğrenmişler: Biz bu şekilde hizmet vereceksek malzemenin önceden  hazır olması gerekiyor, ne yapalım biz geceden malzemeleri hazırlayalım veya bir yere hazırlatalım. Hızlı pişmesi için de yarı pişmiş olsun. Müşteri farklı birşey talep ederse ne yapacağız?
 
 
5 dakikada Hünkar Beğendi yapacak halimiz yok. Elimizdeki malzeme bu. Yeni birşey yapmak için zaman olması gerekiyor. Mutfaktakiler çok yoruluyor, bir ürün çıkıyor ama kalitesi ve geliştirilebilirliği tartışılır, müşteri memnun gibi ama yeni bir şey isterse tecrübeli adam yok, çünkü herkes hızlı köfte üzerine uzmanlaşmış, başka bir şeye vakit verilmemiş.
 
Evet biz Scrum yapmaya başlarken, geleneksel yemekleri bırakmış Fast Food yapmaya başlamışız. Çünkü bize sunulan ve istenen şey tam olarak bu.  Niye Scrum yapıyoruz? Şelale yönteminde işler çok yavaş, bitmiyor, isterleri toplamak çok uzun vs. kaygılarla Scrum yapıyoruz. Aynı iş Scrumda daha çabuk oluyor diyorlar. Hem de mesai yapmadan oluyor diyorlar. Mesai yapmama olayına inanmıyorum çünkü fazla fazla yapıyoruz. Aynı iş oluyor mu? Oluyor gibi ama aslında Akçaabat  Köfte yapmamız beklenirken, biz daha hızlı pişmesi için aynı görünümde başka bir köfte yaptık, daha az lezzetli ama görünümü aynı Akçaabat.
 
 
Evet şimdiye kadar gördüğüm bu. Aslında bize anlatılan Scrum, Akçaabat köfte yap ama kaliteden ödün verme, organizasyona değer ver ve devamlı geliştir değil miydi? Problemlere hemen müdahele et ve süreçleri geliştir değil miydi? Development açısından baktığımda daha içler acısı bir durum görüyorum. Development takımlarına daha çok iş düştüğünü görüyorum. Scrum'da analiz var ama dökümantasyon pek yok diyorlar. Dökümante etmek zaman alırmış :). Developer soru sorar: Bu konuda analiz dökümanı var mı? Şunu ne yapacaktık acaba? Cevap: Ara sor veya yüz yüze sor, tam olarak ne istiyorsunuz? Ara sor veya yüz yüze konuş, mailleş ve bir sürü  mailden ne yapılacağını çıkar, bol bol "Ben sana söylemiştim hatırlamıyor musun?" diyalogları. Scrum yapmak için biyonik developer olmak gerekiyor. Hafızaya al ve bir daha unutmamak üzere kaydet. Çünkü Scrum'da, Şelale yöntemindeki gibi döküman yazılmaz, öyle öğrendik biz. İşimize de geliyor aslında :). Biz  söyledik developer yapsın işte.
 
İsterler pat diye geliyor ya 7.sprint geliyor biz şöyle bir ekran istiyoruz deniyor. Uçsun kaçsın. Biz bunu yaparız ama biraz araştıralım. 2 haftada bitmesi lazım :). Jquery.UI diye bir şey varmış onunla yaparız herhalde. Başlıyoruz yapmaya, yaptık yaptık iyi birşeylerde çıktı. Allah Allah IE8 de çalışmıyormuş bu. Tüh yaparız da dedik. Nerden bileceksin IE8'de çalışmadığını. IE8 müşteri için olmazsa olmaz deniyor. Bir o kadar da IE8 için uğraş. Gece gündüz yetiştirmeye çalış. Keşke buna benzer bir şey isteyeceklerini çok daha önce söyleselerdi, ya da bir analist bunu çok önceden sorgulasa mıydı? Bütün Scrum böyle geçiyor, bitiyor.
 
Sonunda şunu söylüyoruz: Biz ya Scrum'da birşeyleri yanlış yapıyoruz, ya Scrum yanlış ya da bizde bir sorun var. Scrum bizi çok yoran, çok daha kısa sürede aynı işi yapmaya çalıştığımız, düzensiz ve dökümansız çalıştığımız ve en önemlisi çok dağınık bir kodlama yapılan bir ortama doğru götürüyor gibi. Bu şekilde yapılan çalışmaların uzun vadede özellikle development takımlarının gelişimine ciddi negatif etkisi olacağını düşünüyorum. Birilerinin Scrum yapılırken  gerekli Ar-Ge faaliyetleri ve development gelişimi için nelerin yapılması gerektiğini, Scrum içerisinde bir yere koyması gerekir diye düşünüyorum.
*Bu yazı Osman Sönmez'in kendi blogundan alıntıdır.

12 yorum:

  1. Merhaba Osman,
    Yazını okuyunca sık karşılaşılan bir problem kalıbı ile karşılaşıyor insan. Ancak şundan eminimki Scrum, dokümantasyon yapmadan yazılım geliştirmek anlamına kesinlikle gelmemeli. Aksi halde ortaya çıkan kompleks ürünün (ürettiğiniz yazılımın) kaliteli ve zamanında geliştirilebilmesi, hayatını sürdürebilmesi doğal olarak mümkün değil.
    Türkiye'nin en büyük bankalarından birinde çalıştığını gördüm. Dokümantasyon eksikliği konusunda finans sektöründe çalışan birinin şikayet ediyor olması oldukça az rastlanır bir durum. Bu duruma yol açan şeyin "Agile/Scrum" pratikleri olması ise çok üzücü.
    "Agile/Scrum" pratiklerde dokümantasyonun nasıl yapılabileceği ya da yapılmasının fayda sağlayacağı ile ilgili Türkçe bir makaleyi kaleme alıp bu konudaki fikirlerimi paylaşmayı arzu ediyordum. Bu nedenle bir süredir bazı yayınları takip ediyorum. Bunların içinden bana en çok yardımcı olan "Agile Modelling" sitesinin yayımladığı "Best Practices for Agile/Lean Documentation" başlıklı makalesi (yazının sonunda bağlantıyı paylaştım). Senin de fikirlerini ve şu anda yaşadığınız problemlerin giderilmesine yönelik çözüm olup olamayacağını öğrenmeyi çok isterim. Umarım hem senin hem de beraber çalıştığın ekip için çektiğiniz sıkıntıların giderilmesinde ve layıkı ile "Agile/Scrum" uygulanmanıza yardımcı olur. http://www.agilemodeling.com/essays/agileDocumentationBestPractices.htm
    Deger

    YanıtlaSil
    Yanıtlar
    1. Atıf Bey Merhaba,

      "Agile/Scrum" pratiklerde dokümantasyonun nasıl yapılabileceği ya da yapılmasının fayda sağlayacağı ile ilgili Türkçe makalenizi buradan yayınlamak isterseniz çok memnun oluruz.

      Saygılarımla.

      Sil
    2. Merhaba Barış,

      Elbette, benim de niyetim yazıyı belirli bir olgunluğa getirdikten sonra sizlerle paylaşıp fikirlerinizi ve katkılarınızı almakdı. Sonrasında yazının fayda sağlayacağını düşünürseniz sizin aracılığınız ile paylaşılmasından memnumiyet duyarım.

      Değer

      Sil
    3. Yazınızı buradan yayınlamak bize onur verir Değer Bey. Büyük bir merakla bekliyoruz yazınızı. Saygılarımla.

      Sil
  2. Atıf bey selam. Yorumunuz için teşekkürler. Öncelikle şunu demek istiyorum ki; yeni bir modeli büyük kurumların yıllanmış çalışanlarına uygulatmak,kabul ettirmek hatta doğru anlatabilmek ciddi anlamda zor. Alışılmış bir kültür var ve bundan uzaklaşılması gerekiyor. Öncelikle kurumun yazılım bölümünün bir dökümantasyon kültürü ve dökümantasyon şablonu olması gerekiyor. Bu şablonları da çalışma modeline göre değiştirebilmesi gerekli. Bizim yaşadığımız en önemli sorun bu yapının olmaması ve dökümantasyon kültürünün oturmamış olmasıydı. Bilirsiniz projeyi veya yapılacak işi maliyetlendirirken işin kabaca halinden ziyade detaylar belirleyici rol oynar. Yazılımda biraz inşaata benziyor aslında, temeli yanlış atarsan ya hep yanlış ilerlersiniz yada yıkıp yeniden yaparsınız. Bu nedenle hangi modelde çalışırsak çalışalım isteklerin analizini iyi yapmak ve bunları ilgili döküman modelinin içine yerleştirip sorgulaması / sağlamasını yapmak gerekiyor. Sizin gönderdiğiniz linktede belirtilmiş aslında temel sistem parçalarını iyi dökümantasyon etmenin kazanç sağlayacağı belirtiliyor. Aslında gerçekten faydalı bir link oldu. Bende ekip arkadaşlarımla paylaşacağım. Scrum yaparken dökümantasyon yoktur mantığını kırıp nasıl ve nerede yapmamız gerektiğini çok güzel anlatmış. Yalnız benim eklemek istediğim, bunu bir kültür olarak insanların benimsemesi, iyi analizin ve müşteriyi / kullanıcıyı iyi anlamanın aslında iyi, temiz, öz, kısa, az değişen dokümanın temeli olduğudur. Bizimde projelerde temel sorunumuz buydu aslında. Agile suçlu değildi.Agile çalışmayı şampiyonlar ligine benzetecek olursak, zaten iyi olmayan, sistemi ve süreçleri oturmamış bir takımı sen şampiyonlar liginde oynatırsan iyi oyuncuları olsa bile oranın temposuna alışamaz / alışmaz 10 yer gelir. Aynı oyuncuları sistemi oturmuş, ne yapacağını bilen ve yapmak isteyen bir takıma koyarsan başarılı olduklarını göreceksin. Buradan hareketle yine senin gönderdiğin linktede belirtilmiş bu işi yapmış profesyonel birinden veya scrumı ve yazılım metodolojilerini iyi bilen bir Koç ile çalışmak bizim takımı şampiyonlar liginde oynayacaktır. Bende yazını sabırsızlıkla bekliyorum. Telefondan yazıyorum imla hataları olabilir kusura bakma. Teşekkür ediyorum.

    YanıtlaSil
    Yanıtlar
    1. Tekrar merhaba,

      Vakit ayırıp makaleyi okuduğun ve genel olarak fikirlerini paylaştığın için teşekkürler. Yaşadığınız problemi ve çözümünü gayet net bir şekilde ifade ettiğini düşünüyor ve yürekten sana katılıyorum. Şunu ifade etmek istiyorum ki bu dönüşüme başlamak için bir koç size çok yardımcı olacak ve bu dönüşümü/gelişimi kesinlikle hızlandıracaktır. Ancak dönüşümü gerçekleştirecek ekip geliştirme ekibi olduğuna göre bence doğru adımları bugünden atmaya başlamamak için bir neden yok :) Adım adım bu dönüşüme başlamanın ve sürdürmenin mümkün olduğuna inanıyorum. Hatta bu konuda insiyatif alarak bu dönüşüme öncülük etmenin hem kişisel olarak hem de ekip olarak büyük bir tatmin de sağlayacağına inanıyorum.

      Her ne kadar bir önceki yorumda paylaştığım makale genel pratikler seti sunuyor ve faydalı bulsam da, benim en çok faydalandığım makaleler canlı ve spesifik pratiklerin/uygulamaların anlatıldıkları. Örnek olarak Spotify'ın mühendislik kültürünün anlatıldığı, daha önce sanırım Barış'ın Türkçe olarak makaleleştirdiği, 2 bölümlük animasyon serisini aşağıda paylaşıyorum

      Spotify Engineering Culture 1 - http://vimeo.com/85490944
      Spotify Engineering Culture 2 - http://vimeo.com/94950270

      Ben de hazırladığım yazıda şu anda çalıştığım firmada uygulamaya ve geliştirmeye çalıştığımız bir dokümantasyon hayat döngüsü modelini paylaşmaya çalışacağım. Amacım sizlerin de tecrübelerinden ve değerli katkılarından faydalanarak bu süreci daha da olgunlaştırabilmek ve herkesin yararına olabilecek şekilde kullanabilmek.

      İnanıyorum ki beraberce pek çok firmada yaşandığını bildiğimiz ve bizzat tecrübe de ettiğimiz sıkıntıların çözümüne yönelik bir çıktıya ulaşacağız.

      Sil
    2. Agile Koçu beklemeye gerek yok :) Bakın Masaaki Imai, Kaizen Enstitüsü kurucusu ne diyor: "Everyday improvementi everybody improvement" :)
      http://www.youtube.com/watch?v=jRdTFis4-3Q

      Sil
  3. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  4. Kotu kod yazan birinin programlama diline laf atmasi gibi bir sey olmus bu yazi. Yani koskoca sirketler Scrum uyguluyorlar, memnunlar ve basarililar. O zaman donup kendimize bakmamiz lazim diye dusunuyorum.

    Ozellikle ilk cumle bana cok komik geliyor bu yazida. Defalarca okudum. "1.5 senedir uyguluyoruz ve faydasini goremedim." Faydasini gore bir suru yer olduguna gore demek ki "uyguluyoruz" kisminin uzerine gitmek gerek. "uygulamaya calisiyoruz" deseydiniz biraz daha mantikli olurdu.

    YanıtlaSil
  5. Said bey merhaba. Yorumunuz için teşekkürler. Bilirsiniz Futbolda çeşitli taktikler vardır. Barcelona'nın oynadığı ve başarılı olduğu taktikle galatasaray başarısız olabilir. Dediğiniz gibi Scrum'ı bir taktik olarak düşünürsek her takım bunu aynı şekilde beceremeyebiliyor.amacımız aslında bunun üstesinden gelip başarılı olmak. Ama bir yerlerde yanlış yapıyoruz ki başarılı olamamışız. Bunu ortaya çıkarmak ve doğru bir Scrum uygulamasını yapabilirmiyim ortaya çıkarmaktır. Öneri ve uygulama örneklerinizi dinlemek isterim. Saygılarımla

    YanıtlaSil
    Yanıtlar
    1. Futbol taktigi ornegi cuk diye oturuyor bence. Kesinlikle haklisiniz. Ayni acidan bakinda Akcaabat kofte orneginin de buna ters olarak cok yanlis oldugunu dusunuyorum. Akcaabat kofte icin vakit birakilmamis diyorsunuz ya. Barcelona nasil iyi futbol oynuyorsa, Scrum ile iyi Akcaabat kofte yapanlar da var.

      Ben de yaklasik 1.5 senedir scrum uygulanan projelerdeyim. Hicbir zaman kod kalitesinden odun vermedim. Gerektigi zamanlarda refactor yapmaya gayret gosterdim. Scrum konusunda uzman kesinlikle degilim. Nasil yapilir veya yapilmali konusunda bir sey yazamiyacagim ne yazik ki. Ama yapilabildigini biliyorum.

      Sil