Posts tagged: Unpredictable

99 Problems

I thoroughly enjoyed reading Nathans post about Sunday Softness. There are so many interesting points that I would like to make about this – even though it’s 3 in the morning… 😉

Shri – Soft? from an article titled Destroy Something? Its no surprise that both my post and Chris’s seem similar since they are just two approaches to problem solving… I’ll clarify that in a minute… 😀

Trying something new is something that I thrive on. In fact, I believe that is one of the reasons for me doing what I do today… and every day… I like to think that Kraya is a team of problem solvers – that is the biggest part of our job. We have been involved in solving some pretty heavy and serious problems. How do you design and develop a ordering system in 5 days was one of the interesting ones… Not to mention the megabus.com pricing algorithm.

To be able to solve problems – you need to have critical skills. One is to analyse and understand a problem and the second one is to have tools that can be used to solve that problem efficiently and effectively.

The reason I personally, and Kraya have such an exposure to such a vast array of technologies is that we need the tools to solve a problem. We might not need it today or tomorrow but we might need it one day. On that day, we might not have the time to learn it all…. I know that the majority, if not all of the people at Kraya have already got their hands dirty with a large number of technologies. I would also like to think that they have been exposed to some new technologies since they joined Kraya. In fact, if this has not happened, my job has not been done…

Now, to separate the problem solving technique I covered from Chris’s. We are both covering ways to understand a problem space. Chris suggests understanding your problem space by knowing it, understanding it and loving it. I agree with this. Understand the problem and you can solve it.

When I suggest you try to:

break out of your habits, out of your box, destroy your preconceived ideas and look at it differently, try something new…

What I am suggesting is that you consider the problem as a black box and throw something unexpected at it and see how it reacts. This will not solve the problem. In fact, it might break it further but you can learn something new about the issues at play and therefore give you a clue as to how to solve it.

I’ll demonstrate with an example.

I wanted to set up IDENT authentication for postgresql so that we didn’t need to store password on text files to log into the database server but it was not working… I had the ident server installed but it just gave authentication failures. I tried replacing the ident server, tested the ident server and it still failed. Tried restarting the db server and still no joy.

The log files showed that it was requesting auth and it came back with the correct response. The db server was simply ignoring it.

I was stumped. What else could I try? Everything was set up and it should have worked. There was no way to understand the problem space better. I had two choices… Set up an ident client and test the ident server thoroughly, then setup a custom ident server and test the client.

Instead, I simply switched off the ident server. Something that definitely broke the auth on the db server.  I broke it in a controlled fashion to try to identify where the problem lie. Sure enough the db server logs told me that it could not find the ident server. This helped me to understand the problem was at the db server end.

In fact it pinpointed that the problem probably lay in the one line in the configuration file that specified the ident authentication configuration and sure enough it was. I solved it.

This is obviously a trivial example. However, the point I am trying to make is that while it makes sense to understand exactly what is going on – sometimes, this can be a little too time consuming and laborious.

In these circumstances (and it might be true that I take this approach more often than is “safe”), a good approach is to see if you can break it further or how you can break it further as a quick way to identify where the problem may llie.

I believe that this also applies to people and have to disagree with the following comment

to suddenly change the way one of you is and do something different can’t possibly work; it’s breaking one of the foundations on which the relationship was built.

This might be because, I, as a person tend to be more unpredictable and variable than most… at least until this becomes expected behaviour. (You might be surprised at the number of times I am asked – “what have you done now Shri?”)

When a situation (or relationship) has reached a state of staleness or stalemate, you have two options. Do what you can to understand the problem(s) and take steps to solve it. Alternatively, throw a snapper (or a spanner if you prefer) into the works and see what falls out. You can then proceed to fix it…

No prizes for guessing which approach I usually take. 😉 To create something beautiful, you often have to destroy something first… >:D

More often than not, when faced with a problem, I often look to see how it could be broken further before figuring out the best way to solve it. Understanding a problem is solving a problem. Use all the tools at your disposal (and then some) to understand a problem. The better you understand a problem – the better you can solve it… :-)

So, break something today (and then fix it)…

WordPress Themes