The difficult part is to build software covering right functional scope, not too complex technically, and still built on solid technical foundation. The balance has to be just right.
The thing is, that, when non-technical people implement ideas in software, they tend to aim at big functional scope. Therefore, the technical staff, working on the implementation is short on time and purely focused on the delivery of backlog items. As a result the software is a collection of “nice to have’s” full of technical shortcuts.
When technical teams build solutions, they are less interested in the functionality and oftentimes tend to over engineer the technical side. Technical minds run the risk of delivering cool software nobody needs.
Our solution is to build software in steps, measure rigorously the outcome and to base next iteration on it.