# ROTA Alternatif Arayışı
Workflow, BPM, Low-Code, No-Code kavramları iç içe girip farklı farklı raporlar (Gartner, Forester, G2 vs.) içerisinde değerlendirilmesine karşın ciddi kesişim noktaları içeriyor. Bu sebeple ürünleri incelerken bakış açısı olarak temel kriterler belirleyerek ilerlemek daha uygun olacaktır.
* Kompleks (1-n, n-n, referans vs.) veri modelleme imkânı sunması
* Akışların BPMN standardını sağlaması veya aynı derinlikte akış tasarlama imkânı sunması.
* Kullanıcı arabirimin mobil destekli web tabanlı olması
* On-Premise destek sunması
> Bu noktada zorunlu on-premise ısrarımız yüzünden birçok ürünü değerlendiremeden liste dışında bırakmak zorunda kalıyoruz
| Genel olarak akış çözümlerinde geliştirme süreci |
| -------- |
| İlk önce akış içerisinde taşınacak veri modelinin tasarımı yapılır. |
| Veri modeli üzerine BPM veya benzer notasyonla iş akışı tasarımı yapılır. |
| Akış adımlarını baz alarak kullanıcı arabirimi tasarlanır. |
| Hazırlanan model, akış ve arabirim test ortamına alınır. |
| Test edilen akış canlı sisteme alınır. |
## OutSystems
* Sektör lideri ürün.
* ALM desteğini kurumsal seviyede sunuyor.
* .Net platformu üzerine geliştirilmiş.
* Güçlü developer base (Yurtdışında tabiki :smile: )
* 120.000 USD opex (100 Kullanıcı/On-premise/Yılık)
* Yapılar yorumlarda kompleks ihtiyaçlar için kompleks workarround çözümlerinden bolca şikâyet.
## Bizagi
* BPM sınıfında değerlendirilen ürünlerden.
* .Net platformu üzerine geliştirilmiş.
* Güncel teknoloji katmanları.
* Tam BPMN desteği.
* Yaygın modeller olarak kullanım.
## Mendix ve Apian
* Direkt olarak OutSystems rakibi.
* Sektörde OutSystems ile en yaygın ürünler.
* Java temelli ürünler.
* Maliyetler benzer şekilde yıllık 100.000 USD opex civarında.
:::success
Eğer hedefimiz tüm yeni süreçlerimiz ve ekiplerimiz için hızlı geliştirme platformuna oluşturmak ve temel bankacılık modüllerini RAD bir ortamda geliştirmeye ihtiyaç duyoyorsak değerlendirme süreçine alınabiliecek ürünler **OutSystems ve Bizagi**.
:::
## Open Source Ürünler : ProcessMaker ve Joget
* Tüm kaynak kod Github repolar üzerinden erişilebilir.
* İki firmada destek sağlayabiliyor.
* Kodlar PHP ve Java odaklı.
* Temel isterleri karşılıyor.
:::warning
Hız ve entegrasyon ihtiyacının düşük olduğu operatif süreçleri tasarlamak ve devreye almak için analist seviyesinde akışların tasarlanıp devreye alınmasını hedefleyerek ürünler değerlendirilebilir.
:::
# Alternatif Senaryo
Bütünsel low-code/BPM çözümlerinin yeni bir monolith dünya yaratmasından dolayı eğer
* Esnekliğimizi koruyalım
* Yetkinlkik gelişimimizi yavaşlatmayalım
* Tech-stack sınırlandırmalarına takılmayalım
diyorsak alternatif bir çözüm senaryosuda değerlendirmeye alabiliriz.
Öncelikle senaryo hedefleri için durumumuzu değerlendirelim;
| Güçlü Yanlarımız | Zayıf Yanlarımız |
| -------- | -------- |
| Bankacılık süreçlerinde yüksek deneyimli ekip | İş süreçlerinin izlenebilirlik ve dökümantasyon eksikliği |
| Kaynak geçişkenliğine izin .Net platformunda yoğunlaşmış ekipler. | Güvenlik, iz kaydı alınması, rol yönetimi gibi konuların her geliştirmede ele alınması ve geliştirici tarafından geliştirilmek zorunda olması|
| | Gelişltirmede kullanılabilecek sahip olunan varlıklar için kütüphane bulunmaması ve tekrar kullanılabilirlik değerlendirmesi yapılmaması|
:::success
Zayıf yanlarımızı dikkate alıp hızlı geliştirme süreçi için low-code ve micro servis mimarisini birleştirerek ve süreç bilgisinin kurum içerisinde belgelendirilmiş ve erişilebilir bir seviyeye taşıyarak olgunlaştırılmış bir akışı değerlendirebiliriz.
:::
| Adım | Açıklama | Aktör | Uygulamalar |
| -------- | -------- | --- | -------- |
| Akış Tasarımı | Analiz dürecinde oluşabilecek tüm geri dönüş, hata yönetimi, kompanse dalları dahil olarak iş akışı BPMN olarak tasarlanır. | Analist | [Bizagi Modeller](https://www.bizagi.com/en/platform/modeler), bpmn.io vs. |
| Servis Tasarımı | Akış içerisinde ihtiyaç duyulabilecek tüm servisler eğer servis kataloğunda bulunmuyorsa geliştirilmek için tasarlanır. Her bir servis için parametreler ve hata kodları detaylı bir şekilde anlatılır. | Analist | editor.swagger.io stoplight.io, apiary.io vs. |
| Arabirim Tasarımı | Akış içerisinde ihtiyaç duyulabilecek tüm kullanıcı arabirimleri tasarlanır. Arabirimlerinlerin hangi verilerle çalışacağı akış içinde mesaj tanımları ile berlirlenmiştir. Ayrıca listeleme, raporlama gibi akış dışı destek arabirimleride tasarlanır. | Analist | mockflow.com, www.figma.com/ moqups.com, proto.io vs. |
| API Geliştirme | Analist tarafından ihtiyaç olarak belirlenmiş API geliştirmlerini veya güncellemelerini yapar. | Yazılım Geliştirici | **.net core** -- *kurum içi birincil ortam .net core olmasına karşın ihtiyaç durumunda golang, typescrit gibi dillerle geliştirme yapılabilir* |
| Süreç Geliştirme | Tasarlanan akış akış motoruna yüklenerek ve ilgili API bağlantıları sağlanarak ayağa kaldırılır. | Yazılım Geliştirici | zeebe.io, netflix.github.io/conductor/ |
| Arabirim Geliştirme | Kullanıcı arabirimleri API üzerinden haberleşecek şekilde geliştirilir. UI first olarak tasarlanmış API tasarımı ile arabirimler düşük geliştirme maliyeti ile geliştirilir. | Yazılım Geliştirici | [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor), vuejs.org, angular.io vs. |