You are reading this article because you'd like guidance on integrating your client's business processes and backend systems with their eCommerce platform. For specialized eCommerce integration consulting, you can get the details on my homepage.
Any marketing agency that has been around long enough has had projects that were supposed to take weeks end up taking months, and going deep into the red before they were handed-off.
You've learned and grown, and you're wondering how much to budget for an eCommerce integration and implementation and how long it'll take to get up and running.
The right answer is: no one knows.
Sure, pulling the technical pieces together for a quick and dirty test run isn't too complicated.
But getting a maintainable system in place for real-world usage by your clients and their customers for the long term isn't simple.
Before wasting resources, you can learn from well-tested principles in the software engineering world, to ensure your eCommerce integration comes in within budget.
A lot of Silicon Valley buzzwords in that solution. Let's break this down to understand it.
In the mid 1990's, Microsoft had arguably one of the best software engineering teams in the world. Windows 95 had been a smashing success, and Bill Gates was on stage to demonstrate the brand new, more stable and better engineered Windows 98 release.
Then this happened:
How does the world's premiere software company (at the time) experience a public failure on a system they tested for months before? Crashing and burning during a presentation they went over again and again?
Boxer Mike Tyson came up with the most concise answer:
Put another way, huge software projects come with a huge statistical likelihood of elements breaking when they experience real world conditions.
That's why software engineers have learned how to mitigate the damage. Let's apply the same principles to your eCommerce integration.
Modular architecture means your eCommerce integration project isn't one big thing: it's several small things, all of which talk to one another.
A more concrete example:
If you're a marketing agency owner, modularization probably seems obvious to you. But in practice, for software projects, you have to ruthlessly insist on it to your programmers from the get-go (and remind them that this is a priority).
That makes your eCommerce integration less "brittle". When you go back 6 months later to fix some business logic somewhere, the whole system doesn't come crashing down in a cascade failure, because everything was hanging off of everything else.
But that's not enough on its own. Let's look at another key approach:
Any agency owner this lesson well, but don't forget to apply it to your software team, no matter how little time you have before deliverables are due.
Phased roll-out means you don't let your programmers go off to code in a cave for 3 months, then come back to you to unveil their masterpiece.
Instead, every time they complete a little piece of the puzzle, you roll out to real users in your company (and friendly customers), who help you test and find bugs, and request features.
You'll notice that there's a leap there from version 0.1/0.5 to incremental updates in 0.9/1.0/1.1.
This is because your programmers will accomplish 90% of the project during the first 10% of your schedule. That's would be great news, but...
Finishing that final 10% to get your eCommerce integration to a usable state, and making it stable is what takes 90% of the time and 90% of the effort. Be aware of that going in.
Counterintuitively, in software projects adding "just one more thing" creates knock-on effects throughout any system.
It's a truism that any good software engineer keeps the number of moving pieces down to a minimum. Fine, you know this.Some programming architecture history
The 'waterfall model' of software development was the go-to in the 1970s/80's. But large companies like IBM and Oracle learned that building big software solutions opens you up to "complexity creep".
That's the phenomenon that adding or changing any one element puts an (unexpected) strain on the entire system, since every single element depends on every other one.
Jason Fried, the creator of Basecamp, famously has this to say about planning software and adding features:
Every additional thing now interacts with all the other things…. Let’s say you have ten things, now you add an eleventh. It’s not “one more thing.” It’s one thing that interacts with ten other things.
This tells you something important: you must ruthlessly keep the feature set down to a minimum. Don't believe your software team when they say, "that'll be easy to add" or "we can get that added in one afternoon".
No human being on Earth is good at estimating how long complex software takes to build. Especially not programmers.
Ensure you only plan to build the features you fundamentally require to serve your customers. Only these and not a single one more.
This is a mantra of Silicon Valley. Plan to release versions of your software for real world testing as often as humanly possible.
Listen to Reid Hoffman, the founder of LinkedIn:
In other words, get your version 0.1 out the door as quickly as possible. Get feedback. Fix bugs, make upgrades and get the next version out the door as quickly as possible. Ship early, ship often.
If you're a marketing agency owner getting ready for a large eCommerce integration software project, stop and ask some important questions:
In summary, any software integration project is a challenge even for experts, and if you're coming from an agency where the core comptency is about people and communication, not technology, then doubly so.
The better armed you are with lessons that software engineers have learned from countless projects, the better chance that yours will remain on budget and on schedule.