Archive for the ‘Process and Tactics’ Category

Leadership and Self-Deception

Friday, March 13th, 2009

I have been reading an interesting book, “Leadership and Self-Deception” by the Arbinger Institute. The author(s) put the quite philosophical notion of self-deception in a business context. If you find the book, I strongly suggest you to spend a couple of evenings to read it; it’s not big, just about 170 pages.

The book initiated some musings…

In our high-tech world we all like innovations. Every businessman dreams about Yahoo and Google success. We all know the stories of entrepreneurs who became multi-millionaires overnight. And Canada is a land of entrepreneurs, you know.

Bright ideas can make us rich. All needed is just proper circumstances, to be in the right place at the right time. Well, some luck, probably. If we hire a group of very bright people, say, software developers, who can sit all night and come up with something brilliant in the morning. Isn’t it what we need? Another ICQ? Netscape? iPhone has enormous success. Brilliant ideas will make us rich.

Sounds like a strategy… more… like a business strategy… right?

By the way, there is no sarcasm, I agree with almost everything I have just said. But…

Many years ago a strange twist in my career brought me to the futures market. I worked for a bank using somebody else’s money, then I played using my own money, then I even worked as a trader on the floor for a little while. I did not make a lot of money, but I learned one lesson.

When you buy (or sell) futures, you are essentially bid for something that is going to happen in future. To support your claim you put some money in so-called margin account. If the market goes as you predicted, your margin account increases, if the market is against you, the money is taken from your account. The transaction is made every day after the future trades. And at the end of the game your margin account shows exactly how much you made or lost. If the amount of the money at the end of the journey is bigger that in the beginning you obviously won. If it is smaller, you lost.

So, if you predict the future correctly, you margin account will accumulate some money. Well, here is a caveat.

You may be absolutely correct about the price of the commodity in 12 months and therefore correctly predict the future price. However, if during these 12 months the market moves up and down, and sometimes against your prediction, you may not have enough money to support your margin account. Remember, when the market is against you, you may have to put money into your margin account. If you can’t do it, your trade is terminated. Even if you predicted the future price correctly, you still lose.

Imaging a company that predicted a high-tech future correctly. For example, betting on total usage of Kindles in 2012. The company starts developing software for Kindle, say, for the lawyers. And the company starts spending a lot of money, as lawyers are still very conservative and prefer paper to any digital document. And if there is a small mistake, say, lawyers eventually start using Kindles, but in 2022 only. The company will spend money working on that brilliant idea. But they will be out of business soon, since they could not support their operations.

Am I against innovations? NO! I am just saying that any business needs a supporting mechanism, some cash flow that will take them through 2012 to 2022 and finally bring billions to them.

We all know how to achieve stable cash flow. In theory. We know, that we need to constantly improve sales. We need to constantly improve process. We need to constantly improve culture.

I want to talk about culture. The self-deception mechanism can make us believe that everyone in our company believes in our bright Kindles idea. And everyone wants to sacrifice to achieve that bright future. Most of the people though need to eat, to support their families. And they like stability. One of the common nonsense that employers like to convey to their employees is that people need to (must!) like changes. Otherwise they are some kind of second-class citizens. NO! People don’t like changes, people like stability in their lives. A little of surprise does not mean changes; it just supports the feeling of stability. Stability means constant sales for the business and proper process to deliver according to the sales.

No, I am not against innovations, bright ideas and coding all night with a lot of pizza and music. I am just saying that all is needed to support it is the stable basis.

Software Engineering Explained

Wednesday, March 4th, 2009

I know you all have seen this (or variations):

Software Engineering Explained

But I still love that cartoon.

Delivery process: removing disconnect

Wednesday, February 18th, 2009

After three and a half years with Visiphor I started thinking “What are my accomplishments?  What are the lessons I learned?”  One of the things I am proud of is a significant improvement in the solution delivery process.

I am intentionally saying “solutions delivery process” rather than “software development process”, because many years ago I have realized that developement is important, essential, but most certainly not the biggest part of the success.   Even in a product development company the development [coding] takes probably not more than 20% of the entire effort.

We generally appreciate proper process.  If you ask anyone being in the business for a while whether they want a proper process for their business or not, nobody would admit that they prefer a cowboy approach.  In reality, many of the companies traditionally run their business using that “cowboy process”.

There are many reasons to use a proper process and many books written on this topic.  I want to mention only one of the reasons, which I found extremely important: traceability.  Imagine a common scenario, when a support department gets a phone call form a customer reporting a bug.  The support department records the bug fixing request in their notes and pass the request to the developers.  The developers fix the bug, update the code, which may be even tested :), and send the fix to the deployment guys… After six months and thirty more bug fixes another developer looks in the code, which may even have a comment “there was a bug and now it’s fixed” and asks a very valid question: “Why did we do it?”  In a proper process there is no disconnect between the support group, developers, testers, and deployment.  The steps are documented and - which is very important - recorded in a traceable way.  In Microsoft world it could be TFS, for example.

Another typical example of the disconnect we can often (too often) see between the sales force and the delivery services team.  I think that everyone (with no exception, if you have been for a few years in this industry) has seen how sales people have sold something that was not realistic to deliver.  Why did it happen? Or why was the work/product underpriced? You would never know if there is no trace. 

So, I managed to improve traceability and removed the disconnect between the sales people and the delivery team as well.  First, I managed to convince the company that we should follow a certain process (for example, an SOW should be approved by the tech team senior manager before being signed).  That was easy, everyone knows the theory.  However, the next step was to implement this process in a workflow using office automation tools.  From that moment, every time when an SOW was created, I was receiving a message.  After reviewing the SOW by a PM and an architect/lead dev, I approved/disapproved it.   Therefore, the CFO was always getting the SOW with my notes and recommendations.

As an example, once our estimated price was 50% more than the price suggested by sales.

I certainly understand the business values that may have an impact on the price othen than technical consideration.  And yes, sometimes we were taking work that did not have any margin. 

Well, there was a lot of other factors that helped, the entire transition to the new process took more than a year, and we are still very far from perfection. But I achieved much better traceability, removed some disconnect between different forces, and improved accountability.  And that is what counts.