2014 m. rugsėjo 9 d., antradienis

"Bob design pattern" :)

I am pretty sure that some of you have been in situation when you where drawing some sort of diagram in order to understand how components interact with each other, what are the flows, which component is responsible for what and so on. And particularly in startups or projects where some legacy systems are involved you pretty much always get to the point where you need to draw a component which I have named as Bob.



So who is Bob ? :)

Well, Bob is a great guy, everyone loves him and the ones who does not - can't do a 'shoot' about it! Why? Because if someone will piss off Bob and Bob will decide not to come to the work anymore, well guess what - our system will loose one of the core components and everything will just collapse. It will collapse like a house of cards because this guy is a piece of software that usually integrates and couples few other important components and business flows.

When do you use "Bob design pattern" ?

Usually it is used when someone decides that there is no time to automate some processes and in most cases it goes with a phrase like:
"For now,  Bob will perform these tasks manually and once we will have time - we will automate it".  
For time being it works like a charm. Bob manually creates orders and puts those in database by executing SQL queries, runs few scripts here and there, does some reporting, generates email and few other things. Challenges starts to get in your face when you see that one instance of Bob is not enough anymore and it would be cool to spawn few more. Poor Bob - it does not scale that well. Usually that's when you start thinking that time has come for Bob to go and exactly then this drawing happens where we smile while we draw the almighty Bob.

Today we had a great laugh with guys about this, so I thought I will share it.
Smile next time when you will draw Bob ;)