Wednesday, October 09, 2013

Some thoughts about IT Development Strategy


It is commonly accepted that the definition of Strategy is a high level plan to achieve one or more goals under conditions of uncertainty.

By the definition, we can tell at least two things: first, that there cannot be a “magic bullet” because you have to define your goal before defining the strategy and the goals may vary between enterprises. And the second thing is that it is not going to be easy because of the uncertainty factor.

So, What can we do?. Software Engineering has tried, for some years now, to find an answer. Many methodologies like ITIL, CMMI, COBIT or lately TOGAF have proved very useful to better manage the IT departments and somehow they also helped with the strategy. All of them promise to “add value” because the role of IT is changing from being a support department to be the core of the business. In fact many IT terms has been applied to business (Service Oriented Enterprise, Process Focused Organization,…).

It is not my intention to make a digression about the several methodologies currently in the market, nor about the different organization’s types. I’d rather express my personal beliefs based on my own experience even though they don’t match with any methodology and they are nothing but some principles I think useful to have in mind when setting a strategy.

First principle: Simplicity. Simplicity means different things in different contexts, but applied to IT Strategy or to IT development, simplicity is related with efficiency. You probably don’t need the latest “cool” technology to do that report and you are adding an overhead any time you use something new in your technology stack (yes, you will need someone who knows about the new cool thing, pay for maintenance, patchs,…). Does it mean that you never have to use new technologies?. Short answer, NO. You have to carefully evaluate the pros and cons and I dare to say you should estimate a ROI (it can be your own flavour of ROI) as the business people do. In my opinion, simplicity should be in the DNA of any organization.

Establish a process. Some one could say, “A process?, What about simplicity?”. A process is overhead when we are taken into consideration an isolated development or only one system deployment. When we are talking about Enterprise IT, establish a process is the best way to learn what is working for you and what is not. Thus, a process is, at least, a very good information source about how you are doing and also the only way to add quality to the final product.

Promote TEAMS!. I have seen many times people working in the same place; they call it a team but they were not. Ideally, team members must have complementary backgrounds and skills, sharing common goals, have a foreseeable shared future, and share a common fate. Let’s face it. At the end of the day you have to rely on your people to do the right thing and a team is better than an individual by far. People can do amazing things working together.

Knowledge Management. Internal resources (internal teams) most often cannot cope with all the work and you have to seek help outside. That’s good in many aspects. New points of view, new skills, fresh air…. But there is one thing you never can let go. Knowledge. In your strategy, there must be a way to ensure that you do not depend on someone’s good will (establish a process and promote team working can be on handy). It is your duty to keep the situation under control at all times.

Try to have your own Royal Marine Corp (in many places known as Architecture Team). When talking about development, there’s always the requirements definition thing. The business users want something that they don’t know but they would recognize if they could see it. Well, the Royal Marine Corp can produce something very quickly. Mobility applications, Social Networking integrations, the Cloud Computing applications, you name it. When there is no time, your reduced but highly motivated and skilled team can do the job.


In summary, in my vision, there is the central principle of keep it simple, try to be reliable, your people is the most valuable thing you have, don’t lose control and sometimes you need a commando to do the dirty job.