Kurs
Tekrar hoş geldiniz! ikinci eğitimin sonunda pastel temalı bir fp-ts oyun alanımız, NestJS + PostgreSQL bir backend’imiz ve anonim UUID ilerleme takibimiz vardı.
Devin serisindeki tüm eğitimlere buradan erişebilirsiniz:
- Kurulum ve İlk Pull Request (Bölüm 1)
- Devin ile Dikey Bir Dilim Yayınlamak (Bölüm 2)
- Entegrasyonlar, Testler ve CI/CD (Bölüm 3)
- Güvenlik, Dağıtım, Bakım (Bölüm 4)
Şimdiye kadar yaptıklarımız tek başına geliştirme için harika, ancak artık Devin’in ekip iş akışlarıyla ne kadar iyi entegre olduğunu görmenin zamanı geldi. Bu üçüncü eğitimde şunlara bakacağız:
- Entegrasyonlar: Devin Jira talepleri açacak, üzerinde çalışacak ve her PR durumunu doğrudan Slack’e iletecek.
- Kalite kapıları: API için Jest birim testleri, UI için Playwright uçtan uca akışları ekleyeceğiz ve %90 kapsama zorunluluğu getireceğiz.
- CI/CD: GitHub Actions, birleştirme yapılmadan önce lint, tip kontrolü ve tüm testleri çalıştıracak, ayrıca Playwright raporlarını pull request’lere ekleyecek.
Henüz kimlik doğrulama ve üretim dağıtımları yok; onlar Bölüm 4’te!
Devin’de Slack Entegrasyonu Kurun
Devin’i iletişim ve talep akışınıza bağlama işlemi tamamen manuel ve Devin arayüzü üzerinden yapılıyor.
Devin ayarlarının entegrasyon sekmesinden Slack’e bağlanabilir veya Slack’in Uygulama Dizini’nden “Devin AI” uygulamasını kurabilirsiniz.


Uygulama hâlâ OAuth iletişim kutusunda “Slack tarafından onaylanmadı” gösteriyor. Cognition, güvenlik incelemelerinin beklemede olduğunu ve işlevselliğin etkilenmediğini söylüyor.
Ardından bir kanal seçin:

Sadece bahsederek Devin ile sohbet edebilirsiniz:

Ve UI’da erişebileceğiniz bir oturum başlatır:

Varsayılan olarak, seçtiğiniz kanalda PR güncellemeleri hakkında bildirim alırsınız; ancak her oturumun parametrelerinde özelleştirebileceğiniz birkaç farklı bildirim ayarı vardır.
Devin’de Jira Entegrasyonu Kurun
Jira ile entegre olmak için adanmış bir bot kullanıcısı (örn., devin-bot@…) hesabı oluşturmanız ve bu kimlik bilgilerini Devin → Team ▸ Integrations ▸ Jira altında bağlamanız gerekir.
Kişisel hesabınızdan yeni bir talep oluşturabilir ve devin etiketini ekleyebilirsiniz.
Devin, plan taslağı içeren bir analiz yorumu ve “Oturum başlatılsın mı?” istemi paylaşır. Kod yazmasına izin vermek için “yes” yazın veya etiketi kaldırarak talebi yalnızca insanlara bırakın.
Not: Devin, kartlarınızı panoda otomatik olarak taşımayacaktır. Yine de siz veya PM’iniz onları In Progress ya da Done sütununa sürüklemelisiniz. Bu, iş akışı kontrolünü insanlarda tutar.
Devin’in Jira Taleplerinden Çalışmasına İzin Vermek
Slack ve Jira bağlandıktan sonra, gerçek talepleri Devin’e atıp “ekip arkadaşı olarak ajan” deneyini denedim; bakıcılık yapmadan uygulayabilir mi görmek istedim.
Kullandığım iş akışı
İş akışım şöyleydi:
- Yeni oluşturduğum JIRA projemde bir talep oluşturup net bir kabul kriteri yazmak.
devinetiketini eklemek; bu, Devin’in analiz etmesi için işaretidir.- Devin adım adım plan, bir güven tahmini ile yorum yapar ve “Oturum başlatılsın mı?” diye sorar.

- Ben " Yes” yanıtını verdim. Talepte “Oturum başlatıldı” görünür ve web IDE bağlantısı verilir. PR birleştiğinde Devin, “Merged ✅” mesajını Slack’e gönderir ve ben kartı panoda taşırım. Ben “Yes” diyene kadar bunun hiçbiri ACU harcamaz.
Beş gerçek talep, beş bambaşka sonuç
Beş gerçek talep için olanların özeti şöyle:
|
Talep |
Planlanan iş |
ACU |
Devin’in Gerçek Performansı |
|
SQLite→Postgres’e geçiş |
Veritabanı motorunu değiştirme, migrasyonları çalıştırma |
0.6 |
Kusursuz. Tek commit, testler yeşil kaldı. |
|
Sandpack UI’ını iyileştirme ve başarısız testleri düzeltme |
UI düzenlemeleri + test güvenilirliği |
5.0 (iki oturum) |
Israrla geri SQLite’a dönmek istedi, migrasyon betiklerini kaçırdı, ACU yaktı. Sonunda limiti aşmadan bitirmek için UI ve testleri iki ayrı isteme böldüm. |
|
Listelerde tamamlama tiklerini gösterme |
Alıştırma listesine ✓ rozetleri ekleme |
0.8 |
Tek seferde başarı; hatta iyimser UI ekledi. |
|
Keşif sistemini doğrulama |
Her dosyanın parse edildiğini uçtan uca kontrol etme |
2.6 |
Backend kontrolleri geçti, ancak frontend hatası kaldı. İki küçük yönlendirme gerekti. |
|
Terk edilmiş başarı kodunu kaldırma |
Özellik bayrağını ve bayat bileşenleri silme |
0.4 |
Devin “Düşük güven” uyarısı verdi, sonra 30 dosyayı nokta atışıyla kaldırıp import’ları sorunsuz güncelledi. |
Rastgele hissi veren şeyler
İyileştirilmesi gerekenler şunlardı:
- PR başlıkları: Her istemde bir adlandırma deseni belirttim ama Devin her seferinde yeni bir format uydurdu.
- Veritabanına sadakat: Bir talepte Postgres’e göç etti, başka birinde ise sessizce SQLite’ı geri soktu.
- ACU tahminleri: Analiz yorumu sandpack talebinin 1.5 ACU süreceğini söyledi, gerçekte iki oturum ve 5 ACU tuttu.
- Güven düzeyi vs icra: Düşük güvenli bir talep 3 dakikada ve kusursuzca tamamlandı. Yüksek güvenli olan ise 45 dakika oyalandı.
Jira üzerinde Devin umut veriyor: iki talep kusursuz kapandı, biri hafif yönlendirmeyle bitti, en kötü durumda bile geri alma gerektirmedi, sadece zaman kaybettirdi. Ancak tutarlılık şimdilik yok; bu yüzden dar kapsam ve açık kısıtlar en iyi dostunuz.
Jest ve Playwright ile Otomatik Testler Ekleyin
Sohbet ve talepler akarken, sıradaki adım bozuk kodun sızamadığından emin olmaktı. Devin’den iki şey istedim: backend birim testleri ve bir öğrenenin tarayıcıda bir alıştırmayı düzenlemesini taklit eden uçtan uca Playwright testleri.
Backend birim testleri: şaşırtıcı derecede sorunsuz
GraphQL çözücüsü, servis katmanı ve Prisma modellerini kapsayan Jest test paketleri istedim. ACU tahmini sorduğumda 20 ACU!! diye yanıtladı.
Bunun bir hata olduğunu düşündüm ve yine de görevi başlattım. 1.1 ACU tuttu ve şimdiye kadarki en iyi icra edilen görev oldu.
Playwright e2e: kırmızı duvar, yeşil duvar
Bu biraz daha pahalıydı ve 2.3 ACU tuttu.
Kayıtlı akış: /learn/option-01 aç → kodu düzenle → ✓ bekle → sayfayı yenile → ✓ kalıcı.
İlk çalıştırmada, doğrulamaların yaklaşık %70’i başarısız oldu. Birçok yeniden boyutlandırma sorunu, bayat kontrol paneli sayımları ve mutlu yolun bile kararsızlığı vardı.
İstemimdeki “Başarısız testleri yok say, sonra düzeltiriz” komutuna rağmen, Devin paket çoğunlukla yeşile dönene kadar kodu yamamaya devam etti (faydalı ama istediğim bu değildi).
Sistemde epey hata olduğu için hâlâ başarısız bazı testlerimiz var. Ama sorun değil, hepsinin yeşil olduğundan emin olmak için bunları daha sonra düzenleyeceğiz.
Tek Tıkla GitHub Actions Boru Hattı Ekleyin
Birim ve uçtan uca testler yerindeyken, son adım her pull request’in bu kontrolleri otomatik olarak çalıştırmasını sağlamaktı. Devin’den yalın bir iş akışı istedim; artefakt yok, kapsama kapıları yok; sadece lint → tip kontrolü → testler.
Devin beklenmedik derecede cilalı bir boru hattını tek seferde teslim etti; ek yönlendirme gerekmedi:
- Sıfır yapılandırma sapması: Devin mevcut npm betiklerini yeniden kullandı; öğrenilecek yeni araç yok.
- Her şey paralel: Lint, tip kontrolü ve iki test paketi yan yana çalışır; böylece tüm iş akışı GitHub’ın ücretsiz runner’larında ~4 dakikada biter.
- Net triyaj: ESLint başarısız olsa ama testler geçse bile özet işi lint hatasını raporlar; “kısmen kırmızı” kod asla birleştirilmez.
Devin iş akışını itti, GitHub’daki kontrolün tamamlanmasını bekledi ve ancak o zaman bittiğine karar verdi. Şunu söylemeliyim: Tam çalışan bir boru hattı için 0.4 ACU, zor geçilir. YAML açıkça Devin’in mutlu alanı.
Bu iş akışı birleştirildiğinde, herkesin yeşil düğmeye basmasından önce her PR’ın lint, derleme ve her iki test paketinden de geçmesi gerekir!
Devin’in Ürün İçi Viki’si
Devin, kodunuzun yanında yaşayabilen yerleşik bir “Viki” ile gelir. Ajanın çalışırken hem okuyabildiği hem de yazabildiği hafif, otomatik oluşturulan bir bilgi tabanıdır. Slack, Jira ve CI bağlandıktan sonra bu Viki, mimari notlar için iyi bir yerdir. Göz atmaya değer!

Bildiğim kadarıyla bu manuel olarak düzenlenemiyor ve Viki’yi güncel tutmak için Devin’e güvenmeniz gerekiyor.
Maliyet & Zaman Anlık Görünümü ve Değiniler
Tüm entegrasyonlar, testler ve boru hattı canlı hale geldikten sonra faturayı ve süreyi topladım:
|
İş parçası |
ACU |
Uygulamalı süre |
Notlar |
|
Slack & Jira bağlantısı |
0.0 |
10 dk |
Manuel OAuth tıklamaları; ajan süresi yok. |
|
5 Jira talebi |
9.4 |
2 sa yönlendirme ve inceleme |
İki talep iyiydi, biri yönlendirme, tekrarlar ve testler istedi, biri SQLite’a geri dönüşte takıldı. |
|
Jest birim paketi (API) |
1.1 |
5 dk inceleme |
Devin’in “20 ACU” korkusu 1 ACU’luk mücevhere dönüştü. |
|
Playwright e2e paketi (web) |
2.3 |
10 dk inceleme |
Devin “kodu düzeltme” talimatını görmezden gelip 3 test kırmızı kalana kadar yamadı. |
|
GitHub Actions boru hattı |
0.4 |
3 dk küçük ayar |
Tek sayfa YAML; ilk denemede yeşil. |
|
Toplam |
13.2 ACU |
≈ 2 sa 30 dk |
≈ Core fiyat katmanında $30. |
Yani talepleri, testleri ve CI’ı itmek için yaklaşık 2 saatlik insan emeği. Benim kendimin yapacağından kesinlikle daha hızlı.
Bu noktada yine de kararsızım. Hâlâ çok sayıda hata var ve tüm kod tabanını kendim yazmış olsaydım muhtemelen sorunları, Devin kredileri yakarken olduğundan daha hızlı düzeltebilirdim.
Ama uygulamanın çoğunu Devin yazdı; yani ajan aslında yapının benden daha iyi “farkında”. Yine de sabit değerleri dinamik olanlarla değiştirmekte zorlanıyor, her dosyada uçları açık bırakıyor ve yaptığı tüm işlemleri gözetlemem için dizüstümün başında olmam gerekiyor.
Süreci biraz sinir bozucu da buldum; ancak anlayamadığım bir hatayı kovalamakla aynı şekilde değil. Kodun çalışmamasından duyulan hayal kırıklığıyla, bir yapay zekâ ajanının bazı temel talimatları takip edememesinden duyulan hayal kırıklığı arasında (en azından bana göre) dünya kadar fark var. İkincisi düpedüz çileden çıkarıcı.
Bence Devin doğru kullanıldığında çok yardımcı olabilir; ancak diğer tüm yapay zekâ ajanları gibi bir yazılım mühendisi yerine geçemez. Bazı görevlerde kullanmak kabul edilebilir; fakat her talep için kullanmanın çok uygun veya sürdürülebilir olduğunu düşünmüyorum.
Sırada Ne Var?
Slack ve Jira’ya bağlıyız, testler yeşil ve CI kapısı özensiz her PR’ı engelliyor. Ancak gerçek bir üretim lansmanı için hâlâ dört sütun eksik:
- Kimlik doğrulama: NextAuth kimlik bilgilerini bağlayın → JWT çerezleri → NestJS’te
GqlAuthGuard; böylece ilerleme gerçek kullanıcılara bağlanır. - Güvenlik sertleştirmesi: Hem web hem API çalışma zamanlarında Sentry hata takibi.
- Sürekli dağıtım: Her dalda önizleme URL’leri oluşturan ve ana dal yeşile döndüğünde
prod’a terfi eden bir Vercel (web) boru hattı.
Gündem bu; Bölüm 4’te, son düzlükte Devin’in neredeyse hiç insan müdahalesi olmadan uygulamayı güvene alıp dağıtabileceğini ve göz kulak olabileceğini göreceğiz. Veritabanınızı tekrar Postgres’e sabitleyin, ACU’ları sınırlayın ve son bölümde görüşmek üzere.
Devam etmeye hazırsanız, dördüncü eğitime gitmek için aşağıdaki listedeki son öğeye tıklayın:
- Kurulum ve İlk Pull Request (Bölüm 1)
- Devin ile Dikey Bir Dilim Yayınlamak (Bölüm 2)
- Entegrasyonlar, Testler ve CI/CD (Bölüm 3)
- Güvenlik, Dağıtım, Bakım (Bölüm 4)

İlk prototipten ürün-pazar uyumuna ve ötesine kadar erken aşama girişimleri büyütme konusunda uzmanlaşmış, ürün odaklı bir teknik liderim. İnsanların teknolojiyi nasıl kullandığına dair bitmeyen bir merakım var ve kurucularla ile disiplinler arası ekiplerle yakın çalışarak cesur fikirleri hayata geçirmeyi seviyorum. Ürün inşa etmediğim zamanlarda ya dünyanın yeni köşelerinde ilham peşinde koşuyor ya da yoga stüdyosunda stres atıyorum.
