7 Deadly Sins For A Software Project?
2025 has been my most interesting year, completing 4 projects that are finished and require ongoing maintenance, another project that has been ongoing since March, and about 6 other experimental projects. Throughout these projects, here are some of my findings.
Though I have been involved in software development for some time now, the number of projects I completed each year was not large; I aimed to focus on a few projects and do them well. However, this was directly linked to how many clients I had, so having more clients meant working on multiple projects. The 2023-2024 seasons, however, were particularly slow due to personal and professional circumstances. That's why, in 2025, with more stable work, I was able to take on many projects of varying sizes, gaining significantly more experience than in the past few years.
And in this article, I'll be summarizing the 10 problems I've seen that could destroy a project that we avoided and that cause the cancellation of other projects.
1. Pride
This is the sin of arrogance, where assumptions are valued more than evidence. It convinces teams or leaders that they know what's right, causing them to ignore critical feedback from users, data, or colleagues.
This manifests in two parts of the project, where it can be either (or both) the management or the development team's pride to think they know better than the user does. And what happens is that the software is a great product, but it focuses on the wrong problem.
A- The Management Side
This is the "Ivory Tower" sin, where leadership or product owners believe they know what the user needs better than the users themselves. They ignore user research, dismiss negative feedback, and push features based on internal assumptions or a "vision" that isn't validated.
Examples:
- Adding AI when the project is still a buggy draft at best.
- Dismissing user feedback for personal beliefs about the project.
- Seeing refactoring as 0-value work.
B- The Development Team
This is the belief that technical purity or intellectual challenge is more important than the business goal. This happens a lot as developers don't interact much with the users, and in the development process, they create software that fits them instead of the final clients.
Examples:
- Creating a new component instead of using a well-established component set.
- Over-engineering or designing a complex solution for a simple problem just to show technical superiority over other companies, or even other team members.
2. Greed
This is the sin of demanding monumental results without providing the necessary investment. This sets up projects for failure by "starving" (see what I did there) it of necessary resources such as more team members, budget, or the tools.
This is one of the most destructive (If the project is started to begin with) and mainly because they are caused by higher-ups in the companies, so the effects trickle down and are felt instantly.
Examples:
- Firing a whole team and hiring a "Vibe-Coder" to replace them
- Expecting a smaller team to deliver in 6 months what a larger team couldn't deliver in multiple years.
3. Lust
This is the uncontrolled desire for more—more features, more changes, more "little tweaks" that aren't little. It’s the seduction of the "next cool idea" that derails the project from its original, agreed-upon goal, leading to a bloated, unfocused, and endlessly delayed product.
Mostly caused by the wanting for more, in a sense, it's a greed, but on the technical/system level, where they only want the next big feature, they get it, and then still want the next one. One after another, the software will be a bloated mess of unrelated cool and "seductive" features that don't even get used.
Examples:
- Adding a feature to solve a single user's issue without considering the effect on other users' experience.
- The lust for AI integration.
4. Sloth
This is the sin of avoiding the necessary, difficult, or "boring" work required for a healthy project. It’s the "we'll fix it later" or "that's good enough" attitude that prioritizes short-term ease over long-term stability and quality.
A lack of vision, an unresponsive manager, developers who cut corners, a company culture that doesn't value quality, lack of accountability for both the management and the developers.
Examples:
- The manager starts Vibe-Coding in the main branch instead of asking the developers to work on it.
- Skipping Tests and releasing buggy features.
- The "Todo Later" mentality, or the lack of documentation when coding
5. Gluttony
This sin is the act of rapidly consuming development resources to churn out new features at all costs, while creating a "mess" of unmaintainable code under the hood. Like gluttony, it feels good at first (look at all this "progress"!) but leads to a bloated, sick, and immobile project.
This is mostly a management-level thing where they prioritize new features instead of polishing, improving, or refactoring. Different from Lust and Sloth in the way that the new features are systematically prioritized while disregarding other "non-feature" work.
Examples:
- No Refactoring time given to the developers.
- Thinking tests are unnecessary
6. Wrath
This sin is the friction, anger, and resentment that festers from a toxic communication environment. It’s the ambiguity, blame-throwing, and information silos that turn collaboration into conflict.
This will slow projects, and it's the most destructive aspect. Instead of collaboration between teams, they start to compete, and not in a good-mannered fashion, but in a way where they actively sabotage each other.
Examples:
- Managers who foster a "blame culture", or who don't like you because of your background, or because you are more knowledgeable than they are.
- No communication between teams, but they still blame each other for their own failures.
7. Envy
This is the sin of looking at what others have—a competitor's new feature, another department's "cool" project—and desiring it, causing you to abandon your own path. It’s the lack of strategic focus that manifests as constant, reactive changes in direction, ensuring the team is always starting but never finishing.
This is most definitely the second most destructive aspect, as it relates strongly to wrath, in the sense that envy causes wrath in most of the projects I've seen. From Leadership that reacts to market trends instead of following a strategy, to internal politics where executives vie for resources, and a lack of a strong, long-term product vision.
Examples:
- Firing a team to bring your own team, where you take a percentage of their revenue instead of keeping the previous team that was giving good results.
- Mostly internal politics things
Conclusion
In this article, we've seen the 7 deadly sins in a software project; there are way more sins that can destroy a project, but I decided to categorize them in this way to make it a bit more interesting.
But avoiding all of these is very difficult, but if there is a lot of coherence between the team members, the management, and the users, the project only has one way, and that's to succeed.
Note: This will be the start of me blogging (I hope). I'll try to at least post once or twice per week, and give useful information; this will also be accompanied by videos on my YouTube channel, where I will talk more freely than in an article.
I'm trying to keep these articles as professional as possible, that's why you'll find more discussion in the videos, also I'll include the videos for each sin after I upload (if I remember).