Bana gelen bir soru üzerine paylaşmak istedim. “Yazılım Mimarı” diyebileceğim bir kişide benim arayacağım subjektif kriterler şunlar olacaktır.
Programcılık yetkinlikleri
- Birden fazla dilde geliştirme yapabilmek
- Mobil, masa üstü, Back-End, Front-End gibi konularda (hepsinde uzman olmasa da) geliştirme yapabilmek
- Git gibi versiyonlama araçlarını etkin kullanabilmek / yönetebilmek
- Design Pattern ve Object Oriented’a hakim olmak, Anti-Pattern’lerin farkında olmak
- KISS, YAGNI, DRY, vb yazılım prensiplerine hakim olmak
Tasarım yetkinlikleri
- Endüstrideki RESTFul, Docker, Blockchain, Cloud, No-SQL, vb paradigmaları takip etmek, (hepsinde uzman olmasa da) teknik tasarıma dahil edebilecek kadar deneme yapmış olmak
- Verilen ihtiyacı kodlayan kişi olmaktan ziyade, uzun vadede gelebilecek değişiklikleri öngörüp esnek ve tak-çıkar şekilde mimari çıkarabiliyor olmak
- Çoklu Front-End, ölçeklenebilir Back-End, API, Middleware, Loglama, bilgilendirme, beklenmedik hataları yönetme, güvenlik gibi farklı bileşenleri düşünerek tasarım çıkarabilme
- Bir ihtiyaca karşılık birden fazla alternatif mimari ve teknoloji sunabiliyor olmak
- Birden fazla ürün veya projede Coder olarak değil, mimar olarak görev almış olmak – yani çıkardığın mimari üzerine başka kişilerin geliştirme yapmış olması
- Mimarisini yaptığın ürün / projelerin zamana karşı test edilmiş ve başarılı olmuş olması
Proje yetkinlikleri
- Waterfall, Agile, vb metodolojileri tanımak
- Jira, Trello, vb popüler yönetim araçlarını tanımak
- Zaman – bütçe – kaynak – kalite arasındaki dengeyi kurabilmek
- İşleri gerçekçi ve çözüm odaklı şekilde önceliklendirebilmek
- Kendisi ve ekibi için zaman yönetimi ve efor planlama işlerini yapabilmek
Leave a Reply