Business Rule Engine (BRE) nedir?

Merhaba, ben Ege. Checkbox Consultancy’de Jr. Software Developer olarak çalışıyorum. Sizlere BRE özelinde önemli bilgiler aktarmak, BRE hakkında 1 seneyi geçen tecrübelerimi sizlerle paylaşmak istiyorum.

Öncelikle BRE nedir sorusunu kısaca cevaplayalım. BRE, müşterinin kullanmış olduğu ürünle ilişkili olan iş kurallarının koda müdahale edilmeden kontrol edilmesini sağlar. Bu yöntemin en önemli avantajı değişen iş kurallarının, geliştirmelerinin kolay bir şekilde yapılması ve kod içerisinde ye alan katı kuralların hızlıca değiştirilmesidir.

Burada kendi tecrübeme yer ayırmak istiyorum. Müşterinin uygulama üzerindeki iş kurallarını dönem dönem değiştirme isteği sıklaşabiliyor. Bu istek bizleri bir çıkmaza sokabiliyor. Back-end tarafında yapılan geliştirmelerin içerisinde yer alan kodların esnetilmesi, değiştirilmesi, hatta yeni alanlar eklenmesi, kodun tekrardan geliştirilmesine ve tekrardan test sürecine geçmesine sebep oluyor. Burada BRE’nin development hızı ve hızlıca test edilebilmesi, agile koşan bir ekip açısından oldukça kritik bir önem taşıyor.

Proje oluştururken BRE içinde yer alan temel yapıtaşlarından söz edelim.

XOM(Executive Object Model) Java veya XML ile yazılabilen içerisinde nesnelerin ve metodların olduğu, kuralların uygulandığı ayrı bir projede saklanan Rule Project’in bir parçası olmayarak karşımıza çıkar. Rule Project’in içine XOM aktarılabilir kurallarla ilişkilendirebiliriz.

BOM(Business Object Model) ise ben aslında bunu malzeme listesi olarak tanımlıyorum. Daha açık olarak belirtmek gerekirse RuleSet parametrelerinin tanımlandığı, verbalization oluşturulduğu ve hangi nesnelerin kural motoruna geçirildiğine hangi nesnelerin uygulamaya döndürüldüğü model olarak açıklanabilir. BOM’da yer alan nesneler XOM’da da tanımlanması altın kuralımızdır. XOM ve BOM oluşturulduktan sonra Decision Operation ve signature dizaynı ile beraber iş kurallarının yazımı için uygun geçiş yapılabilir.

Verbalization konusunu sizlere biraz açmak istiyorum. BOM’da yer alan alanların sözlü olarak ifade edilmesine yarayan bir kavram olarak karşımıza çıkıyor. Sözlü olarak ifade edilirken dikkat edilen nokta tanımların anlaşılır olunmasına dikkat edilmelidir.

Proje tasarımı yapılırken İş kurallarının yazıldığı yer olan Decision Table; satırlarca yazılabilen kuralların bir dizi eylemi görüntülemek ve yönetmenin kısa yolu olarak adlandırılabilir. Birden fazla, tekdüze veya farklı kuralların setlenmesini temsil etmek için uygundur. Ek olarak boşlukları görmemize yardımcı olurken hatayı hızlı bulmamızı da kolaylaştırır. Sütun şeklinde koşullar ve aksiyonlar tanımlanır her satır bir kuraldır.

Ruleflows projede yer alan Decision Table’ların sırayla çalışmasını sağlayan diyagramlardır. Diyagram elementlerden oluşur bunlar:

  • Başlangıç ve bitiş düğümleri (Start&End node),
  • Kural akışında yürütülen kurallar kümesi RuleTask,
  • BAL veya IRL kodunda kuralın yürütüldüğünde eylemi yürüten ActionTask,
  • Başka bir Ruleflow’dan referans yapabilen SubflowTask’den oluşur.

                          

BRE’nin belirtilmesi gereken daha pek çok bileşeni var olmakla beraber burada benim amacım sizleri BRE hakkında temel bilgi sahibi etmekti. Üstte anlattıklarımı özetlemek gerekirse BRE; iş kurallarının yoğun olarak kullanıldığı yerlerde hızlı dinamik ve esnek yapısı, bir soruna birden fazla çözüm yolu sunabilmesi iş dünyasında rağbetini artırmaktadır.

Sizlere BRE’de öğrendiklerimi aktarmaya çalışmak, birikimlerimi paylaşmak istedim. Bu süreçte yardımlarını hiç esirgemeyen başta Enise Ezgi Taşdemir’e ve Checkbox Ailesine teşekkür eder yeni bir yazılım diliyle karşınıza sabırsızlıkla çıkmayı belirtirim. 😊

Exercises for Training the Whole Brain

Think your brain as a muscle for a second, even if it’s not a muscle. You can train your
brain as well as your other muscles. But how do you even start doing that?


In order to train a muscle you need to know appropriate exercises based on the
functionalities and limitations of that muscle. In the case of a brain, it is very difficult to
assess what it can or can’t do, so the ‘whole’ part in the title is a little bit flawed in that
sense, but bear with me and you will have a nice brain exercise.

Without losing any more time, we start our brain workout by listing an exercise-pair that
consists of one functionality and one limitation(?) of a brain. Try to work that out and
continue with the other pairs. Have fun!

Logical-pair

*
Find the ?
2+2 = 8
3 + 3 = 18
4 + 4 = 32
10 + 10 = ?
*
Three utilities problem, can each house be connected to each utility, with no connection lines crossing (in 2D)?

If you want to continue training, here are more pairs for you:


Emotional-pair

*
Try to guess how the dog feels in each picture.

*
What does falling from 100-meter tall building feel like?
What sound would your emotions make if they had the ability to make sound?

Movement-pair

5-minute chair yoga,

*
How long can you stay in a seated position without a chair?

Speech-pair

*
Try these tongue twisters to practice clear articulation. Start slowly and build up speed.

  1. High roller, low roller, lower roller.
  2. I need a box of biscuits, a box of mixed biscuits, and a biscuit mixer.
  3. He thrusts his fists against the posts and still insists he sees the ghosts.
  4. The jolly collie swallowed a lollipop.
  5. Friday’s Five Fresh Fish Specials.
  6. Imagine an imaginary menagerie manager imagining managing an imaginary
    menagerie.
  7. Twixt this and six thick thistle sticks.
  8. Red leather, yellow leather.
  9. She sells seashells by the seashore, and the shells she sells are seashells.

*
Repeat the above sentences faster and faster without making a mistake.

Memory-pair

*
15 + 19 = x
x * 3 = y
y / 2 = z
x + y + z = ?
*
What did you eat on 11/11/2011 for lunch?

Spatial-pair

*

Rotate the dice in the given direction for 90 degrees, then

rotate it another 90 degrees in the above direction.
What number do you see inside the red square?

*

Congratulations, you managed to complete all the exercise pairs and did a comprehensive
brain workout. Try to do similar exercises on a daily basis and enjoy a healthy brain.

Kariyerine Jr. İş analisti Olarak Başlamak

Merhaba, ben Nurgül. Yakın zamanda CheckBox Consultancy’de Jr. İş Analisti olarak işe başladım. İlk işim olduğu için iş analizi ve yönetimi konusunda herhangi bir deneyime sahip değildim. Endüstri mühendisliği eğitimi almış olmam, yaklaşık 1 yıldır da çeşitli dillerde yazılım eğitimi almam; teorik olarak birtakım bilgilere sahip olmamı sağladı. Fakat saha ve teori oldukça farklıydı.

Öncelikle, iş analistliği özelinde görevim gerekli bilgiyi toplamayı, taleplerin ve halihazırdaki mevcut durumun iş sonuçlarını nasıl etkilediğini analiz etmeyi ve proje üzerinde çalışan yazılımcıları yönlendirmeyi ve onlara geri bildirim sağlamayı içeriyor. Nihai çıktının proje spesifikasyonlarını ve niteliklerini karşıladığından emin olmak ise benim sorumluluğumda. Bu yoldaki yolculuğumu anlatmak isterim.

İlk adımda takım arkadaşlarımla tanışmak vardı. Benim için oldukça heyecanlı olduğunu söyleyebilirim. Çünkü her zaman iyi bir takıma sahip olmak ve işini sevmenin paralel değerlere sahip olduğuna inanmıştım. Bu sebepten süreci öğrenip; kavramamda öncelikli olarak yöneticilerim ve takım arkadaşlarımın çok büyük desteği olduğunu söyleyebilirim.

İkinci adım, bir projede iş ilişkisi içinde olduğumuz müşterilerimiz ile tanışıp; iş hayatına yavaş yavaş başlamak oldu.

Bundan sonrası için paylaşacağım düşünceler, bugüne kadar yapmış olduğum gözlemler doğrultusunda varmış olduğum kanılar diyebilirim.

İş akışını öğrenmeye çalışmanın, süreci kavramada kilit değere sahip olduğunu düşünüyorum. Çünkü alınacak aksiyonları belirleme ve süreci planlamanın; akışı anlamlandırabilmek ile ilgili olduğuna inanıyorum. Bu sebepten, varolan akışı öğrenmeye çalışmak ilk hedefim oldu. Süreç nasıl ilerliyor? Benden beklenen nedir? Müşteri talebini nasıl karşılayabilirim? Hepsi öğrenmem gereken konular.

Her durum, her problem kendine özgü diyebiliriz. Hepsi kendi içinde bir akışa sahip ve bu akışları dikkatli bir şekilde gözlemleyebilmek çok önemli. Çünkü iyi bir gözlemci isen, sonraki günlerde bu ve benzeri durum yaşandığında alınması gereken aksiyona vakıf olabiliyorsun. Gözlemlemek, bir noktada deneyime dönüşüyor.

Bunun yanı sıra iş akışını öğrenmek, işleri önceliklendirme konusunda da bir güce sahip olmanı sağlıyor. Kısıtlı kaynak ve zamana sahibiz. Bunları en doğru şekilde kullanabilmek sanırım en büyük amacımız. İhtiyaçlara karşılık veren bir iş planı yapmak, başarılı bir analiz süreci için oldukça önemli.

Bir başka konu ise yaşanan olaylara geniş perspektiften bakabilmek. Birçok açıdan olası sebep ya da sonuçları düşünüp; eldeki kaynak ve teknolojik imkanları göz önünde bulundurup, ona göre plan yapabilmek. Ne kadar geniş bir perspektife sahip olunursa, yaşanacak olası hataları sağaltma şansın o kadar yüksek olabiliyor.

CheckBox’ta Çalışmak

İşime başlarken herhangi bir iş deneyimine sahip olmadığım için biraz korkuyordum. Ama işe başladıktan sonra herkesin bana destek olmasıyla bu korkularımın üstesinden geldim diyebilirim. Çünkü herhangi bir sorumun karşılıksız kalmayacağını ya da bir problem yaşandığında çözümü için destek olunacağını da biliyordum. CheckBox, umutlarımın tekrardan tomurcuklanmasını sağladı. Bu sebepten yöneticilerime ve takım arkadaşlarıma çok samimi teşekkürlerimi iletiyorum. İyi ki onlarla yolum kesişmiş.

Gözlemlerim sonucunda edindiğim bazı bireysel düşüncelerimi paylaştım.

Kendimi geliştirmek için öğrenmek istediğim daha bir sürü konu olduğunu söyleyebilirim. Deneyim kazandıkça eminim daha iyi gözlemlere sahip olabileceğim.

Kendiniz olabildiğiniz ve mutlu hissettiğiniz işlere sahip olabilmeniz dileğiyle…

Nurgül Akbulut