Nicolas Frankel is an IT consultant with 10 years experience in Java / JEE environments. He likes his job so much he writes technical articles on his blog and reviews technical books in his spare time. He also tries to find other geeks like him in universities, as a part-time lecturer. Nicolas is a DZone MVB and is not an employee of DZone and has posted 228 posts at DZone. You can read more from them at their website. View Full User Profile

Top 3 Sources of Project Failure: The Problem is not Tool X vs. Tool Y

10.14.2012
| 4287 views |
  • submit to reddit

Let’s face it, I’m a technologist: I will gladly debate with you for hours on the merits of Java vs Scala, SQL vs NoSQL, Google vs Apple or what have you.

But in fact, none of this matters. Statistics show that more than half of software projects are failures; I’ve been doing software projects in various positions for more than 10 years and root cause for failures was never the technology.

In my carreer, I’ve identifed these top 3 sources for project failures (in no particular order):

Lack of decision

As an architect, I try to provide for different solutions that more or less meet the requirements, each one with its associated cost and risks. What I expect in return is a clear decision from management in regard to those alternatives. When higher-ups eschew their decision-making responsibility, projects lack vision and are doomed to fail sooner or later, but probably sooner.

No expressed business needs

Legacy waterfall methodologies require a formalized specification document, while more modern agile methodologies insist on having the product owner available on site. In both cases, however, the goal is for IT to know what to develop. A requirement of a successful project is for the business users to be able to work on their needs: express them, define them, refine them. Sure signs of future failure are talks like “we don’t have time to write it down” or “it’s evident”. While the former is understandable – the business also has a business to run, so to speak – both show a lack of commitment that where the only logical conclusion will be rejection by the end-users.

Retro-planification

Projects have to be realistic. More precisely, people should be asked in how much time they expect to finish a task and the project planning has to be based on that. When it’s the other way around, you’d better prepare for lack of success. Meeting deadlines is not easy when planning is realistic: sometimes, it’s as if everything on Earth conspires to slow you down. But with unrealistic deadlines from the start, there are only so few tasks that can be run in parallel, so pressure will begin to rise to attain unreachable goals, motivation will decrease and at some point, the PM will have to provide for plan B: a realistic planning.

So, instead of trying to search for better technologies, we should sometimes focus on those subjects and try to remove those obstacles from our projects, even if they don’t belong to our sphere of interest. To be frank, as an engineer, I was not prepared to tackle those challenges: they are completely unrelated to technologies but only once they are eliminated can we again focus on our core business, building better applications.

Published at DZone with permission of Nicolas Frankel, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)