# Agile
- Süreçten ziyade, **bireylerin ve ekip iletişimi** önemli
- Dokümantasyondan ziyade, **çalışan uygulama** önemli
- Piyasadan ( uygulamanın müdavimi diğer uygulamalar ) ziyade, **müşteri ile iletişim** önemli
- Bir plana bağlı kalmaktan ziyade, **yeni gelen talep veya değişimler** önemli
<br/>
<br/>
<br/>
### İlk öncelik yazılımı en erken sürede ve devamlı bir şekilde teslim etmek
<br/>
> Sürümler arası süre olabildiğince kısa tutulmalı ve güncellemeler devamlı olarak belli aralıklarda yapılmalı.
### Değişen iş gereksinimleri her durumda kabul edilmeli
<br/>
> Yeni bir talep veya bir değişim geldiğinde oluşabilecek gecikmeleri önleyebilmeli ve ya minimalize etmeli
### Çalışan yazılım veya proje birkaç haftada bir müşteriye sunulmalı
<br/>
> Geliştiriciler çalışan yazılımı, belli aralıklarda (1 hafta veya ay) devamlı olarak müşterinin talepleri doğrultusunda veya iş akışında güncelleyerek müşteriye sunmalı
### İş sürecinde, geliştiriciler ile proje yöneticiler birlikte çalışmalı
<br/>
> Geliştiriciler ve yöneticiler arası iletişim cok iyi olmalı. Düzenli olarak bir araya gelinip proje hakkında konuşulmalı.
### En önemli ilerleme çalışan proje olmalıdır
<br/>
> İlerlemenin temel ölçüsü müşteriye çalışan projeyi sunabilmektir.
### Sadelik
<br/>
> İlk etapta işi bitirecek kadar müşterinin talepleri doğrultusunda geliştirme yapılmalı.
### Toplantı
<br/>
> Takım düzenli aralıklarla bir araya gelerek nasıl daha verimli ve üretken olabileceğini tartışır.
<br/>
> **Agilenin** temel amacı müşteri odaklı, kesintisiz değer üretmektir. Müşteri daima ilerlemeye doğrudan veya dolaylı rehberlik eder. Süreç müşterinin istekleri doğrultusunda ilerler.
<br/>
# Scrum
- **Scrum**, Agile'nin proje yönetim metotlarından biridir.
- Kompleks yazılım süreçlerinin yönetilmesi için kullanılır
- Bunu yaparken, bütünü parçalayan tekrara dayalı bir yöntem izler.
- Düzenli geri bildirim ile hedefe ulaşmayı hedefler.
### Product Backlog
<br/>
> Proje için gerekli gereksinimlerin listesidir. Proje yöneticisi, değişen ihtiyaçları göre burayı günceller.
### Product Backlog Item
<br/>
> Her bir Product Backlog bir tanesi
### Sprint
<br/>
> Projenin, küçük parçalara ayrılmış her bir birimine denir. Tüm aktiviteler sprint içerisinde gerçekleşir.1-2 haftalık süreçlerdir.
### Sprint Log
<br/>
> Geliştirme ekibi gereksinimleri öncelik sırasına göre sprint içerine alır.
### Scrum board
<br/>
> Bir sprint içesinde yapılacak maddeler burada yönetilir. TO-DO , IN PROGRESS, DONE vs
## Roller
### Scrum Yöneticisi
<br/>
> Proje sorumlusudur. geliştiriciler ile birlikte çalışır. Scrum kurallarını bildirir uyumu kontrol eder ve düzensizlikler ile ilgilenir.
### Kullanıcı - Müşteri
<br/>
> Yazılımın kullanıcısıdır. Ürünün nasıl bir perspektif ile kullanacağını bildirir ve gerçek hedef kitlesidir. Ürünü test eder ve geri bilgi akışı sağlar
### Takım ve geliştiriciler
<br/>
> Bir sprint'te bütün işleri tamamlayacak kişilerdir. Kendi kendilerini yönetirler. Projenin geliştirilmesi ile ilgili sorumluluk geliştirme takımına aittir
## İletişim - Toplantı
<br/>
- **Sprint Planning**
Bu toplantı ile belirlenen gereksinimler küçük parçalara ayrılır ve ekip üyelerine dağıtılır.
- **Daily Scrum**
Her gün yapılan ortalama 15 dakikalık toplantılardır. Takımdaki üyelerin yaptıkları ve yapacakları görevler konuşulur ve olası engeller tartışılır. Bir sorun varsa, yardımcı olabilecek diğer üyeler yardım eder.
- **Sprint Review**
Her bir sprint sonunda yapılır. Yapılan iş gözden geçirilir. Çıkan ürün değerlendirilir. Ürün müşterinin gereksinimlerini karşılıyor mu test edilir ve çıkan sorunlar düzeltilir.
- **Sprint Retrospective**
Sprint sonunda yapılan, tüm sprint boyunca yapılan işlerin kalitesinin tartışıldığı toplantıdır.