Yazılım Süreçlerinde Tasarımcı Olmak

Gerçek süreçlerin içinden, gerçek projelerin deneyimlerinden…

Yazıyı daha anlamlı kılabilmek adına, gerçek projelerde biz genelde nasıl yönetiyoruz bu süreci örnekler vererek anlatacağım. Yani etkinliklerde, şişirme makalelerde olduğu gibi sürece tozpembe değilde; gerçek hayatta, gerçek projelerde, paraların zamanların döndüğü zaman diliminde nasıl bakılıyorsa öyle bakacağız.

Yeni Feature. İlk Toplantı.

Bir projeye yeni bir feature entegre edecek isek önce fikir aşamasında nelerin olup nelerin olmayacağını netleştiriyoruz. Projede yer alan almayan farketmeksizin developerların, tasarımcıların ve proje yöneticilerinin olduğu bir toplantı ile ekleyeceğimiz özelliği tartışıyoruz. Bu toplantı kullanılacak teknolojilerin belirlenmesi, yapılacak tasarımın belirlenmesi için önem teşkil ediyor. Tasarımcı olarak varolan stillerinize ve layoutunuza en uygun şekilde, kullanılabilirliği göz ardı etmeksizin mevcut şartlar altında tasarımı en iyi şekilde entegre etmektir. Peki bu gibi süreçlerde tasarımımızı etkileyebilecek olası durumlar nedir? Örnek üzerinden ilerleyelim bundan sonrası için.


Diyelim ki bir projeye mesajlaşma sistemi entegre edeceksiniz. Özellikle webte türlü türlü çeşidi olan bu tarz featurelar için birçok tasarım yapılabilir. Ne yalan söyleyeyim Dribbble içinde harikulade postlar çıkartabilirsiniz. Fakat günün sonunda belli bir bütçe ve zaman ayrılan geliştirmelerde bağımsız çalışmak gibi bir lükse sahip değilsiniz. Geliştirici arkadaşlarınız ile danışıklı olarak yürütmelisiniz tasarım sürecini. Biz Atölye15'te tam olarak burada bir kısmından bahsetmek istediğim örnek yaşadık. Bir projeye mesajlaşma sistemi entegrasyonu üzerinde kafa patlatırken geliştiricilerden harici konsept olarak yaptığım bir tasarımla, günün sonunda eriştiğimiz tasarımın alakasının olmayışı bu tarz bir yazıyı canlandırdı aklımda.

Biz sistemi nasıl yapacağız, hangi teknolojileri kullanacağız, mevcut sisteme nasıl entegre edeceğiz falan diye düşündüğümüz sıralarda böyle bir konsept tasarım çıkarttım.

Konsept Tasarım. İkinci Toplantı.

İkinci toplantıda yaptığım konsept tasarım üzerinden ilerlemeye başladığımızda şunu farkettik ki bize bu geliştirme için ayrılan süre ve bütçe dahilinde, mevcut stillerimiz ve kullanıcıyı yönlendirmek istediğimiz kullanım tarzına gayet zıt bir tasarım olmuş. Evet ilk toplantıda ne konuştuysak, ne düşündüysek çok tersini yapmışım. Dribbble için yeterli bir tasarım olabilir; fakat bizim istediğimiz bu kesinlikle değil. Peki biz ne istiyoruz?

Projedeki mesajlaşma kurgusuna ayak uyduramayacağından hazır servisleride tüketemiyoruz ve biz de dedik ki, oturup kendimiz yazalım. Fakat dediğim gibi, mevcut zaman ve bütçe dahilinde minimize ederek.


Remember. No Realtime.

Öncelikle konsept tasarımın deneyimsel hatasına değinelim. Yukarıdaki tasarım tamamen realtime duruyor. Biz bu projede kullanıcıların realtime chat hissiyatından ziyade daha çok mailleşiyormuş hissiyatını yaşamalarını istiyoruz. Buna göre davranışlarını, kullanışlarını ve hatta ithamlarını manipule etmek istiyoruz. Sırf bu yüzden bile bu tasarım baştan iptal.


What Does a Developer Say?

Özelliğin tamamının geliştirilmesinde bize ayrılan sürede mesajlaşma fonksiyonlarının tamamının geliştirilmesi yazılımsal açıdan bizi sıkıştıracağı için fazlara bölmeye karar verdik. Ufak bir örnekle, ilk fazda “silme” fonksiyonunu dahil etmedik mesela.

Daha sonra eklenmek isteneceği için planlamasını baştan yaptık tabiki ama, buna iş gücü ayıracak vakite sahip değildik.


Ortaya Ne Çıktı?

Günün sonunda biz bu özelliği planladık, tasarladık. Tartışa tartışa orta yolu bulduk. Sonuçta elimizde aşağıdaki gibi bir tasarım oluştu.

Mesajlaşma ekranını realtime görünümden biraz daha koparabilmek için, Facebook Messenger’daki alışılagelmiş sohbet ekranı tasarımından vazgeçtik. Mesajları önce listelemeyi seçtik. Mail gibi yani. Önce hepsini listeledik.

Mesajın detayında ise tasarımsal önceliğimiz yine realtime görünümden kaçınmak oldu. İnsanların sosyal medya sohbet ekranları gibi kullanmasını istemiyorduk çünkü burayı. Daha resmi, daha ciddi bir ithamla kullanmaya yönlendirmek istiyorduk. Henüz başarabildik mi bilmiyoruz.

Tasarım, test edilmediği sürece çalışıp çalışmadığı anlaşılmayan bir olgu.

Test edeceğiz, inceleyeceğiz, gözlemleyeceğiz ve çalışmıyorsa geliştireceğiz, değiştireceğiz. Bütün bunları yaparken, ders çıkaracağız.


Yazının başında belirttiğim gibi, bir ara çok sık içerik ürettikten sonra şunu farkettim ki, bir çoğu üretmiş olmak için üretilen içerikler idi. Artık daha gerçek hayatın içinden, daha gerçek süreçlerden sebep ve sonuçlarını kanıtlarla sunabildiğim içerikler oluşturmaya çalışacağım.

Son olarak, sıkı bir Hey Douglas hayranıyım. VeYasin yeni setini yayınlamış. Yazıyı yazarken bana eşlik eden bu setin, okurkende size eşlik etmesini istiyorum. İyi dinlemeler, iyi okumalar!