Wednesday, February 24, 2010

The key to success in software development

Over the past 10 years I have worked in a few organisations and I had the pleasure of meeting many competent software development professionals. The statement I would like to make is that regardless of the technology, methodology or anything else applied to the software development field, your most important asset, and one of the main aspects to enable successful projects, is the people involved in your development team.

I know that many of you are now thinking that I am way off the mark but please don’t stop reading, give me a chance to explain.

You only need to do a simple search on the web and you will soon realise that the most prevailing opinion on getting a software right is getting the business requirements right. I agree, there is nothing wrong with that. I will though ask a question in return, who is gathering your business requirements? The people in your team together with the people from your business. The answer is people.

Please don’t misinterpret me, technology, methodology and all of the other tools utilised to produced software are very important, nevertheless if the people using those tools or conducting the projects don’t know what they are doing then there is no use in having the latest and the greatest technology to develop your software.

Think about the following scenario. You are in the middle of your project. Your team is trying to develop a piece of functionality that is complex and it appears that it is either not possible or very hard to accomplish. What you need at that point in time is someone with the right attitude, the right experience and knowledge, which will persevere in order to deliver the piece of functionality that you need. You need professionals in your team that will not give up as soon as the first challenge arises or as soon as the going gets tough.

What makes great companies is not their name but instead the people in them. When hiring someone to be part of your team don’t go for the cheapest person or the one that appears to be good enough, consider the attitude that the person has and the value that it can bring to your team.

I believe that the most important aspect of software development is people. If you are responsible for the management of software development teams I encourage you to spend time with your people, understand their needs as individuals and professionals and try to support them as much as you can.