Most of us are working on solving some pretty hard problems, and it usually ends up taking some fairly complex systems to power these solutions. For most teams, there are two very significant challenges to tackle.
First, discovering in detail what the customer solution needs to be. That includes everything from making sure there are enough customers that even need this solution (the demand) and then coming up with a solution that works for our customers and for our business.
Even harder, we need to make sure we come up with a single solution that works for many customers, and not a series of specials. To do this, we need to be able to test out many ideas, and we need to do this quickly and inexpensively.
Second, we need to ensure we deliver a robust and scalable implementation that our customers can depend on for consistently reliable value. Your team needs to be able to release with confidence. While you'll never have 100 percent confidence, you should not have to release and pray.
So, we need to learn fast, yet also release with confidence.
It's understandable that many people might naturally view these two difficult goals as at odds with each other. We are in a big hurry to push something out to learn what works and what doesn't. Yet, we don't want to release something that's not ready for prime time and risk hurting our customers and damaging our brand.
I spend a lot of my time visiting with product teams. I have on occasion been called out for ...