istemeyen birini bulmak zorsaygıyla karşılanmalıdır. Ama bu durumun bir nedeni olmalı. Örneğin, bir kişi yazılım geliştirme alanında yüksek nitelikli, tanınmış bir uzman olduğunda. Ve bunun için öğrenmeniz gerekiyor. Ve bu yazı çerçevesinde Agile'ın ne olduğuna, faydalarının neler olduğuna ve bu teknolojiyi nasıl anlamamız gerektiğine bakacağız.
Genel bilgi
İlk olarak, teknik ile ilgilenelimanlar. Çevik nedir? Bu kelimenin İngilizce'den çevirisi (literal) “canlı, hareketli” ve “esnek” den biraz daha az bahsediliyor. Ve bu arada, bu bir azalma. Bu yaklaşımın tam adı Çevik yazılım geliştirme.Ancak çok uzun olduğu için kesilmesine karar verildi. Ve şimdi sadece Çevik diyorlar. Gerçek duruma en iyi şekilde uyduğu için “esnek” olarak çeviri kullanılır.
Buraya neler dahildir?
Çevik'in ne olduğunu düşünmeye devam ediyoruz.Burada bunun birçok farklı metodolojiye (Scrum, XP, Kanban, Lean) dayanan esnek bir yaklaşım olduğu gerçeğine odaklanmak istiyorum. Konuyu daha iyi anlamak için paralellikler çizelim. Diyelim ki Çevik teknolojiler evrenin kaynağı. Nihai ürün, gerçek dünyanın kendisidir. Ve büyük patlama, yalnızca yüzleşmeniz gereken en acı verici sorundur - bir ürün için gereksinimler listesini değiştirmek. Tipik olarak, oluşturma süreçleri bir şelale modelinin kullanımını içerir. Bu durumda, her şey sırayla ve aşamalar halinde gider. Bu yaklaşım kısaca ifade edilebilir: Hedefi görüyorum - ona gidiyorum. Ve nihai sonucun gereklilikleri değişirse, bazen neredeyse her şeyin yeniden yapılması gerekir. Bu durumu daha da karmaşıklaştıran şey, her şey yolundaymış ve ilerlememiz gerekiyormuş gibi davranmaya çalışmaktır.
Ve böylece bir yönetim metodolojisi olan Agile,tüm bunlarla esnekliğinle savaş. Bu prefabrike hodgepodge, bir dizi ilkenin kullanılması yoluyla çeşitli riskleri en aza indirir. Bütün bunlar 2001 yılında yayınlanan Çevik Manifesto'da yansıtılmıştır. Kısacası, kulağa şöyle geliyorlar:
- Ana şey insanlar, şeyler değil.
- İşbirliği yapın, sözleşmeyi okumayın.
- Belgeler çalışmayı engellememelidir.
- Mümkün olduğunca çabuk değiştirin.
Çok belirsiz ve doğru değil gibi görünebilir, ancak biraz daha detaylandıralım.
Proses düzenlemesi
Agile'ın ne olduğuna bakarken, Scrum olarak bilinen en popüler metodolojilerden birine dönelim. Ne teklif ediyor? İlk önce ihtiyacınız olan:
- Bir ürün sahibi seçin. Kişi bu role, gördüğüne, hangi hedefe gitmesi gerektiğine ve sonunda ne olacağına uygundur.
- Bir takıma karar verin. Bu, sonuç alma becerisine sahip üç ila on kişilik bir grup gerektirir.
- Sorumlu bir uzman seçin. Bu, projenin gelişimini takip edecek ve ekibin zorluklar üzerinde çalışmasına yardımcı olacak kişidir.
- Zorluklarla başa çıkın.Mevcut tüm ürün gereksinimleri tek bir yerde toplanmalı ve öncelikler belirlenmelidir. Ürün sahibi tüm dileklerini burada toplamalıdır. Daha sonra ekip bunları değerlendirir ve uygulanıp uygulanamayacağını ve ne kadar sürdüğünü anlar.
- Tüm iş yükünü, ekibin belirli görev kümelerini gerçekleştireceği bir veya iki haftalık zaman dilimlerine ayırın.
- Toplantılar günlük olarak yapılmalı ve on beş dakikayı geçmemelidir. Gündem, dün yapılanları, bugünün planlarını, zirveye çıkmamızı engelleyen engelleri tartışmalıdır.
- Ekibin yapılanlar hakkında konuştuğu (iki) hafta için incelemeler yapın. Bu durumda, ürünün parçalarının performansını göstermek gerekir.
- Her zaman periyodundan sonra sorunların tartışılması ve çözüm aranması gerekir. Üstelik tüm gelişmeler bir an önce hayata geçirilmelidir.
Agile'ı nasıl tanırsınız?
Yönetim metodolojisi, seçilen yöne bakılmaksızın her zaman aşağıdaki özelliklere sahiptir:
- Riskleri en aza indirmek. Bu, herhangi bir esnek yaklaşımın ana hedefidir.
- Yinelemeli geliştirme. Bu durumda, küçük döngüler halinde çalışmak anlamına gelir.
- En önemli şey insanlar ve aralarındaki iletişimdir.
Bir nehir düşünelim. Müşteri bir bankada. İkincisi takım. Bu durumda, çevik geliştirmenin herkes için faydaları vardır:
- Müşterinin minimum düzeyde verimli bir ürüne ihtiyacı vardır. Ancak, oluşumu sırasında koşullar değişebilir.
- Ekibin meslektaşları ve müşteri ile iletişim kurması yararlıdır.Bu durumda yanlış anlaşılma riski en aza indirilir, süreçlerin şeffaflığı artar, sorunlar hızlı bir şekilde çözülür, ürün oluştururken sürpriz olma ihtimali azalır.
sosyal faktör
Çevik'in ne olduğunu açıklarken genelliklesadece olumlu yönler hakkında konuşun. Gerçekten de, ekip içindeki iletişim gelişiyor. Tüm insanlar tek bir fikre odaklanır, kendi aralarında sırlar yaratmaz, yükümlülükler üstlenir. Sonuç olarak, ekip rahat bir ortamda ve hızlı bir tempoda çalışır. Bu yaklaşım, kaosu düzene sokmanıza izin verir.
Kuruluşundan bu yana, bulabilditeknoloji endüstrilerinde tanınma. Şu anda yeni yazılım ürünlerinin tasarımı için yaygın olarak kullanılmaktadır. Ancak genel iş uygulamalarında bu yaklaşım hala çok az bilinmektedir. Bu nedenle, daha önce Agile ile karşılaşmamış olanlar dikkatlidir. Ayrıca, sadece insanların entelektüel çalışma görevi ile karşı karşıya kaldığı durumlarda kullanılması gerektiği de anlaşılmalıdır.
Küçük bir örnek
Bu metodolojilerin nasıl çalıştığına bir göz atalımyazılım geliştirme. Diyelim ki ürün sahibi Peter var. Teknik detayları bilmiyor ama büyük resmi görebiliyor. Ürüne neden ihtiyaç duyulduğunu, hangi sorunları çözeceğini ve kimi tatmin edeceğini bilir. Paydaşlar da var. Ürünü kullanabilir, yaratılmasını destekleyebilir veya yaratılmasına başka bir şekilde dahil olabilirler. Paydaşların isteklerini ifade eden kullanıcı hikayeleri de ekleyebilirsiniz. Örneğin: Moskova-St. Petersburg normal otobüsleri için bilet rezervasyonu sistemi uçuşlara göre bir arama yapmalıdır. Peter ilgili taraflara yardım edecek. Uygulamanın kontrolünü kullanıcı hikayesi fikirlerinden alacaktır. Bir geliştirme ekibi de var. Bunlar çalışma sistemini kuracak insanlardır.
Çevik metodoloji kullanıldığındangeliştirme, daha sonra kullanıcı hikayeleri büyük bir sürüme kadar biriktirilmez, ancak tamamlandıktan hemen sonra ve mümkün olduğunca sık yayınlanır. İşlenen istek sayısı, ekibin haftalık iş hacmidir Hız kaybetmemek ve manuel testte çıkmaza girmemek için ekibin otomatik entegrasyon üzerinde çalışması gerekir. Bu ne? Her çalışma anı için otomatik bir test yazılır. Çok fazla hikaye varsa, acele, motivasyon kaybı, verimlilik ve kalite kaybı olabilir. Bu gibi durumlar için "dünün hava durumu" yöntemi sağlanır. İşin miktarına katı sınırlar koymaktan ve tam olarak neyin uygulanacağını dikkatlice seçmekten oluşur. Daha önce bahsedilen "Kanban", bir görev sınırı belirlemeyi önerir.
Sırayla ne yapmalı?
Tamam, böylece ekip yapabileceklerine karar verdi.haftada dört hikaye işleyin. Ama var olan her şeyde yönünüzü nasıl buluyorsunuz? Diyelim ki kullanıcılar haftada on hikaye gönderiyor. Dört işlenir. Böylece kuyruk sürekli büyüyecek. Bu durumda, tek bir etkili yöntem vardır - "hayır" kelimesi. Bu, ürün sahibi için son derece önemlidir. Evet demek zor değil. Ne yapılmayacağına karar vermek çok daha zor ve daha önemlidir. Üstelik bunun sorumluluğunu da taşımak gerekir. Bu nedenle artık nelere dikkat edilmesi ve nelerin ertelenmesi gerektiğine karar vermek gerekir. Doğru önceliklendirme, ürün sahibinin her hikayenin değerini ve kapsamını anlamasını gerektirir.
kararlar alırız
Bazı hikayelere çok ihtiyaç var.Diğerleri sadece güzel bir bonus. Bazı hikayelerin geliştirilmesi birkaç saat sürecektir. Diğerlerinin oluşturulması aylar alacaktır. Birçoğu genellikle bir hikayenin boyutu ile değeri arasında bir ilişki kurar. Ancak bu her zaman doğru değildir. Daha fazla, daha iyiye eşit değildir. Eldeki görevin karmaşıklığı ve değeri, Peter'ın doğru şekilde öncelik vermesine yardımcı olur. Bu özellikler nasıl ölçülebilir? Olmaz. Bu gerçek bir tahmin oyunu. Ve daha fazla verimlilik için, buna çok sayıda insanı dahil etmek gerekir. Bu hem işin kapsamı hakkında hem de paydaşlar hakkında bilgi verecek bir geliştirme ekibidir. Ancak bu şekilde elde edilen tüm verilerin yaklaşık tahminler olduğu anlaşılmalıdır. Burada kesin rakamlar yok. Başlangıçta eksikler olacaktır. Ancak tecrübe kazandıkça sayıları ve ölçekleri azalacaktır.
Olası riskler
Sorunlardan kaçınmak, bir dizi soruya dürüst cevaplar gerektirir. O:
- Doğru olanı mı yapıyoruz? Bu bir iş riskidir.
- Gerekeni uygulayabilir miyiz? Bu sosyal bir risktir.
- Proje bu platformda çalışacak mı? Bu teknik bir risktir.
- Yeterli paramız olacak mı ve bunu zamanında yapacak mıyız? Bunlar uygulama süresi ve maliyetinin riskleridir.
Bu durumda bilgi gereklidir.Risklerin tersi olarak görülebilirler. Önemli düzeyde bir belirsizlik kaydedildiğinde, bilgi ediniriz - örneğin, arayüz prototipleri veya teknik deneyler oluştururuz. Ve zaten onlara sahip olduğumuzdan, hareket edeceğimiz yön hakkında kararlar veriyoruz.
Nasıl ögrenilir?
BT endüstrisi son derece hızlı gelişiyor vesonunda kaybetmemek için sürekli öğrenmek, becerileri geliştirmek ve iş verimliliğini artırmak gerekir. Bu nedenle, eğitim ve uygulama konuları her zamankinden daha alakalı. Nereden başlamalı? En iyi seçenek, halihazırda Agile kullanan bir şirketle işbirliği yapmaktır. O halde eğitim, kulaktan kulağa çevikliğin ne olduğunu bilmeyen insanlar tarafından yönetilecek. Ancak bu, ne yazık ki, her zaman mümkün değildir. Çoğu zaman, Agile'ın ne olduğunu bilen üçüncü taraf bir uzman dahil edilir. Bu yaklaşımın uygulanması onun gözetiminde gerçekleştirilir. Doğru, böyle bir uzmanın hizmetleri paraya mal olur. Ancak gerçekten bilgili bir kişi bulursanız, tüm masraflar yüz katını karşılayacaktır. Gerçekten de, modern dünyada, çalışanların etkinliği önemli bir rol oynamaktadır.
Gelecekte ne var?
Yazılım geliştirme metodolojileri sürekli gelişmektedir.Faaliyetlerin ve çalışmanın verimliliğini artırmak için yeni yollar ve fırsatlar arıyorlar. Gelecekte bizi nelerin beklediğini söylemek oldukça sorunlu. Muhtemelen esnek geliştirme sistemi, üretim süreçlerinin otomasyonu ile entegre edilecektir. Örneğin, şirketin bulunduğu yerden uzak kalarak bile sorunları çözmek mümkün olacaktır. Birçok yönden gelecek, yeni bilgi teknolojileri tarafından belirlenir. Sonuçta, ortaya çıktıklarında, onlarla çalışmanın yeni yöntemlerine hakim olmanız gerekir. Ve bu durumda bir döngü içinde kapalı olan bir gelişme var.
Sonuç olarak
Çevik yöntemlere yapılan gezinin sonu budur.gelişme. Ancak, teorinin başka, pratiğin ise tamamen başka bir şey olduğu unutulmamalıdır. Sürekli olarak ortaya çıkan yeni bilgi teknolojileri, geniş bir geliştirici topluluğu için zorluklar oluşturmaktadır. Ekibinizi nasıl daha verimli hale getirebilirsiniz? Herkes bu sorunun cevabını kendisi bulur. Burada sunulan bilgiler omurgayı şekillendirmek için kullanılabilir. Ancak pratikte, mevcut modelle çalışmanız ve mevcut durumu mevcut zorluklarla uyumlu hale getirmeniz gerekiyor. Daha sonra ekip, kendisi için belirlenen hedefleri etkin bir şekilde yerine getirebilecektir.