How do I define Magic?
Transforming a green pigeon to violet
elephant? Yes, could be…
Creating objects out of nowhere? Perhaps…
Vanishing into thin air? Interesting…
But essentially, the art of bringing a
pleasant, satisfied smile on a person’s face, overcome with awe and respect,
definitely is, MAGIC…
In our industry, creating a successful
engagement with a satisfied client, who sees value for the money invested,
while at the same time making the proposal profitable, is MAGIC...
How do we get at it? Let’s see…
With changing requirements, the most
logical thing would be to first draw a baseline that would determine the agreed
scope of delivery. As they say, walking on water and developing software
from a client’s requirement are both easy, if frozen!!Let’s freeze them first…
Let’s then see how all the requirements fit
in. Lets not be the characters from ‘six blind men and the elephant’
where each one of them is right, but collectively wrong. Sit back and see what
the holistic picture is. Check if your green pigeon is turning into a violet
elephant or it is turning into a blue monkey! Bring out your pen and paper,
draw a simple flowchart/ algorithm; it will keep us focused on the requirement!
This is nothing but Logic being applied to create Magic.
Faced with a complex situation? A KISS
could definitely of great help in addressing it. Stop!!! Don’t let your
thoughts run wild… It’s just thinking on “Keep It Simple Stupid” lines
to tackle the problem. It helps, trust me!!! Or just take some time off, relax,
sip some drink, try the ‘kiss’ you thought of as well – it could help too – you
never know…Eureka!!!
"Always code as if the guy who ends up
maintaining your code will be a violent psychopath who knows where you live.
Any fool can write code that a computer can understand. Good programmers write
code that humans can understand."
Consider this:
- A simplistic client requirement is to have
a utility that would help replicate nested folder structure from one machine to
another? What do you use? C? C++? VB? Java? .NET? VC++? Completion is fierce
and options are many. Assuming windows based system, a simple logical situation
would be to use plain old DOS command XCOPY without having to refer to any of
those big guys.
- A data migration requirement to read
through five year financial multi-line transactional text based output to a
normalized form, say from Tally… Again what are the options? Well, a seeming
lesser used, less time consuming option could be using MS Excel, with a splash
of macros!!! Ever thought? You could end up doing the activity in just 5% of
the time that would otherwise be consumed.
The point to drive home here is to think
thru, apply logic and select what could be the best way to resolve a task…Programming
language is just one of the means; it is and should be, by no way, a barrier to
Logic, a barrier to thought. Any language you choose, find the learning
resources related to the programming language; keep it handy, it’s just the
syntax that differs mainly. Empower yourself… Knowledge is now free, knowledge
is power.
Let’s draw an example from airline industry
on using logic. The plane / jet / supersonic despite being able to fly
fast and high, don’t have a reverse gear to move back. Though technology
could have aided in adding this feature, the simpler, cost effective, logical
solution was to have a pusher vehicle to move the plane back. Again, objective
achieved with logic rather than technology.
Logic drawn, Just follow it, and do it
right the first time…
Remember, a stitch in time, saves nine…:-)
End of day, it’s the whole team working
towards a single goal, it’s not anything about creating zero defect software or
99.999% defect free software ;-) (yeah…. Perfection is myth .. and blah blah),
its all about creating Magic, the smile on everyone’s face, using Logic.
PS. This blog was originally posted in Mindtree web portalA big thanks To Ramachandran, my mentor for reviewing