A Difficult Software Developer so obsessed with achieving architectural elegance and code perfection that they forget their job is to add business value.
- Can mutate into: “The Extreme Underestimator” or “The Diva” Difficult Developer
- Dangerous when coupled with: “The Technology Enamored” Difficult Developer
- Often confused with: “The Sage” Highly Effective Developer
- Likelihood of fixing: None
- Danger to project: Extremely High
Being a professional software engineer requires a constant balance of two competing forces:
- The desire to add business value (and get paid).
- The desire to write great software (and be proud).
The Idealist has completely ignored the goal of adding business value, and is instead exclusively focused on writing great software.
The Idealist Developer is normally highly intelligent, experienced, and professional. They do – in fact – know what they are talking about. They do actually know how to write great software, and if given enough time, they can create the perfect system. Their downfall is that they believe they have all the time in the world and are completely unconstrained, when this could not be farther from the truth.
Rather than making smart compromises based on business objectives and constraints, they instead focus on building a perfect system that they believe is best for the business. Do not mistake them with academics out to design something that they think would be “neat” or “cool”: they genuinely believe that the system they are building is best for the company’s future. It is the steadfastness of this belief that makes them so hard to fix.
They are particularly dangerous to a project because they normally hold sway over other key developers, as they are a developer’s developer: they represent ideal that developers strive for, and so easily gather other developers to their cause, as all developers want to be proud of the software that they write. In this way, they take the entire software development team hostage, and you are at their mercy. If you are lucky, they may begin to provide business value, but it will only be incidental to the goal of crafting great software. Essentially, you will only get business value when they are done, and they cannot tell you when they will be done, or how much business value you will truly receive. In truth, they are not concerned with being done at all, as it is the process itself – rather than the goal – that is fulfilling to them.
To recap on the characteristics of an Idealist developer:
- Highly intelligent, experienced, and professional.
- Genuinely believe that the system they are building is best for the company’s future.
In many ways, this is a very good employee, and if you look at the most innovative companies on earth, they will tend to have many Idealists on staff in their research and development departments. However, the best companies on earth tend to have three things most companies do not:
- A management staff just as competent as The Idealist, offering checks and balances against their technical decisions.
- An expectation that a certain number of projects will fail, which is just a cost of doing business.
- A large budget to continue to fund projects that are unprofitable.
If your company has these three things, leave The Idealist alone to do their work. However, if you – like most companies – do not have these luxurious accommodations, you have a real problem on your hands, as almost everything you do will result in disaster:
- If you outright fire them, the developers who were loyal to their vision may quickly follow them out the door.
- If you lay down the law, you may cause them to mentally disengage from the project leaving you without any technical leadership.
- If you leave them alone, your stakeholders will eventually get fed up with the lack of tangible progress.
To get The Idealist to change their behavior, you have to find someone who can convince them to change it. This person will need to demonstrate to The Idealist that they, too, know how to build a great system. This is important, as someone without technical credibility will simply be disregarded as not being capable of understand the genius of The Idealist’s design.
If someone with this credibility can be located, they will then need to slowly and methodically coach the idealist out of their idealistic way of thinking. This requires that a highly intelligent, experienced professional is willing to be coached out of doing what they know to be right. There is little chance of that, and therefore little chance of fixing The Idealist.