Total Pageviews

Sunday, July 27, 2014

5 Mind Hacks for Cracking a Winning Solution

Process of finding right solution to a problem is like reaching trans through meditation. You need to focus on body, breath and mind  step by step to reach the trans. Its not easy. At every step there are distractions. So are distractions in the process of finding solutions. You cannot resist them. They are natural. You can only observe them and understand them. Its only that understanding that sets you free.

Here are 5 hacks to train your mind to deliver winning solutions. Its mostly thought out with software development background but it does not contain anything very specific about software like architecture, design or programming language etc Its meant to be set of generic principles.  


[1] Problem x Space (Present): Immerse yourself and get intimate with problem  

Can you Feel the breath? Breath of the problem and problem only. 

After you hear word problem, its tough to resist the word solution flashing in your mind. They are like twins. I know its hard to resist both. 

Wait..Hold that thought right there. Thinking about both at same time is like having both of your girlfriends visiting your house at same time !!

That says it all. While you are thinking about problem, focus only on problem. Build the intimacy with the problem to understand it completely. Its very natural to have thoughts about solutions come running while you are thinking of problem in your mind. Make a conscious effort to not let them in. Block them.

Why? What happens if I let thoughts about solutions come in during the process of problem understanding?

Lets say you have only understood part of the problem and you also start multi-task thinking about the solutions as well. The solutions you are thinking can by themselves have some implementation level problems.  Now you have risk of mixing the core problem with implementation issues of the solutions. This can misguide you as to what is the definition of the primary problem. This can potentially leave you with incorrect understanding of the problem.  Don't let the solution space bias your understanding of the problem space.

Also do not worry about how this problem could evolve. Future is imaginative. Its like imagining the trajectory. The accuracy of the predicted trajectory improves if you locate the starting coordinates accurately. Just stay in the moment and understand the problem at this moment.  Just that. 

Remember: The simplicity of solution is directly proportional to the intimacy with the problem. 

[2] Problem x Time (Future):Imagine it over the Lifecycle

Now that you have understood the problem at moment correctly, Don't just fall for looks at the moment. 

Imagine how your problem will be evolve over the entire lifecycle. At different phases the problem will evolve and morph itself into something  different. It may not become totally different but slight variation. Try to visualize and understand it. This helps you to identify those small tweaks and those little additional features that can make a big difference in usability of solution. It also helps to future proof your solution.

Imagine simple TODO list tracking problem for a management team. Lets say you are expected to solve tracking problem by showing total tasks and total completed tasks for a project.  Lets visualize how the definition of this problem could change over a period of time. 

At the the beginning of the project, leaders are interested to look at the total count of tasks at project level to get sense of overall effort needed. But after intermediate milestones are defined, Leaders are interested in knowing how is project doing on next milestone rather than complete project level details. Now the todo tracking solution should be capable of showing total tasks and completed tasks for a complete project or per milestone to be effective over project life cycle.  Problem definition has changed slightly over a period of time. Modification in original solution to support such requirement is simple tweak, if its thought out upfront.

Remember: Imagining problem over its lifecycle allows your solution to stand strong through the test of time. 


[3] Solution space: Enumerate Theoretically and Execute Practically

After the problem has been completely and clearly understood in space x time, enumerate all the possible solutions. While thinking about solutions do not worry about the priorities, resources, how to implement it, what has been precedence etc. These are secondary parameters. First, just focus on defining solutions with all its possibilities for primary problem without writing anything off.

After you have enumerated all the possibilities, start thinking about secondary parameters during the selection of the solution.  Now bring in priority, resources, precedence, process or any other secondary parameter that you care about in the play and select the solution that is practical for execution. This allows you to make a very informed choice. Right solution gets selected. It also allows you to switch to different solution easily in future if any of the secondary parameters change. 

Remember: Never allow premature rejection of possible solutions based on the secondary parameters.

[4] Solution review: A round in Boxing ring  

Now that you have a solution, How do you check if your solution is ready for implementation? Take it for a round in the boxing ring. 

For any completely and clearly thought out solution, It must be possible to communicate it to any one in 10 minutes. May not be all parts of the solution, at least the core theme or the core essence of solution should be communicable in 10 minutes.

Even if you are not expected to review  your solution with anyone, force yourself to do that. It forces you to organize your thoughts. It brings out any weak links. It makes sure the solution is coherent. It allows you and your team members to question it. It allows any weakness to surface and hence get addressed. Also make effort to focus on anything that you are not comfortable during debates. Expose its weakness. Let it take some blows especially in the weak spots.  

Remember: Do Not hide weakness in solution. Let it take some blows early to stand stronger in finals to win it.

[5] Solution implementation: Balance ease of Developer vs User

 Both developer and user are people. Both are real humans. Have empathy for both.

"Build highly user friendly solutions" has been pounded in to our head. While I am not denying that but its worth noting that there are people on both sides. You cannot totally ignore the people who are building the solution under given time and resource constraints. If you tax developers unreasonably to build a highly user friendly solution they are going to do a poor job out of it. Thus its good for no one. 

Once you internalize the fact that there are people on both the sides you will surely be able to  balance it. Initially it may seem counter intuitive. But you have to trust in it and make sure you balance it. Attempt win-win for both the user and developer. It's possible. 

Remember: You take care of your developers and your developers will take care of your users.  


All of it might sound like lot of work, potential "Paralysis by Analysis". I hear you. You are right it might sound like it. Come on, think yourself. If that's reality of the problem why run away from it. You can make conscious decision to do it over a period of time. That's fine. But do not hide it under the rug and forget about it. If you do  that, it's anyway going to pop out. It will pop out when you least want it. When that happens you can't blame it on Murphy's laws. He will say, I have already told you so. 

Doing anything worthwhile is going to take time. Prioritize but do it well. 

The structures were austere and simple, until one looked at them and realized what work, what complexity of method, what tension of thought had achieved the simplicity. - Ayn Rand - Fountainhead

Sunday, July 6, 2014

5 Tips to Stay Sane in Knowledge Industry

In general society thinks, Knowledge industry workers job is best. They are earning and enjoying so much. While I completely don't deny it but it has its own challenges. These guys face their own problems. With the sedentary lifestyle and excessive relying on their mind to deliver everyday they face tremendous stress. These guys carry their work everywhere and find it hard to relax. Although software industry might look very soft for outsiders but inside its real hard nut.

One needs to give some serious thought to stay competitive & sane in this industry over a sustained duration of time. There is no one single list for everyone.  Everyone has to work out their own list of practical N items to do everyday. Following list is reminder to figure out one for yourself and give some ideas to get started.

Lets jump in to the list:

[1]  Exercise 10 minutes
Exercise as simple as walk for 10 minutes in morning can keep you alert and positive for the full day. It clears up your mind. Its totally understandable that taking out 10 minutes in highly packed morning times could be a challenge. No, I am not going to ask you to get up early by 10 minutes. If you can afford buy a Treadmill and do your brushing of teeth on treadmill. It will make sure that your teeths are getting enough attention as well as your body.

[2] Yoga 10 minutes
One might ask why is yoga needed ? Exercise such as walk will not be able to provide benefit to all the parts of body. Yoga focuses on each each part of the body and allows you to focus on it. Especially this is important for all the joints of the body. With long drives, long hours of typing and stiff  posture will make your feets, palm, neck and shoulders looking forward for some focused movements to relax them. There are good number of simple yoga techniques to relax these parts of body. Overload your morning tea session with the yoga. Along with sipping your favourite morning beverage do some simple  yoga posture. A very simple yoga called PavanMuktasana can be incorporated as everyday lifestyle.

[3] Prayers 10 minutes
We all know if anything needs to be run well there needs to some active person managing it. So assuming that this complicated world is running all by itself is biggest lie we can tell ourselves. We need to understand we cannot control everything. We believe it or not there is higher level being running this world. More we connect with that higher level power the more harmony we can experience in our life. It will take off the loads in all areas where you cannot absolutely do anything. So pray to whatever form  you believe in for 10 minutes everyday. It will eventually connect you to yourself.

[4] Inspire 10 minutes

People often say that motivation doesn't last. Well, neither does bathing - that's why we recommend it daily.
- Zig Ziglar.

So to keep your morale up do something inspiring everyday or if you cannot, read something inspirational. With the growth in social media its very easy to find the type of content that inspires you daily. Use them wisely. Use the mediums like Twitter and Linkedin well. Follow some right set of people to keep finding something inspirational. Don't just stop at finding the insight, share it with others as well. It extends the joy and allows you also do more firmer commitment to apply and try those insights in your own life as well. Improve together.

[5] Reflect 10 minutes
This is tough one. Its most important. Start off with very simple way of just reliving the day by just recalling all the things that you could remember at the end of the day. Slowly you will start identifying what thoughts need more focus and what to filter. Slowly you will able to connect these to your longer term goals and see if you are going towards achieving them. Its difficult to control the mind from just wandering away. Its practice. The more you practice the more you will be able to do it well and benefit.

One more...
[6] Reality 10 minutes
Being part of knowledge industry good part of our day, we stay in virtual world created by our mind. Even most of the work we produce gets confined in some form thats not clearly visible. A civil engineer can showcase the building he has been working on but for many software engineers they cannot directly showcase what they are working on. This sometimes can lead to self doubts about the skills we possess and what we can produce. Periodically engage in something physical and concrete. Do some regular errands very consciously well or pursue some hobby that produces results that can be easily perceived. Get in touch with reality periodically, come out of your virtual world. Stop and smell the roses.

I call this sum of 60 minutes a "Golden hour". I hope that this inspires you to think about your golden hour to stay sane. I wish you that you find what you are looking for. Do share your thoughts and lists.


Wednesday, July 2, 2014

How to empower your work to achieve highest possible impact?

We all know, we have limited time at our disposal. So we better invest our time in such a way that, every moment of it can achieve the highest possible impact it can.

Let me tell you don't need to sweat it out to do that. There is very simple principle involved behind it.

Principle of highest impact:

That principle of empowering maximum impact for your work can be easily incorporated by doing following:

Whenever you encounter any problem or solution, you need to answer following two questions:
[1] What is the maximum theoretical scope for it ?
[2] What is the maximum impact practical application for it  ?

These two questions have to be answered in the order listed. Answer of the first question helps establish the boundary by listing options.  Answer of second enables the choosing the right application area from the list of options.

"Principle of Highest Impact" in Action:

Lets do that with small story.

Lets say you have joined this new high potential startup and busy coding. You start noticing recently your computer has started hanging frequently. The curious you, takes a plunge. You google around. You spot some utilities. You run them on your computer over a weekend. Results of full analysis are ready on Monday.

With your favourite cup of tea you scan those reports. You figure out that the hard disk is showing some problems. You google about the hard disk model in your computer. You spot in hard disk vendor hosted discussion forums that this particular hard disk has known issues. It starts showing the degradations after a usage over a couple of years.

Now without knowledge of this principle of highest impact, you would get a new hard disk, copy the data from your old hard disk, plug it in and get started. Problem solved, back to coding.

Now equipped with this new principle, you decide to apply the principle and see if it works:

[1] What is the maximum theoretical scope it ?

Simple answer in this case is, wherever machine of the model you are using is being used.

You start bit of spying around the cubicles. In the close vicinity around your cubicle you spot three more of your  colleagues are using the same model type. Now you don't stop there and continue your exploration.

You ask yourself where are most of the computers located on your campus? You find out its that corner room where all the server machines are stacked. On your next tea break you look around the server room and to your surprise you do find that your startup tool cluster contains some of those models as well. Now equipped with this new information you jump to second question.


[2] What is the maximum impact practical application for it ?

Simple, which affects many people and which affects  your company as whole.

Where will you apply the solution first ? Also it would be safe to assume that  your company will have limited funds, which machine will you replace first?

Maximum impact practical application would be : Server machines - Right ?
Now when you suggest that to the management with all the data, think of the impact you have had on the company and your career.

Little additional effort coupled with the application of this principle you are able to achieve the maximum impact for your solution.

Sounds interesting, Is it possible every time?

Good question. Finding answer to the first question of this principle may not be easy all the time or some time it may not even possible to find complete answer.

Agreed. In those cases the extent you can apply this principle will vary but still it ensures that proportional to that impact can be achieved.

In essence for given scenario you always can maximize the impact.

You are responsible for giving your work platform to achieve highest impact it can. Empower it.