One of my client groups recently had a meeting in which they briefly discussed what it means to be excellent in software development. The client is an IT arm of a company whose staple is not software product or services.
It was interesting because this group's definition of 'excellence' did not include a few key points. I feel bad for these key points being overlooked. It's probably because my business is software development whereas software is a means to a different end for this group.
Here under are some attributes that would constitute 'excellence' in my opinion. In a software company or a software support arm of a non-IT business, I would strive to achieve an environment of:
- Transparency - This could be anything from who's busy doing what to how the past efforts have been impacted the business. It never hurts to update your team on why certain decisions have been made. Transparency is the foundation of excellence.
- Problem Solving - Often we find people say that they are problem solvers or that their's is a group of people that solves problems. I am not surprised anymore when on further investigation it turns out that most of them are patching problems up. Solving a problem is a bigger initiative. It, usually, requires bold steps and long-term vision without a greed for short term results.
- Innovation - Continuing to solve problem the way you have been for the last 5 years, if at all, may not the best return. How have you, your team, your systems, and your processes become better and more efficient?
- Entrepreneurship - Innovation and problem solving often remain in silos. Is there drive, energy, and enthusiasm in your innovators and problem solvers to take on the challenge to weed out inefficiencies from the system? Entrepreneurship usually is a response to an incentive of some kind; tangible or intangible. Create a few to foster it, if you haven't already inherited some.
- Solution Focus - Enthusiastic technologists, specially in IT, are very eager to try new products, services, languages, and platforms and want to build their skills in them. Sometimes this is the reason why we find hundreds of applications written in 10 different languages with 4 different database systems. This also happens to be a reason why we also find features in these applications that took months to build but are rarely used by very few in the user community. That happened because it was a cool thing to build. Gist is that, after all, it is not about software. In the end, it's still about a solution to a business problem. It's a tough job to balance the big picture with the innovation.
- Investment in Knowledge Sharing - One of the big reasons that high-end IT consulting is such a big industry is because consultants seem to know the latest and the greatest. On a few occasions I have been surprised how much one of the client associates already knew about a certain topic. It was even more surprising to know that in some of those cases the managers knew that a certain employee is very knowledgeable but did nothing about it. Instead, they waited for the consultants to show up and charge high dollars for it. Give your people room, time, and incentive to share what they know with the rest of the community.
- Discipline in Action - Innovation, Solution Focus, etc. become the culture only if there's discipline around it. Do it every time and at every given opportunity. Very few people realize how demoralizing and demotivating it is to find out that there's really no rigor around in the culture.
What would you add or take away from the list?Picture taken from: http://www.gapingvoid.com/excellence224.jpg