FinTechSep 9, 202610 dk okuma

Mühendis İşe Almak mı, Teknik Ortak mı: İki Yolun Maliyeti Nasıl Çıkarılır

Mühendislik Ekipleriİşlem TerminaliTeslim ModelleriKod Mülkiyeti
Görsel yüklenemedi

Bir trading terminali için ürün fikriniz ve bütçeniz var, mühendislik ekibiniz yok. Ekip kurmak ile inşayı bir ortağa vermek aynı şeyin iki fiyatı değildir: zamanı, bilgiyi ve riski farklı dağıtırlar. Aşağıda her yolun size neyi fatura ettiği, devir teslimde nelerin bulunması gerektiği ve iş durduğu gün elinizde ne kaldığı var.

Bir trading terminali fikriniz var, bunun için bir bütçeniz var ve mühendislik ekibiniz yok. Ardından gelen soru neredeyse her zaman bir fiyat karşılaştırması olarak kurulur: mühendis işe almak ne tutar, bir şirkete yaptırıp devralmak ne tutar.

Bu çerçeveleme kararı gizler. İki yol da çalışan bir kodla biter. Ayrıldıkları yer şu: kullanılabilir ilk sürüm ne zaman var oluyor, bir yıl sonra sistemi kim anlıyor, kilit bir kişi ayrıldığında ne oluyor ve iş durursa elinizde ne kalıyor.

Kısa yanıt: iki yolu ücret üzerinden değil, dört şey üzerinden karşılaştırın - bir trader'ın önüne koyabileceğiniz bir sürüme kadar geçen süre, sistem bilgisinin nerede durduğu, bir ayrılıktan geriye ne kaldığı ve iş durduğu gün neyin sahibi olduğunuz. Ücrette kazanıp bu dördünde kaybeden yol, pahalı olanıdır.

Her iki yol da kod üretir; ayrıldıkları yer bilginin nerede durduğudur

Bir trading terminali tek bir sistem değildir. Bir piyasa verisi yolu, bir emir giriş yolu, işlem öncesi risk kontrolleri, borsalara veya brokerlara bağlantı, pozisyon ve hesap durumu, defter hareket ederken sürekli yeniden çizilmesi gereken bir ekran ve kapanıştan sonra bunların hepsini mutabık kılan bir back office demektir.

İşe aldığınızda o sistemi satın almış olmazsınız. Onu üretecek organizasyonu kurarsınız ve nasıl çalıştığına dair bilgi sıfırdan başlayıp istihdam ettiğiniz insanların kafalarında birikir. Bu, onlar kaldığı sürece bir varlıktır; kalmadıklarında ise riskin tamamıdır.

Bir ortakla sözleşme yaptığınızda, bir sistemin yanında zaten başka bir yerde var olan bir karar geçmişini de satın alırsınız. Bilgi daha yüksek bir noktadan başlar ve ilk günden şirketinizin dışında durur. İçeri hiç taşınıp taşınmayacağı ise kendiliğinden olan bir şey değil, bir sözleşme maddesi ve bir çalışma pratiğidir.

Burada sistem bilgisinin ne demek olduğu konusunda somut olmakta fayda var, çünkü kastedilen kaynak kodu değil:

  • Sıralama şemasının neden bu şema olduğu ve daha basit bir şemanın kabul ettiği hangi arızayı reddettiği
  • Bağlantı katmanının hangi borsa davranışlarını dolandığı ve her geçici çözümün hangi olaydan çıktığı
  • Risk kontrollerinin hangi sırayla çalıştığı ve içlerinden biri zamanında yanıt vermediğinde sistemin ne yaptığı
  • Piyasa verisi beslemesinde gap oluştuğunda ve defterin seans ortasında yeniden kurulması gerektiğinde izlenen kurtarma prosedürü
  • Hangi testlerin taşıyıcı olduğu, hangilerinin yalnızca kapsam gibi göründüğü
  • Oynak bir sabahta devreye alma yolunun ne olduğu ve onu kimin çalıştırabildiği

Bunların hiçbiri varsayılan olarak bir depoda durmaz. Bir süreç onu yazıya zorlayana kadar bir insanın içinde durur - o insan ister sizin çalışanınız olsun, ister ortağın mühendisi.

Kullanılabilir ilk sürüm, ilk commit'ten önce belirlenir

İşe alma yolunun önünde, bütçenin ortadan kaldırmadığı bir kuyruk vardır. Teknik olarak savunabileceğiniz bir rol tanımı yazarsınız, trading mühendislerinin az bulunduğu bir pazarda aday ararsınız, şirketinizde henüz kimsenin değerlendiremediği beceriler için mülakat yaparsınız, ihbar sürelerini beklersiniz ve sonra ilk dönemi, yeni bir ekibin bir mimariyi kurmasını değil tartışmasını izleyerek geçirirsiniz.

Ortak yolu aday bulmadan değil kapsamdan başlar; zaman farkı da buradan gelir. Ortadan kaldırmadığı şey, yalnızca sizin yapabileceğiniz iştir: terminalin ne için olduğuna, önce hangi enstrümanların ve borsaların önemli olduğuna ve ilk kullanıcıların kim olduğuna karar vermek.

Takvimin bir kısmı ise hiçbir yola ait değildir. Kodu kim yazarsa yazsın, şu kalemler kendi hızında ilerler:

  • Broker ya da borsa onboarding'i ve arkasında duran evrak işi
  • Borsanın test ortamında, sizin değil borsanın belirlediği pencerelerde uygunluk testi
  • Piyasa verisi lisanslaması: neyi gösterebileceğinizi ve kime yeniden dağıtabileceğinizi bu belirler
  • Saat senkronizasyonu, denetim izleri ve düzenleyicinizin beklediği her türlü kayıt tutma
  • İlk kullanıcıların gerçek emirlerini yeni bir sistemden geçirmeye razı olması
  • Kendi ürün kararlarınız, özellikle birbiriyle çelişen o iki tanesi

Yani dürüst karşılaştırma iki teslim tarihi arasındaki yarış değildir. Soru şudur: hangi yol işin önüne etkileyemediğiniz daha az şey koyar ve hangisi etkileyebildiğiniz kısımları daha erken başlatır.

Kilit bir kişi ayrıldığında her yolun ne yaptığı

Aynı soruyu iki yola da sorun. Piyasa verisi handler'ını yazan mühendis pazartesi çalışmayı bırakırsa, salı günü ne olur ve ondan sonraki çeyrekte ne olur.

İşe aldığınız küçük bir ekipte yanıt genellikle tek bir isme bağlıdır. Erken ekipler bilgiyi tasarım gereği yoğunlaştırır: biri sıcak yolun, bir başkası bağlantının sahibidir ve yol haritası sessizce hâlâ orada olan kişinin etrafında yeniden düzenlenir. Ortak düzeninde ise yanıt, oradaki birden fazla mühendisin kodu okuyup okumadığına ve sözleşmenizin bunu yazıp yazmadığına bağlıdır.

Hiçbir yapı kendi başına güvenli değildir. Hesabınıza tek bir mühendis ayıran bir ortak, iki kişilik bir iç ekiple aynı biçimde açıktadır ve savunma iki durumda da aynıdır: bilgiyi sonradan yeniden kurmak yerine üretilirken yazıya dökmek.

  • Her alt sistem için, ne yaptığını, bilerek neyi yapmadığını ve neyin onu bozduğunu anlatan bir tasarım notu
  • Değerlendirilen alternatifleriyle birlikte, açıkladıkları kodun yanında depoda tutulan karar kayıtları
  • Kaydedilmiş bir oturumu replay eden testler; böylece bir arıza tartışılmak yerine birebir yeniden üretilir
  • Her kritik yola değişiklik merge etmiş en az iki kişi - bu bir dokümantasyon kuralı değil, kadro kuralıdır
  • Gerçekten yaşanmış her olay için, yaşandığı hafta yazılmış bir runbook
  • Herhangi bir nöbetçi mühendisin, parola için birini uyandırmadan yürütebileceği bir devreye alma ve geri alma yolu

Her iki yolda da işleyen bir kabul testi: sistemi hiç görmemiş bir mühendis alın, eline dokümantasyonu ve temiz bir makine verin, terminali bir test ortamında ayağa kaldırıp bir emir girmesini isteyin. Bir insana sormak zorunda kaldığı her şey, henüz sahip olmadığınız bilgidir.

Devir teslim, sonda atılan bir e-posta değil, kabul testi olan bir teslimattır

Devir teslim sözcüğü çok farklı iki olayı kapsar. Biri dosyaların aktarımıdır. Diğeri, onu kuran insanlar olmadan devam edebilme yeteneğinin aktarımıdır ve parası ödenmeye değer olan yalnızca ikincisidir.

İkincisini kapsama, her birine bir kabul testi iliştirilmiş bir çıktı listesi olarak yazın. Makul bir liste şöyle görünür:

  • Tam geçmişiyle depolar - son durumun arşivi değil; gerekçe geçmişte durur
  • Yeni bir mühendisin, yazılı adımlardan yola çıkarak temiz bir makinede yeniden ürettiği bir build; dokümante edilmemiş yerel kurulum olmadan
  • Kod olarak tanımlanmış altyapı; ürettiği ortamlar ve bu ortamların birbirinden nerede ayrıldığıyla birlikte
  • Sizde duran sırlar; tarif edilmiş değil, en az bir kez yürütülmüş bir rotasyon prosedürüyle
  • Ortak izlerken ve tek kelime etmezken sizin tarafınızın yürüttüğü devreye alma ve geri alma runbook'ları
  • İzleme, alarm eşikleri ve her alarm için ne anlama geldiğini ve ne yapılacağını anlatan birer satır
  • Her dış bağlantı için protokol ve mesaj şartnameleri; kullandığınız alanlar ve yok saydığınız alanlar dahil
  • Test paketi ve testlerin bilerek başarısız kılındığı bir gösterim; böylece neyi yakaladıklarını görürsünüz
  • Değişiklikleri sizin mühendislerinizin yaptığı, ortağınsa yalnızca gözden geçirdiği, adı konmuş bir dönem

Hiç prova edilmemiş bir devir teslim, bir teslimat değil, bir plandır. Provayı son faturadan sonra değil, işin ortasında yapın; provası da basittir: sistemi yazan insanlar izlerken sizin mühendisleriniz bir değişikliği devreye alır ve geri alır.

Mülkiyet, devir teslimden ayrı bir sorudur ve sonda keşfedilmek yerine iş başlamadan önce sözleşmede karara bağlanır. Bizim yanıtımız tek cümledir ve hiçbir belgenin hiçbir sürümünde onu kısaltmayız.

Müşteri, yeniden kullanılabilir bileşenlerimiz dışında ürünün ve kodun tam mülkiyetini elinde tutar. Bu istisna, bizimki dahil her ortakla dikkatle okunması gereken kısımdır: yeniden kullanılabilir bileşenlerin ne olduğunu, onları hangi koşullarla kullanmaya devam ettiğinizi, sistemin kendiniz yeniden üretemeyeceğiniz bir şey olmadan derlenip derlenmediğini ve iki taraf çalışmayı bıraktığında o bileşenlere ne olacağını sorun.

İki yanıt arasında üç format var

Soru genellikle ikili biçimde sorulur - bir ekip mi kurulsun, yoksa işin tamamı başkasına mı verilsin. Pratikte çoğu inşa bu iki uç arasında bir yerde durur ve sistem olgunlaştıkça konum değişebilir.

Üç format: tam teslim, özel bir ekip ya da ekibinize gömülü mühendisler. Kendi tarafımızı böyle tarif ediyoruz ve üçü arasındaki fark fatura değil - planı kimin tuttuğu, öncelikleri kimin tuttuğu ve sonuçtan kimin sorumlu olduğu.

  • Tam teslim: planı, sıralamayı ve sonucu ortak tutar; ürün kararlarını ve kabulü siz tutarsınız. Kapsamını tanımlayabildiğiniz ve henüz yönetecek bir ekibinizin olmadığı ilk sürüme uyar
  • Özel ekip: sizin backlog'unuz ve sizin öncelikleriniz, onların insanları yalnızca sizin ürününüz üzerinde çalışır. Kapsamın sabit bir planın kaldırabileceğinden hızlı değiştiği aşamaya uyar
  • Ekibinize gömülü mühendisler: sizin süreciniz, sizin kod incelemeniz, hatanın pahalıya patladığı yollarda onların uzmanları - emir yolu, borsa bağlantısı, kurtarma prosedürü
  • Bu üçü birbirini dışlayan seçenekler değil, basamaklardır. Bir inşa tam teslim olarak başlayıp, sistem yazılırken kurduğunuz ekibin içinde iki mühendisle bitebilir

Bu son madde asıl sorunun büyük kısmını çözer. Ortak yolunun en güçlü hâli kendi ekibinizi baştan planlar: zaten var olan bir sisteme göre işe alırsınız, mülakatlarınıza adayın bakımını üstleneceği kod yön verir ve yeni işe alınan kişinin okuduğu ilk şey boş bir depo değil, bir karar kaydıdır.

Faturada hiç görünmeyen kısımlar dahil, iki yolu da maliyetlendirin

Bu kararda en işe yaramaz sayı ücret karşılaştırmasıdır; çünkü iki yol size farklı birimlerden fatura keser. İki listeyi yan yana koyun ve dürüstçe maliyetlendirin.

İşe alma yolunun size faturası:

  • İşe alım süresi ve yanlış işe alımın geç fark edildiği bir uzmanlık pazarında tek bir yanlış işe alımın maliyeti
  • İşveren maliyetleri, ekipman, lisanslar ve bir geliştirme ortamının herhangi bir şey üretmeden önce ihtiyaç duyduğu piyasa verisi abonelikleri
  • Yönetim dikkati - birinin ekibi yönetmesi gerekir ve başlangıçta o biri genellikle sizsiniz
  • İlk mimari kararın iki kez, bir kez de yanlış verilmesi - bir ekibin alanı sizin inşanız üzerinde öğrenmesinin olağan bedeli
  • İnşayı aşan kapasite: inşaat için boyutlandırılmış bir ekip, bakımın gerektirdiğinden büyüktür
  • Yol haritası bu çeyrek net olsun ya da olmasın süren, kalıcı bir yükümlülük

Ortak yolunun size faturası:

  • Kendi başınıza tam zamanlı meşgul edemeyeceğiniz uzmanları taşıyan bir ücret - örneğin daha önce oturum seviyesinde bir protokolde hata ayıklamış bir mühendis
  • Sınır ötesinde koordinasyon: bu gerçek bir iştir ve bedeli koridor sohbetleriyle değil, yazılı şartnamelerle ödenir
  • Devir teslim sınanmamış kaldığı sürece süren bir bağımlılık
  • Yeniden kullanılabilir bileşenlerin, kimsenin yazmadığı biçimlerde taşıyıcı olma riski - mülkiyet maddesinin imzadan önce okunmasının nedeni budur
  • Şartname yazmanın maliyeti: bir ortak, ancak devrettiğiniz kararlar kadar isabetlidir

Sonra çıkışları maliyetlendirin, çünkü iki yolun da bir çıkışı var. İşe alma yolu, kurduğunuz ekibi küçülterek biter ve bilgi o kafaların içinde kapıdan çıkar. Ortak yolu, ya prova ettiğiniz ya da etmediğiniz bir devir teslimle biter; bu iki son arasındaki mesafe de o yolun riskidir.

Herhangi bir şey imzalamadan önce her iki seçeneği tek bir sorudan geçirin: bu iş cuma günü dursaydı, pazartesi elimizde ne kalırdı. Yanıtı somut çıktılarla verin - depolar, yeniden üretilebilir ortamlar, dokümantasyon ve sistemi bunlardan yeniden kurabilecek insanlar - çünkü niyetler bir ayrılıktan sağ çıkmaz, çıktılar çıkar.

amBrain'in kamuya kanıtlayabildikleri: 2019'dan beri Erivan, Ermenistan'dan sıcak yolları Rust ile yazılan yazılımlar kuruyoruz, Spectre Trade trading terminalini biz kurduk ve kurduğumuz bir mini borsa MOEX kolokasyonunda üretimde çalışıyor. Kendi terminaliniz için işe alım ile ortağı tartıyorsanız, yukarıdaki devir teslim listesini ilk görüşmeye götürün ve karşınızdakinden - biz dahil - satır satır yanıtlamasını isteyin.

Masada buna benzer bir tasarım mı var?

Mevcut mimarinizi ve sizi endişelendiren hata senaryosunu getirin; yarım saatte birlikte üzerinden geçelim.

İlgili Yazılar

Görsel yüklenemedi
FinTech
Sep 9, 202610 dk okuma

Ani Yük Altında L2 Piyasa Verisi: Sequence Gap, Kurtarma ve Yüzlerce Oturuma Fan-Out

Yazıyı oku
Görsel yüklenemedi
FinTech
Sep 8, 20269 dk okuma

Rust'ta Matching Engine Tasarımı: GC Duraklamaları Olmadan Price-Time Priority

Yazıyı oku
Görsel yüklenemedi
FinTech
Sep 8, 20268 dk okuma

Emir Yolunun İçinde İşlem Öncesi Risk Kontrolleri

Yazıyı oku