There are many reasons why software projects fail. In this post I will cover one of the main reasons I think outsource product development fails to deliver the right product at the right time. The reason is that customers outsource product management as well. They think their job is done after sharing the wireframes. These wireframes are typically created by a third party design agency. Customer product team usually works closely with the design agency. They will usually call this an MVP. The only thing they get from the whole MVP concept is that it needs to be delivered faster to the end customer. They completely ignore the minimal part. I usually see MVPs with more than 500 screens. These do not include failure states. I know screens are not the right measure of the application complexity but during the proposal phase this is the max you will get.
Tools like Figma have made it easy to create wireframes. The journeys in these wireframes are inspired by journeys in competing products. Customer product team wants to take all the best ideas from all the competing products and build a unique application. They don’t shy away from adding their own requirements as well. The app has to be configurable, performant, scaleable, modern, accessible, offline-ready, vernacular, and obviously cloud-ready.
In the quest to build the best app they completely forget the core systems that will power such an experience. These core systems are running on-premise, lack modern API, don’t scale, are costly, and definitely not performant. You can’t render the newly conceived home screen in a reasonable time and scale by calling the core system APIs.
More often than not customer product teams and their IT team counterparts are not aligned. Customer IT team knows the reality but no one listens to them. Business and product team wants the new shiny app. And, they are right. If you don’t innovate you will not survive.
I am with customer business and product teams to innovate and challenge their IT and current systems. Modern architectures and technologies enable us to do that. But, creating an innovative product requires a mindset and culture change. This requires create an architecture runway on which product can be launched. Building a great product is not as simple as drawing wireframes using a tool.
Turning wireframes into a working software is not an easy task. Product management is not about writing user stories by looking at the wireframes. Anyone can do the image to text conversion. To me Product management involves:
- Doing continuous discovery to figure out the minimal product that will achieve product/market fit
- Writing clear and detailed requirements. A vendor can do the base work but product management has to review and own the stories
- Identifying dependencies. These dependencies could be existing APIs or a dependency on a technical task that need to be done before developing a feature
- Ensuring those dependencies are provided to the development team at the right time and in the right format
- Having an understanding and a plan to build a product in an iterative manner
- Being realistic on whether your new journeys could be built using what you have. If the new experience can’t be built then having an open mind to change/simplify the journey or giving the engineering team time to build the required architecture runway
- Prioritizing functionalities
- Manage their senior business stakeholders. This involves explaining why they need to invest on platforms and other foundational elements. You can build features only when base foundation is ready.
- And, finally understanding that innovation and strict timelines don’t go well together
I know none of the above is rocket science. Most product managers in product engineering organisations work in this model with their teams. Somehow when organizations outsource they tend to not do it.