Etiket arşivi: Extreme Programming

Pair Programming’in Faydaları Nelerdir?

Pair Programming’in Faydaları Nelerdir? Eşli Programlama’nın Faydaları Nelerdir?

Eşli Programlama aşağıdaki faydaları sağlar. Ne yazık ki Scrum gibi Eşli Programlama’nın faydaları da Eşli Programlama yapmaya başladıktan sonra anlaşılır. Yapmadığınız sürece bu faydaları zihninizde canlandıramazsınız. Bu nedenle faydalar gerçek değilmiş gibi görünebilir. İşin kötü tarafı faydası olmayacağını düşünmektir ve bu düşünceyi destekleyen -iki kişinin aynı servis üzerinde çalışması zaman kaybı ve çöptür- düşüncesinin çok daha somut görünmesidir.

  • Disiplini artırır. Eş olan partnerler genellikle “doğru şeyi yap” yaklaşımındadır. Bunu yaşadığım bir örnekle anlatmaya çalışacağım. Partnerler birbirlerinin dikkat dağınıklıklarını önleme eğiliminde olurlarsa Eşli Programlama’nın faydalarından yararlanabilirler. Birkaç hafta önce Takım arkadaşımla Günlük Scrum-Daily Scrum- sonrası oturduk ve yukarıda bahsettiğim servisleri yazmaya devam ettik. Sabah Sürücü koltuğuna oturan arkadaşımdı ve nedenini bilmediğim şeylerden ötürü dikkatinin çok kolay dağıldığının ve normalde yapmayacağı hataları yaptığının farkındaydım. Burada Gözlemci’nin yaklaşımının çok önemli olduğunu biliyordum. İlk önce daha fazla hata yapmasını engellemek için yaptığı birkaç hatayı gösterdim. Aklının çok çabuk dağıldığını oda söyledi. O zaman isterse onu yalnız bırakabileceğimi ya da kısa bir ara verip yazmaya devam edebileceğimizi söyledim. Biraz sohbet ederek o an yaptığımız işten uzaklaştık, bu süre en fazla 10-15 dakikaydı. Biraz gülüp, eğlendikten sonra tazelenmiş kafayla oturduk ve konstrasyonumuz bozulmadan yazmaya devam ettik.

Pair Programming’in Faydaları Nelerdir? yazısına devam et

Pair Programming Nedir? Eşli Programlama Nedir?

Pair Programming Nedir? Eşli Programlama Nedir?

Bu makalede Pair Programming Nedir konusunu anlatmaya çalışacağım. Yöneticilerin büyük çoğunluğu yazılım geliştiricileri nadir birer kaynak gibi görür. Onlar için bir parça kodu iki kişi yazmak çöp (israf) yaratır ve buna izin vermezler.

Yazılım geliştirme -eskiden beri- tek başına yapılması gereken bir iş olarak öğretildi ve insanlar hep tek başlarına kod yazdı.

Birçok deneyimli yazılım geliştirici bir başkasıyla kod yazmaya hevesli değildir. Bazı deneyimli yazılım geliştiriciler kodlarının “kişisel” -özel, başkasına kapalı olan- olduğunu ya da başkasının onları yavaşlatacağını söyler.

Bazı deneyimli yazılım geliştiriciler bir partner ile çalışmanın çalışma sürelerini uzatacağını söyler. Başka deneyimli yazılım geliştiricilerse biriyle beraber çalışmanın kodlarında problemlere neden olabileceğini söyler.

Şimdi sizlere Pair Programming’i anlatacağım. Yukarıda söylenenlerin ne kadar yanlış olduklarını ispatlamaya çalışırken aşağıdaki konulara değineceğim ve bunu elimden geldiğince kolay anlaşılabilir bir şekilde yapmaya çalışacağım.

  • Eşli Programlama Nedir?
  • Faydaları
  • Eş Olma Varyasyonları
  • Uzaktan Eşli Programlama Nedir?
  • Eleştiriler

Pair Programming Nedir? Eşli Programlama Nedir? yazısına devam et

Yazılım Ustalığı ve Yetkinlik

Yazılım Ustalığı ve Yetkinlik

Scrum’ın yükselişi Çeviklik topluluğunda dehşet yarattı. “Uncle Bob”, bu problemi beşinci Çevik Bildiri değerini, Saçmalıktan ziyade Ustalık (Uygulama) eklemek isteyerek belirgin hale getirdi[Martin – “Quintessence”]. Bu çok daha fazla ihtiyaç duyulan bir topluluğun, Yazılım Ustalığı topluluğunun oluşmasını sağladı[“Manifesto for Software Craftsmanship”].

Bunu daha önce söylemiştim, Çeviklik, İşbirliği ve Usta-Çıraklık üzerine odaklanmıştır. Biz, yazılım geliştiriciler topluluğu olarak süreklilik için Yetkinlik kültürüne ve teknik mükemmeliyete dikkat etmek zorundayız. Bu konuda daha fazla bilgi için Uncle Bob’un makalesine bakınız[Martin – “The Land that Scrum Forgot”].

Aşağıdaki diyagram, Yazılım Ustalığı Bildirisi’nin Schneider Kültür Modeli içinde hangi kültüre denk geldiğini gösterir. Yazılım Ustalığı ve Yetkinlik yazısına devam et

Agile Nedir?

Agile Nedir?
Agile Nedir?

Agile Nedir?

Agile nedir? Fikir birliğine varılmış tanım 2001 yılında Agile Manifesto’da yapıldı. Agile, bir grup değerler ve prensipler tarafından desteklenen bir inanış, bir fikirdir. Diğer bir deyişle Agile başarılı yazılım teslim etmek için hedef kültürü tanımlar.

 

Agile yaygın olarak bir süreç ya da bir süreçler kümesi olarak tanımlanır. Bu doğru fakat tehlikeli bir soyutlamadır. Ne yazık ki bu yanlış ifadeyi birçok defa kullandım. Eğer Agile sadece bir süreçler kümesi olsaydı o zaman kültür en büyük problem olarak karşımıza çıkmazdı! İlk Agile Management Tool’unu kendi adıyla üreten VersionOne tarafından 2012 – 2013 – 2014 yıllarında gerçekleştirilen anketleri incelediğimizde organizasyonel kültürü değiştirmedeki zorluk en büyük engel olarak görüldüğü ortaya çıkar.

 

Kültür, bir organizasyonun ya da grubun içinde bulunan bireyin yaptıkları ve gerçekleştirdikleridir. Bu nedenle Agile Transformasyon gerçekleştirilen organizasyonlar ya da gruplarda çalışan bireyler yaptıklarını ve gerçekleştirdiklerini değiştirmelidirler. Yaptıklarımızı değiştirebilmek için düşünme şeklimizde temel bir değişikliğe gitmemiz gerekir.

Agile Nedir? yazısına devam et

Scrum Kılavuzu

Scrum Klavuzu
Scrum Klavuzu

Scrum Kılavuzu’nu bağlantıdan indirebilirsiniz:

Scrum Kılavuzu’nun Amacı

Scrum, karmaşık ürünlerin geliştirilmesi, teslim edilmesi ve bu ürünlerin bakım çalışmaları için bir çerçevedir. Bu kılavuz Scrum’ın tanımını içerir. Bu tanım içinde Scrum’da bulunan roller, etkinlikler, araçlar ve bunların hepsini bir araya getiren kurallar bulunmaktadır. Scrum’ı, Ken Schwaber ve Jeff Sutherland geliştirmiştir. Scrum Kılavuzu, onlar tarafından yazılmıştır ve sunulmuştur. Scrum Kılavuzu’nun arkasında beraber dururlar.

Scrum’ın Tanımı

Scrum(isim): Olası en yüksek değere sahip ürünlerin üretken ve yaratıcı bir şekilde teslimi yapılırken insanların karmaşık adaptif problemleri çözebildiği bir çerçevedir.

Scrum Kılavuzu yazısına devam et