/* ── Blog Detail Styles ── */ .bd-layout { display: grid; grid-template-columns: 1fr 320px; gap: 32px; padding-top: 28px; } /* ── Article ── */ .bd-article { background: #fff; border-radius: 20px; border: 1px solid rgba(0,0,0,.04); box-shadow: 0 4px 24px rgba(0,0,0,.04); overflow: hidden; } .bd-article__img { width: 100%; max-height: 400px; object-fit: cover; } .bd-article__body { padding: 32px 36px; } .bd-article__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; } .bd-article__date { font-size: .78rem; font-weight: 600; color: #94a3b8; display: flex; align-items: center; gap: 5px; } .bd-article__date i { color: #027a94; } .bd-article__title { font-size: 1.75rem; font-weight: 800; color: #0a1628; line-height: 1.3; margin: 0 0 24px; letter-spacing: -0.5px; } .bd-article__content { font-size: 1rem; color: #334155; line-height: 1.85; } .bd-article__content p { margin: 0 0 18px; } .bd-article__content img { max-width: 100%; border-radius: 12px; margin: 12px 0; } .bd-article__content a { color: #027a94; font-weight: 600; } .bd-article__content h2, .bd-article__content h3 { color: #0a1628; margin: 28px 0 12px; } .bd-article__content code { background: #f1f5f9; padding: 2px 8px; border-radius: 6px; font-size: .9em; color: #027a94; } .bd-article__content pre { background: #0f172a; color: #e2e8f0; padding: 20px; border-radius: 14px; overflow-x: auto; font-size: .88rem; line-height: 1.7; } .bd-article__content pre code { background: transparent; color: inherit; padding: 0; } .bd-article__content blockquote { border-left: 4px solid #027a94; margin: 16px 0; padding: 12px 20px; background: rgba(2,122,148,.03); border-radius: 0 12px 12px 0; color: #475569; font-style: italic; } .bd-article__content ul, .bd-article__content ol { padding-left: 20px; margin: 0 0 18px; } .bd-article__content li { margin-bottom: 8px; } /* ── Divider ── */ .bd-divider { height: 1px; background: linear-gradient(90deg, transparent 0%, #e2e8f0 20%, #e2e8f0 80%, transparent 100%); margin: 32px 0; } /* ── Comments Section ── */ .bd-comments { padding: 0 36px 36px; } .bd-comments__title { font-size: 1.1rem; font-weight: 800; color: #0a1628; display: flex; align-items: center; gap: 8px; margin: 0 0 20px; } .bd-comments__title i { color: #027a94; } .bd-comment { display: flex; gap: 14px; padding: 16px; background: #f8fafc; border-radius: 14px; margin-bottom: 12px; border: 1px solid rgba(0,0,0,.03); } .bd-comment__avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #027a94, #01b0c1); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: .9rem; flex-shrink: 0; } .bd-comment__body { flex: 1; min-width: 0; } .bd-comment__header { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; } .bd-comment__name { font-weight: 700; color: #0a1628; text-decoration: none; font-size: .88rem; } .bd-comment__name:hover { color: #027a94; } .bd-comment__time { font-size: .75rem; color: #94a3b8; } .bd-comment__text { font-size: .88rem; color: #475569; line-height: 1.6; margin: 0; } .bd-comment__empty { text-align: center; padding: 20px; color: #94a3b8; font-size: .88rem; } /* ── Comment Form ── */ .bd-form { padding: 0 36px 36px; } .bd-form__title { font-size: 1.05rem; font-weight: 800; color: #0a1628; display: flex; align-items: center; gap: 8px; margin: 0 0 16px; } .bd-form__title i { color: #027a94; } .bd-form__textarea { width: 100%; border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px 16px; font-size: .9rem; color: #334155; resize: vertical; min-height: 100px; transition: border-color .15s, box-shadow .15s; box-sizing: border-box; font-family: inherit; } .bd-form__textarea:focus { outline: none; border-color: #027a94; box-shadow: 0 0 0 3px rgba(2,122,148,.08); } .bd-form__submit { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 12px 28px; background: linear-gradient(135deg, #027a94, #01b0c1); color: #fff; border: none; border-radius: 12px; font-weight: 700; font-size: .9rem; cursor: pointer; transition: box-shadow .2s; } .bd-form__submit:hover { box-shadow: 0 6px 20px rgba(2,122,148,.3); } .bd-form__login { text-align: center; padding: 16px; color: #64748b; font-size: .88rem; } .bd-form__login a { color: #027a94; font-weight: 700; text-decoration: none; } .bd-form__login a:hover { text-decoration: underline; } /* ── Sidebar ── */ .bd-sidebar { position: sticky; top: 80px; } /* ── Responsive ── */ @media (max-width: 900px) { .bd-layout { grid-template-columns: 1fr; gap: 20px; } .bd-sidebar { position: static; } .bd-article__body { padding: 24px 20px; } .bd-article__title { font-size: 1.35rem; } .bd-comments { padding: 0 20px 24px; } .bd-form { padding: 0 20px 24px; } }
Okul Projesini Müşteri Projesine Çevirmek

Okul Projesini Müşteri Projesine Çevirmek

Okul Projesini Müşteri Projesine Çevirmek

 

Bir okul projesi teslim edilir, not alınır ve çoğu zaman orada biter.

Dosya kapanır, repo unutulur, “geçtik” denir.

 

Oysa bazı projeler vardır ki, biraz farklı ele alındığında müşteri projesi gibi durmaya başlar.

Ve ilginç olan şu: Aradaki fark çoğu zaman teknik seviye değil, bakış açısıdır.

 

 

Okul projesi ile müşteri projesi arasındaki gerçek fark

 

Okul projesinde hedef bellidir:

Hocanın istediğini yapmak.

 

Müşteri projesinde ise hedef değişir:

Bir problemi gerçekten çözmek.

 

Aynı kod, aynı fikir…

Ama sorulan soru farklıdır.

• “Bu çalışıyor mu?” yerine

• “Biri bunu kullanmak ister mi?”

 

Bu zihinsel geçiş yapıldığında proje başka bir seviyeye çıkar.

 

 

İlk adım: Senaryoyu gerçekçi hâle getirmek

 

Çoğu okul projesi hayali kalır.

Varsayımsal kullanıcılar, belirsiz ihtiyaçlar…

 

Müşteri projesine yaklaşmak için şunu sormak yeterlidir:

 

“Bu proje gerçekten kimin işine yarar?”

 

Bir kişi bile olsa:

• Ne problemi var?

• Bu projeyle ne kazanıyor?

• Neden bunu kullanmalı?

 

Bu sorular cevaplandığında, proje kağıt üstünden hayata iner.

 

 

Teslim edilen değil, sürdürülebilir olan projeler

 

Okul projeleri genelde “bir kere çalışsın” mantığıyla yapılır.

Müşteri projeleri ise devam etmeyi varsayar.

 

Bu yüzden küçük ama kritik farklar ortaya çıkar:

• Dosya düzeni

• Açıklayıcı README

• Kurulum adımları

• Basit hata senaryoları

 

Bunlar not getirmez belki ama güven verir.

 

 

“Bunu biri görse ne anlar?” sorusu

 

Bir projeyi müşteri gözüyle ele almak için şu deneyi yapmak yeterlidir:

 

“Bu projeyi ben yapmamış olsaydım, anlayabilir miydim?”

 

Eğer cevap hayırsa, proje henüz müşteri seviyesinde değildir.

 

Kodun çalışması yetmez.

Anlatması gerekir.

 

 

Küçük dokunuşlar büyük fark yaratır

• Projeyi kısa bir hikâyeyle anlatmak

• “Ne yaptım” yerine “neden yaptım” demek

• Sınırlarını dürüstçe yazmak

• Eksiklerini saklamamak

 

Bunlar projeyi “öğrenci işi” olmaktan çıkarır,

gerçek bir üretim gibi gösterir.

 

 

Asıl dönüşüm nerede olur?

 

En önemli değişim projede değil, sende olur.

 

Okul projesini müşteri projesi gibi ele aldığında:

• Daha dikkatli düşünürsün

• Daha net anlatırsın

• Daha az varsayım yaparsın

 

Bu refleks bir kez oluştu mu,

stajda, freelance işte, ilk işinde seni ayıran şey olur.

 

 

Son söz

 

Her okul projesi müşteri projesi olmaz.

Ama her okul projesi müşteri gibi düşünülerek ele alınabilir.

 

Aradaki fark:

• Daha çok kod yazmak değil

• Daha karmaşık şeyler yapmak değil

 

Daha gerçekçi bakmaktır.

 

Ve bazen bir projeyi değerli yapan şey,

ne kadar büyük olduğu değil,

ne kadar ciddiye alındığıdır.

Yorumlar

Henüz yorum yapılmamış. İlk yorumu sen yap!