Blog

Eleven Concrete Business Reasons for a Customer to Build or Buy an IT Product

Whenever I coach someone about the reasons why a customer usually decides to build or buy an IT product or service, I suggest for him to study my “Eleven C’s of Business Value” list. This list contains the most important business value statements that everyone who comes in contact with customers on a daily basis should know blindfolded. That list is:

  • Generate Cash
  • Attract Customers
  • Stay Competitive
  • Reduce Costs
  • Enhance Communication
  • Enable Collaboration
  • Build Connections
  • Manage Complexity
  • Ensure Compliance
  • Accelerate Change
  • Understand Consumers

All of these aspects have a common background: Enhancing the chances of success by increasing the effectiveness of the organization. Which reasons would you add to this list?

Revisiting Some Classic Zen Habits Posts

I started to read Zen Habits about 3 years ago when I discovered my passion for personal productivity and self development after I had read various books from David Allen (including Getting Things Done) and Steven R. Covey (especially The 7 Habits of Highly Effective People and First Things First). Although I have lost a bit of interest in Leo’s thoughts lately (although I read his book and found it pretty good), the classic Zen Habits posts are still a source of inspiration on its own. So in case you haven’t read them for a longer period of time or not at all, go and revisit http://zenhabits.net/2008/07/the-beginners-guide-to-zen-habits-a-guided-tour/. It’s really great.

I especially recommend 20 Things I Wish I Had Known When Starting Out in Life and The Unsurpassable Productivity List. Revisit them on a regular basis and try to learn from the mistakes others have made – it will safe you time and energy for the important things. For those of you who have already implemented GTD or another productivity system, read How to Actually Execute Your ToDo-List – it can be an eye opener for real productivity junkies (like I was once).

Offshoring the Right Kind of Work

As some of you may know, I have worked in various non-technical roles as Business Unit Director, Project Manager, Delivery Lead and Technical Pre-Sales Architect over the past 7 years before I took over as Application Maintenance Manager in a large software engineering project in the banking industry a couple of weeks ago.

Despite my passion for technology, these roles were not only very important for my career, they also shaped my thinking and helped me to understand more of the real value of software engineering. Based on that experience, I decided to write this post and to share my thoughts on one of the most difficult trends in the software engineering space today: Offshoring work to low cost countries like India.

My view on this topic has always been kind of wary, until I recently decided to apply one advice I’m constantly giving to other people to my own thinking: Accept the current reality, understand the reasons, change your attitude and deal with it right away. So this post is basically a recommendation to accept the current situation despite all the negative feelings that might be attached to such a change and to adapt strategy and operations accordingly.

Living in one of the richest countries of the world has a lot of benefits – no doubt. The “drawbacks” of this can mainly be attributed to the fact that the price of work is to high for those results that can be produced somewhere else on the world for less money. Of course, this is especially true for the IT industry, as the costs for transporting the results of this work (software and services) over the internet are very, very low.

When I ran the software engineering business unit at my former company, we made a first attempt to get in touch with offshoring as a concept in 2007, but decided to back away from that strategy. In retrospect, that may have been for the wrong reasons and I think, I approached it with the wrong mindset.

The truth is, offshoring is not very different from other trends in the IT industry. For years we have seen new layers of abstraction in the form of new programming languages (Assembler, C, C++, C#), runtime platforms (Mainframe, Unix, Windows, COM, .NET), and frameworks (JSP, Struts, ASP.NET WebForms, Modern MVC Frameworks) that incorporated the learnings of its predecessors and added an additional layer of indirection to safe time and money.

Offshoring is basically the same, although it is applied in a different area, namely organizational structure, processes, people, and skills. The fact is, there are certain types of work you can outsource (and thereby offshore) pretty good, if you can clarify the outcome to a degree that is sufficient to let someone else carry out the work. This, of course, raises the bar for consultants and local software developers significantly. It is no longer enough to be able to complete relatively simple tasks like HTML development very quickly, you now have to explain someone what result you want and give him all the information available to fulfill your expectations. This calls for management and people skills, and it demands good judgment in terms of business value and strategic thinking.

In addition to that, there are types of work you will never be able to “offshore” somewhere else. This starts especially with a good relationship to your customers, partners and suppliers, continues with strategic consulting, business analysis, requirements engineering, software architecture, project management, and ends with certain types of development, testing and deployment. Having said that, there are of course a lot of tasks that can and should be put into action by an inexpensive work force if the outcome meets the demands in terms of quality and delivery performance.

Therefore, one of the biggest challenges for successful organizations in this decade will be to a) find the right kind of work that can be delegated to offshore resources, b) hire the right people in a low cost country and integrate them as part of a global team, c) create a culture of trust and performance among your distributed work force, d) help your local people to define the outcome they need in a way that guarantees good results and e) educate your staff to delegate and manage their remote counterparts effectively and efficiently.

Of course, this will especially be difficult for smaller organizations that currently rely on a local work force and lack the right connections to important peers in India or on the Philippines. But it is nevertheless a problem they will have to address with the right mindset as soon as possible.