Like doctors, every dev team has a small graveyard of canceled, abandoned, or broken projects. Failures happen for different reasons.
PMI, The Project Management Institute, states that there are 7 main reasons:
- All focus goes to the tech and very little attention gets paid to business goals and KPIs,
- Most teams don’t have a clear definition of “success” which means requirements will creep up and bloat the project,
- An overwhelming amount of projects suffer from poor quality assurance and absence of clear milestones,
- Most teams claim to use some variation of agile methodology but, in reality, it’s either an unrecognizable waterfall or a homebrew of old habits and mishmash,
- Companies don’t like to involve the customer in the process too much preferring to resolve any issues inside the team,
- Key professionals can leave the team during the project which means screwed deadlines and potential project failures,
- Projects start with unknown technologies or undertrained developers and fail because someone, somewhere could not use them correctly or learn fast enough.
So if we try to sum up and categorize all these reasons, they all boil down to people, communications, and processes.
As you’ve already noticed, Processes play a huge role in development. Among the mentioned reasons, there are 3 that relate to Processes and 4 that represent People and Communications.
So this means that 43% of all reasons projects fail are down to bad development processes. That’s an enormous amount. Compared to processes, only 28,5% of failures are attributed to either people or communications.
Think about it. You can have an awesome and talented team that knows how to discuss issues and work together. But if they build a product without a good process, there’s a 43% chance that they will be unable to deliver.
They’ll run over budget. Or lose to the feature creep. Or miss the deadline. Or release a buggy mess. Or do all of these things at once. Not a fun prospect if your money is at stake.
Talking about dev failure studies, The International Project Leadership Academy created their own exhaustive list of 101 challenges based on 500+ interviews with developers, project managers, QA experts, and business analysts. From their perspective, about 20% of all failures involve poor processes.
The Chaos Theory of Software Development
The chaos theory states that any small change in a complex and fragile system can lead to large and often unpredictable changes in the whole system. This is 100% true for software development. You can’t find a more complicated and fragile environment than the open space of a development team.
If something can go wrong, it will go wrong. From practices that kill team productivity to lack of planning to backlog grooming to managing project requirements.
It’s not as simple as sticking a To-Do list on each developer’s monitor and be done with it. A strong development process is the glue that holds the whole project together. It fosters communication between the techies and the business people, the management and the stakeholders, the developers and the end users.
So based on our experience, we’ve come up with top 10 reasons your Magento development project can go wrong.
Top 5 Reasons Magento Development Projects Fail
- Poor code maintainability. You can code lots of things in Magento the fast way – spending 10 minutes to do the quick and dirty job, cutting corners and leaving an absolute mess after yourself. In contrast, you can spend up to 2 weeks implementing the same feature in a code-perfect way.
The mastery here lies in creating the best value for money. The trick is to spend the right amount of time on the feature without overpolishing it. The opposite would be doing a poor job that would lead to a slow store.
In our experience, we’ve never ever encountered a situation where the customer really needed a feature produced in the cheapest way possible. A 10 minute “hack” would slow you down so much you won’t be able to reap the benefits of the saved hours.
Magento offers a lot of flexibility in how you implement stuff but at the same time you need to know it really well to add features in a sustainable manner, creating high quality code that’s easy to read and maintain.
- Complex integrations. Magento is rife with complexity. It is even more apparent with integrations. There are very few large Magento stores in the world that are not integrated in one way or another with at least 5 other systems. We can group all integrations into 7 categories:
- warehouse management systems,
- business intelligence systems,
- ERPs and CRMs,
- statistics engines,
- shipping integrations,
- payment gateways,
- marketing Magento tools.
Often these systems need to work in unison to provide smooth flow of different business processes – from order creation to warehouse management to marketing campaigns.
And in 90% of all cases the customer doesn’t understand how much effort it takes for different systems to work together as one concise product. Different data formats, inputs and outputs, and values need a lot of stripping, filing, and sanding to work as a well-oiled mechanism.
- Poor precision in estimates. Making accurate estimates in Magento is hard. It’s especially challenging when we are talking about larger tasks with lots of uncertainties. Another contributing factor is customer expectations and vision.
More often than not stakeholders have an extremely simplified vision of the end result. Their idea of the business flow or a process is not detailed enough to base a good estimate on. Either the realization requires deep investigation of the subject matter or it will require multiple iterations along the road to adhere to (initially vague) customer expectations.
Moving from traditional development approach to agile could alleviate the burden of precise estimates. It doesn’t mean the issue of accurate estimates magically disappears and suddenly developers know precisely when they will be ready to ship a new feature. Instead, the focus is shifted from the estimated deadline (which is often wrong) to the iteration-based model.
Scrum, extreme programming, and other agile methods work around strict deadlines while leaving customers satisfied about the overall progress.
- Outdated or buggy third-party Magento extensions. Magento works best when it taps into the whole might of third-party extensions, modules, gateways, and integrations available from Magento Marketplace and different community websites. The problems begin when these extensions are not well-supported and transform into a security or performance risk.
This often happens when developers don’t maintain their products in a timely manner. For example, while a new Magento update is released in November, extensions could get updated within 3-6 months after the event or even later.
This happens for a number of reasons: smaller dev teams struggle with updating dozens or even hundreds of extensions in a timely manner, updates get delayed because of testing or priority reasons, and some extensions might even get abandoned.
This adds to the complexity, timeline, and cost of your Magento development process. And when you have no room to maneuver in terms of budget and time, the development ambitions clash with reality.
- Mismanagement of feature and scope creep. What would happen if you say yes to any new idea and instantly include it into your existing project? You’ll miss deadlines, shift milestones, and increase project costs.
Let’s be real. Even if you veto most of these changes, some customer demands still need to be added into the end product. Either because you haven’t thought through an obscure business process logic or forgot to include a vital UI element for increased quality-of-life user experience. In any case, feature and scope creep is a real thing.
Poor management of the scope leads to overspending, overstretched delivery dates, and angry customers. Missing initial deadlines decreases the initial cost/value proposition, messes up carefully laid out plans for product delivery and adoption, and might even completely negate any benefit from the project.
Getting beyond the initial brief leads to losing control over your project: the goals, requirements, and the costs all change too much.
(Dis)honorable mentions. There are dozens of reasons why something can go wrong. We’d like to bring to your attention all of them but the scope of the article is too small (see what we did there?).
Let’s just list them in no particular order:
- lack of attention to KPIs, ROI, and other business metrics,
- fixation on technology to the detriment of business goals,
- breaking something major while fixing a minor issue,
- lack of clear documentation and vision leading to too many iterations,
- lack of progress transparency for the customer,
- lack of effective communication channels and a decision making process,
- zero user and stakeholder involvement in the development process.
The Challenge of Doing Things Right
All these issues contribute in different ways to the success or failure of your project. The deciding factor in whether your endeavor sinks or swims is the right choice of the development team.
An experienced team will know how to formulate project requirements, accentuate key performance indicators and business goals, keep stakeholders engaged in the development process, and establish clear communication channels between every contributor.
After more than 8 years, we are excited to say we know how to do it impeccably. This is a combination of experience, exclusive focus on Magento development, and a good fit of experts inside the team.
Want to learn more about Onilab magic? Send us a message at [email protected] or through the contact form on the right.