Wednesday, June 27, 2007

It's about the people

Lately I have been reading some blog posts about how people are a big influence in the success rate of a software project and I thought I should throw my 2 cents on the matter.

Damn right that people are a big influence on software projects, as a matter of fact they are the most important variable that should be considered when putting together a team for a project and it seems that many times this is not well enough thought of.

So, how do you get the right people for the right job in software development? I am no recruiter, nor do I have experience in interviewing and hiring people, but I do have an interest in working with a certain kind of people in order to do my job right and in order to reach the goals of a project. That is why I am just going to describe the kind of people I like to work with, by listing a set of qualities they should meet.

Most important quality a software developer should have is passion about his/her work. I think it's needles to say that if you don't like what you do, then you should seek to build a career in something else that might better suit you and in which you can work with passion and pleasure.

Another must for a software developer is enthusiasm and the will to learn and improve. In a domain like this if you have no desire to learn new things all the time and you feel contempt with your current level, you're a dead man.

Intelligence is also a very important quality for a software developer. Without it there's no place for innovation and creativity. Without innovation and creativity, there's only mediocrity.

Besides the qualities the developers should have, there are also some negative traits I wouldn't appreciate at all in a team mate. First of them is vanity or excessive pride. Nobody likes a jackass that brags about himself all day long and considers everybody else below him and there's nothing worse than having such people in a team, regardless how good they are.

Another breed of people I don't like having near are the ass kissers. These people will go to any length to please their bosses in order to be promoted or to get a raise that they can even jeopardize a team's unity by taking care of their interests before the interests of the team. Also, if you are in a lead position and you are surrounded by this kind of people, you will have a distorted vision of the reality because their interest would be to please you and they will tell you what you like to hear instead of the truth.

As a conclusion, the kind of people I like to work with should be smart, passionate, enthusiastic, without fake modesty and honest. My mother used to tell me "surround yourself with friends that can teach you good things". I think that is the best kind of advice a parent could give and I seek to follow it as much as possible. Now that we have a simple profile of a developer, another problem is to attract them and keep them together, but that is a good subject for another post...

Thursday, June 07, 2007

First Things I Would do as Microsoft's CEO

If you haven't figured this out from the title yet, this one is going to be a rant about Microsoft again :). I know the internet's full of them and it's quite an worn out subject to rant about them but I decided to do this one more time, then I am not going to even bother about them least until they do something incredibly stupid or outrageous, so I can pick on them again :)).

So, without any further due, let's delve directly into the subject of this article, namely what I would do if by any chance I would become Microsoft's CEO, even for a day.
  1. I would immediately open source all Windows versions, providing a nice subscription system on which all types of users could enter if they wish and which would guarantee them technical support for their Windows system according to their type of subscription (e.g. home edition subscription would be cheaper and would address the common users, enterprise edition subscription would be expensive and would address the enterprises). This move would certainly close the mouths of many free software advocates, including myself. Now we would have the choice to change Windows if we don't like it or shut up and pay for support :).
  2. .NET would also be completely open, well maybe except Visual Studio, which will have a commercial version.
  3. I would change the policy on supporting the Mono project and I would invest some time and money to develop it and make sure it integrates and is compatible with the .NET platform. This would make my development environment ubiquitous.
  4. I would renounce on using DRM on the media distributed on the Zune and I would open Microsoft's multimedia codecs to make them easily accessible to whoever wants to use them, even on Linux.
  5. I would try to make all my software portable so it can be used on all major operating systems.
In short, I would try to have an open perspective on things, it would probably suit me better to collaborate with the industry and help those that need my help, thus better consolidating my position on the market by being present everywhere and seizing more opportunities.

What do you think? Could such attitude work for them or is it a recipe for disaster? I would be very curious on your opinions.

Playing for Change