CodeRiders'tan Artur Ter-Stepanyan, Yazılım Dış Kaynak Kullanımı Projeleri Hakkında Etkileyici Görüşlerini Paylaşıyor
Yayınlanan: 2023-02-06Yazılım geliştiriciler ve mühendisler konuşmaktan nefret eder; çoğumuz bu cümleyi en az bir kez duymuşuzdur. Ancak doğru olsun ya da olmasın, doğrudan profesyonellerin görüşlerine ihtiyacımız var. Hiç kimse yazılım geliştirme süreciyle ilgili derinlemesine içgörüleri geliştiricilerin ve mühendislerin kendilerinden daha fazla paylaşamaz.
CodeRiders, önde gelen yazılım geliştiricilerimiz ve mühendislerimiz ile söyleşi serisine devam ediyor. Daha önce, profesyonel uzaktan yazılım mühendisleri olarak çalışanlarımızın teknik ve sosyal becerilerinin yanı sıra BT'deki yolculuklarını paylaşmıştık.
Bu kez, yazılım dış kaynak kullanımı yönetimi, Scrum ekipleri ve en sevdiği projeler hakkındaki görüşlerini paylaşan tam donanımlı yazılım geliştiricimiz Artur Ter-Stepanyan ile ilerliyoruz.
Artur Ter-Stepanyan hakkında
Artur, CodeRiders yazılım geliştirme şirketinde kıdemli bir yazılım geliştiricisidir. 2016 yılında çekirdek ekibi oluşturan CodeRiders'ın en iyi mezunlarından biridir.
Bir süredir CodeRiders'ı takip ediyorsanız, CodeRiders'ın uluslararası BT endüstrisine 2013 yılında yerel bir yazılım geliştirme okulu olarak girdiğini zaten biliyor olabilirsiniz. Okul sadece bir yıl içinde 17'si CodeRiders'ı oluşturan 800'den fazla mezun verdi. 2014 yılında yazılım dış kaynak firması.
Artur, CodeRiders'ın piyasadaki en iyi yazılım dış kaynak şirketlerinden biri olarak uluslararası tanınmasına çok katkıda bulunmuştur. Meslektaşlarıyla birlikte en zorlu ve karmaşık yazılım dış kaynak kullanımı projelerinden bazılarında çalıştı. Artur, şirketimiz için olumlu müşteri yorumları kazanan çalışkan yazılım geliştiricilerimizden biridir. Ayrıca çeşitli etkinliklerde şirketimizi aktif olarak temsil etmiştir – sonuncusu Almanya'nın Hannover kentinde düzenlenen Hannover Messe 2022 Uluslararası Ticaret Fuarı olmuştur.
En baştan başlayalım!
Merhaba Artur. Bizimle konuşmak için zaman ayırdığınız için teşekkür ederiz. Kendiniz ve başarılı bir yazılım geliştiricisi olma yolculuğunuz hakkında bazı temel bilgilerle başlayalım. CodeRiders'a nasıl geldiniz?
Merhaba. Teklif için teşekkürler. Pek çok Ermeni yazılım geliştiricisinin benim hikayemle bağlantı kuracağını düşünüyorum. 7 yıldır bilişim sektöründe çalışıyorum ama yazılımcı olmak ne çocukluk hayalimdi ne de üniversitede yazılım geliştirme bölümüm. Sıradan bir genç yetişkin olarak, tıp ve sağlık hizmetleri de dahil olmak üzere birçok rastgele mesleğe ilgi duyuyordum. Beni gerçekten ilgilendirecek bir meslek seçmek istedim. Günün sonunda, zamanınızın çoğunu harcayacağınız şey budur. Ancak bazı meslekler ve çevreleri için ortalama maaşları da unutmadım.
Ben böylesine mükemmel bir kariyer fırsatı ararken, erkek kardeşim CodeRiders'ta iş geliştirme departmanının yöneticisi olarak çalışıyordu. Şirketin kurucusu ve CTO'su kardeşimin çocukluk arkadaşı. Yani, şirket benim için zaten iç açıcıydı. Programlamanın ilgimi çekip çekmeyeceğini görmek için PHP, Laravel ve JavaScript kurslarına kaydolmamı önerdi. 2000'lerin ortalarında, teknoloji endüstrisi Ermenistan'da zaten çiçek açıyordu. Umut vaat eden yeni mezunların büyük bir çoğunluğu yazılım geliştiriciler, mühendisler, mimarlar, testçiler (QA uzmanları), Proje Yöneticileri ve dijital pazarlamacılar gibi meslekleri seçtiler ve BT sektörü çok güçlüydü ve milyonlarca fırsatla doluydu. Ermenistan, dünyanın bir sonraki teknoloji merkezi olma yolunda ilerliyordu.
Bu yüzden denemeye karar verdim ve görebileceğiniz gibi mükemmel bir seçimdi. Kendimi yazılım geliştirmede buldum ve ekip benim için mükemmel bir eşleşmeydi. Yazılım geliştirme okulunu başarıyla bitirdikten sonra 2016 yılında arka uç yazılım geliştiricisi olarak işe alındım. CodeRiders benim ilk ve tek çalışma alanım. “Ben sadece bir çalışanım” sözünün yakışmadığı bir ortam yarattık. Hepimiz şirketin refahını ve itibarını dürüstçe önemsiyoruz ve küçük bir girişimden uluslararası kabul görmüş bir yazılım satıcısına ne kadar geldiğimiz şaşırtıcı. İlk denemede ideal bir iş yeri bulmanın nadiren olduğunu biliyorum, bu yüzden bunu çok takdir ediyorum. Şirketin başarısı kadar kişisel başarımın da vizyonumuz ve bağlılığımızla güçlü bir şekilde bağlantılı olduğunu düşünüyorum. İnsanların daha verimli çalışmasına ve eğlenmesine yardımcı olmak gibi net bir misyon için toplanmış büyük bir aile gibiyiz.
Takımın senin için bir aile gibi olduğundan bahsetmiştin. Bu gerçek çalışma ve disiplin için “gevşek” bir ortam yaratmıyor mu?
Birçoğu, iş arkadaşlarınızla arkadaş olmanın veya işte yakın bağlantılara sahip olmanın iş/iş verimliliğine zarar verdiğine inanıyor. Bununla tartışmayacağım çünkü durumlar farklı. Ancak, CodeRiders'ta bu, daha iyi çalışmak için ekstra bir teşvik gibidir. CodeRiders ile kendimim. Herhangi bir baskı altında değilim, gösteriş yapma ihtiyacı da hissetmiyorum. Sonuç olarak, sadece işime konsantre oluyorum ve en iyi yaptığım şeyi yapıyorum: kodlama ve yazılım geliştirme. İyi sonuçlar ve olumlu müşteri geri bildirimi, işimin verimliliğini kanıtlıyor.
Lütfen CodeRiders'daki tipik çalışma gününüzü tanımlayın.
Tabii ki bir fincan kahve ile başlıyoruz. Pazartesi ise, iş geliştirme departmanı dahil tüm ekip üyeleri bir sabah toplantısı için toplanır. Yaptıklarımızı paylaşıyoruz ve herkesin doğru yolda olduğundan emin oluyoruz. Sonra herkes çalışmaya başlar.
Hepimiz birkaç büyük konforlu odada çalışıyoruz. Ayrı odalarımız yok, bence bu harika çünkü birlikte çalışmak bir şekilde stres atıyor. Örneğin, yoğun bir çalışma gününde, ekip üyelerimizden biri bir şaka yapabilir ve herkes güler ve çalışmaya devam eder.
Ayrıca tartışmalar veya görüntülü görüşmeler için ayrı odalarımız var. Yani, özel alana ve sessizliğe ihtiyacımız varsa, o odalara taşınabiliriz. Biz geliştiriciler için bu genellikle sabahları ve akşamları bir müşteriyle ve uzaktan yazılım geliştirme ekibiyle görüşmelerimiz olduğunda olur. Farklı konular hakkında konuşabileceğimiz, sakinleşebileceğimiz ve zihnimizi tazeleyebileceğimiz birkaç kahve molası da verebiliriz. CodeRiders, çalışanların uzaktan veya ofiste çalışmak arasında seçim yapmakta özgür olduğu anlamına gelen hibrit bir çalışma modeli sunar. Şirket içi çalışmayı tercih ederim çünkü iş arkadaşlarımın (ağabeyim ve yakın arkadaşlarım) yanında olmaktan keyif alıyorum, bu da daha verimli çalışmama yardımcı oluyor.
Mevcut projenizi daha ayrıntılı olarak tartışır mısınız?
Şu anda hepsi bir arada bir spor yönetimi platformu üzerinde çalışıyorum. Ana hedefi spor kulübü organizasyonunu düzene koymaktır. Uluslararası pazarda önde gelen spor yönetimi platformlarından biridir. Herhangi bir spor kulübünün yönetimini otomatik hale getiriyoruz. Herkes dünyanın herhangi bir yerinden yerel kulübüne katılabilir ve onu teşvik edebilir. Ürün, tüm idari ekibin cebinizde olması gibidir. Kullanıcının kulüplerini tüm cihazlarında her yerde ve her zaman kolayca yönetmesine yardımcı olur. Neredeyse her kıtadan uzak yazılım mühendisleri ve geliştiricileri ile çalışıyorum. Tüm teknik ekip üyeleri ve müşteri ile yakın çalışan birkaç proje yöneticimiz var.
Mevcut yazılım geliştirme projeniz hakkında en çok neyi seviyorsunuz?
Projenin büyük olması ve sizi hiç sıkmamasının yanı sıra, çalışma sürecimizi ve metodolojimizi beğeniyorum. Böyle karmaşık bir proje için mükemmel olan Scrum yazılım geliştirme metodolojisini kullanıyoruz. Scrum, en popüler Agile çerçevesidir ve elbette Agile'ın 5 ilkesini takip eder: bağlılık, odaklanma, saygı, açıklık ve cesaret. Genel olarak, yinelemeli yazılım geliştirme modelleri çok esnektir ve "değişim dostudur". Plana bağlı kalmak zorunda değilsin. Scrum ile, aklınızda nihai ürün versiyonu olmasa bile yazılım geliştirme ve uygulama konusunda başarılı olabilirsiniz. Bu arada, sabit fiyatlı yazılım modellerinden farklı olarak, yinelemeli yazılım dış kaynak metodolojileri, müşterinin yalnızca taahhüt edilen iş için ödeme yapmasını sağlar.
Bu projedeki tipik çalışma gününüzü tanımlayın. Uluslararası bir ekiple çalışan eksiksiz bir geliştirici olmak ne anlama geliyor?
Ekibimiz proje yöneticilerinden, arka uç ve ön uç yazılım geliştiricilerinden, mühendislerden ve test uzmanlarından oluşur. Proje yöneticileri, işi sprintlere ayırır ve biz de ilerlemenin ardından her sprinti tamamlamak ve test etmek için yakın işbirliği yaparız. Dolayısıyla, yazılım geliştirme süreci ve zaman çizelgesi şuna benzer:
- Sprint planlama ile başlıyoruz. Her sprint şu şekilde başlar: Yazılım geliştiricileri, mühendisler ve ürün sahipleri, sprint'e hangi ürün biriktirme listesi öğelerinin (PBI'ler) dahil edilmesi gerektiğini tartışır. Ürün sahibi, belirli bir ekran için PBI'lara öncelik vermekten sorumludur. Bununla birlikte, kararla ilgili görüşlerimizi, düşüncelerimizi ve endişelerimizi paylaşmamız da teşvik ediliyor ki bu harika. Sonunda, gerçekçi bir sprint hedefi ve birikmiş iş listesi üzerinde anlaştık.
- Günlük Scrum, check-in yaptığımız, ilerlememizi paylaştığımız ve o günkü faaliyetlerimizi gözden geçirdiğimiz 15 ila 30 dakikalık görüşmelerden oluşan günlük toplantıları içerir.
- Sprint incelemeleriyle devam ediyoruz: Her sprintin sonunda, yönetim ekibiyle çevrimiçi bir toplantı yapıyoruz ve son çalışmamızı gösteriyoruz. Yönetim ekibi, sprint sırasında uygulanan çalışma özelliklerini gözden geçirir ve geri bildirimde bulunur. Geri bildirim, ürün biriktirme listesine dahil edilerek gelecekteki sprintlerde daha iyi öncelik vermemize yardımcı olur.
- Son adım, sprint retrospektifidir. Bu, Scrum ekibinin iyileştirmemiz gereken şeyleri gözden geçirdiği ve gelecek için iyileştirme yöntemleri sunduğu zamandır. İşbirliği yaparak bir sonraki adımımızı buna göre planlıyoruz.
Scrum metodolojisini ne kadar sevseniz de, projenizde düzeltmek istediğiniz herhangi bir dezavantaj var mı?
Dürüst olmak gerekirse, bazen zaman kaybettiğimizi düşünüyorum. Konuşmayı ve tüm ekip üyelerinin aynı yolda olmasını sağlamayı seviyorum. Bu, elbette, başarının anahtarıdır. Ancak bazen bazı aramalar veya sohbetler gereksizdir ve bir proje üzerinde çalışmaktansa bir konuyu tartışmaya daha fazla zaman ayırabiliriz.
Yabancılarla çalışmak nasıl bir duygu? Kültürel farklılıklar var mı?
Elbette deneyim çok farklı ve doğal. Farklı ortamlarda yaşıyoruz ve farklı alışkanlıklarımız, zihniyetlerimiz ve zihniyetlerimiz var. Bazen birbirimizin şakalarını anlamıyoruz. Ancak bu çok büyük bir sorun değil ve çalışma sürecimize zarar vermiyor. Aslında, bu bir zaman meselesidir. Birlikte ne kadar uzun süre çalışırsak, birbirimizin yerel kültürünü o kadar iyi anlarız. Her neyse, tüm bu farklılıklara rağmen, diğer ülkelerden profesyonellerle çalışmaktan hala keyif alıyorum. Bu, çalışmayı daha da ilginç hale getirir.
Bir yazılım geliştirici için iyi bir proje yönetimi ne kadar önemlidir?
Proje yönetimi kritiktir. Müşteri ve ekip üyeleri arasında şeffaf bir iletişim yoksa, bir projenin %90 oranında başarısız olması muhtemeldir. Bir projenin başarısı için sorumlulukların sağlam bir şekilde anlaşılması şarttır.
Proje yöneticileri olan ve olmayan projelerde çalıştım. İlk durumda, yazılım mühendisi ve geliştirici arkadaşlarımla sorunsuz ve kolay bir şekilde iletişim kurdum. Teknik ekip bazen teknik olmayan ekip üyeleriyle iletişim kurmakta zorlandı, ancak bu an meselesiydi. Bu aynı zamanda bir yazılım geliştiricinin teknik olmayan kişilerle çalışma deneyimine de bağlıdır. Yazılım geliştirici, teknik olmayan personel üyeleriyle çalışma konusunda yetenekliyse ve onların mantığını anlıyorsa, iletişim basitleşir ve daha az zaman alır. Aksi takdirde, bir dakika sürebilirler ama yine yollarına geri dönerler. Küçük ve basit projeler, proje yöneticilerine bile ihtiyaç duymaz. Ancak küçük projelerde proje yöneticilerinin rolünü hafife almayacağım. Elbette işbirliğini daha profesyonel ve faydalı yollarla yönetiyorlar.
Gelecekte hangi dilleri veya teknoloji yığınlarını öğrenmek istersiniz?
Şu sıralar Unity'i araştırıyorum. Platformlar arası bir oyun motorudur. Çok popüler ve muhtemelen bunu zaten biliyorsunuz. Unity, çeşitli mobil, konsol, masaüstü ve sanal gerçeklik platformlarını destekler. Çoğunlukla iOS ve Android oyun geliştirme için kullanılır ve özellikle bağımsız oyun geliştirme (bağımsız video oyunları) için popülerdir.
Bağımsız yayıncılığın başlıca avantajlarından biri, çok sayıda insanın kullanımına açık olmasıdır. Örneğin, bireysel yazılım geliştiriciler ve mühendisler veya küçük yazılım geliştirme ekipleri, büyük oyun yayıncılarından teknik ve mali destek almadan oyunlarını oluşturabilirler. 3D ve 2D oyunlar, etkileşimli simülasyonlar ve diğer heyecan verici şeyler oluşturmak için Unity motoruyla oynuyorum.
CodeRiders, ilk ve tek çalışma alanınızdır. Bu sık olmaz. Nedenmiş?
CodeRiders ile karşılaştırabileceğim daha önceki bir çalışma alanım yok ve oradan ayrılmayı hiç düşünmedim. Bu zaten benzersiz bir çalışma alanı olduğu anlamına gelir. Bu şirketin küçük bir başlangıçtan yerleşik, uluslararası kabul görmüş bir yazılım satıcısına doğru büyümesine tanık oldum. Meslektaşlarıma güveniyor ve takdir ediyorum çünkü şirketin yüksek itibarından biz sorumluyuz. CodeRiders'ın yazılım geliştirme şirketine ve vizyonuna inanıyorum. Personel arasında bir aile üyem ve yakın arkadaşlarımın çoğu da var, bu yüzden bu üçünün bu sorunun sağlam bir özetini oluşturduğunu düşünüyorum.
Bu röportajı bir birey olarak Artur hakkında bazı bilgilerle bitirelim. Hobileriniz ve ilgi alanlarınız?
Spordan hoşlanırım, özellikle futboldan/futboldan. Video oyunları oynamaktan da keyif alıyorum.
Bizimle konuşmak için zaman ayırdığınız için teşekkürler Artur. İzleyicilerimizle pek çok yararlı bilgi paylaştığınızı düşünüyorum.
Artur gibi yetenekli yazılım geliştiricilere ve mühendislere ihtiyacınız varsa, bize buradan hızlı bir mesaj göndermekten çekinmeyin. Ücretsiz tartışmalara da açığız. Bize mesajınızı bırakın, iş geliştirme ekibimizden biri bir iş günü içinde size geri dönecektir.