Monday, May 09, 2005

Software Engineers are like Soccer Players?

If you ask me to give a job which is the most similar to Software Engineers, I would say Soccer Players.

Short Life
Playing sports as a job is normally short life(although there are exceptions). Typical retirement age of soccer players is around 3x years old. Stamina of people normally start decreasing when they reach 30 years old. For a soccer player, it is difficult for them to play throughout competitive matches with they decreasing physical ability.
Programming is also an engery-consuming task. A simple class often occupies a programmer 1 - 2 days for producing a release. Within this period, programmers are going to work intensively with the classes. Developing a class will make developers exhausted like after taking several successive exams. Older people (>40 years old) often fail to endure such stressful tasks.

Creativity
Have you even seen how C.Ronaldo and Ronaldino play their soccer games? They combine their creativity into their dribbling skills, and these really make them success.
Similarly, programming require developers to create some sort of solution design in terms of data structures, algorithms and system architecture. Creative programmer often think out of the box to provide some new features and improved solutions to old questions.

Speed
With the fabilous dribling skills, soccer players still need to run quickly so that they can really pass through they opponent.
Information Technology is probably one of the fastest changing industrial in the world. In term of speed, developers need to be able to develop in a high speed and catch up with the current technology rapidly and repeatedly. Especially with the new trend of dynamic software process, software engineers have to provide releases in short iterations. We often need to provide a release with few changes within several working days.

Power
Sports are usually linked with the term "Power", as sports are really some sort of physical competition. The term "Powerful" will link me to some strong soccer players like Vieri, Cantona, Rooney, Stam, Batistuta... They are strong and powerful and hence they are able to do that work (shot, dribble, pass and tackle) against their opponents' pressure. This is really important in the modern soccer games since the games is getting more physically competitive. To be successful, you have to work as usual even if under opponents' challenges.
The term "Powerful" also applies to developers. Powerful developers can solve their problems as usual, no matter the level of difficulty of the problems. They may work slower with more difficult problems, but they will not feel very bad when they meet some difficult problems.

Efficiency
The whole modern world talks about "Efficiency", including soccer world and IT world. It is obvious that we prefer a worker to do more successful work rather than fooling around.
Soccer player can be efficient in various way, with various role in the team. While we are watching soccer games, there are often some statistics on particular players showing their efficiency. The goal-to-shot rate is obviously the most important parameter to a striker, while percentage of complete pass and successful tackle are that of a midfielder and defender respectively.
Developers can also be efficient. This can be archieved by practising high quality software development. Known from our experience, the development bottleneck is in Testing and Maintenance. To improve the efficiency of a software process can be easy archieved by cutting the resources for Testing and Maintenance by means of providing better quality releases. High quality system require less resources for Testing and Maintenance. It therefore actually make the whole software process more efficient by cutting a large fraction of resources in Testing and Maintenance (which is reasonable).

Vision
Some top soccer players in the world are not very strong and can't run very fast (e.g. Zidane and Beckham). However, their vision in the matches make them an indispensable member in the teams. Their vision allow them to clearly understand the complete situation of the match, and hence make some good tactical decision. This make them become the master players and commanders within their team. As a result, vision is the key to be a top soccer player.
When the term "Vision" is applied to development, it means the prediction in various areas like system requirement, technology and system limitation. This particular important in designing systems and components. Vision is a essential criteria for software engineer unless you want to be only a code generator.

Blue-Collar
Some weeks ago, I heard that Chelsea's midfielder Makelele said that professional soccer player are blue-collar workers. Well, that's true, and I totally accept that. As a soccer player, you most likely will not do management things. Even if you are the skipper, all the management tasks you have to do are within your small team, instead of the whole soccer club.
Software engineers are also blue-collar workers(At least at the entrance level). Sofwrare engineers typically starts that career in development jobs. At this stage, they would not have to do much management, except management themselves and their product quality.

Teamwork
Soccer requires quality teamwork, as it's a 11-vs-11 sports game. There's no way for you to play it without any teamwork with other players. A team with quality teamwork is obviously better than one without.
"Many hands make light work."

At the same time, software engineering is also a demostration of importance of teamwork. Even though there're lots of heroic programmers in the developers world, teamwork is recognised as invaluable assert for a software engineering team. The performance on good co-operation often out weight the communication overhead (which can be reduce time by time). If you ask me to choose between developing alone and developing as a team, I'll definately give you the answer, "Team!"


I don't whether you enjoy these paragraph or not, but I really enjoy the time when I was thinking for ideas and writing this whole passage. Hope you enjoy. Happy blogging.

No comments: