Photo by Austin Distel on Unsplash

Why is it so hard to build software products?

Mohamed Fakihi

--

The software product development cycle, as it is the case for any other type of product, revolves around two main processes: Product design and production.

Product design and production are two interlaced and interdependent flows that must go hand in hand but are, by their nature, completely different and very often have contradictory constraints. Therefore forcing the larger development team, which includes business and technical professionals, to pull in opposite directions. The balance to be found between those two flows can partly be resolved by adopting a lean approach to development and the implementation of agile practices in production. However, in order to succeed in finding that balance, it also needs a mindset shift towards a business-driven software implementation and more empowerment of the production teams.

Agile is a methodology that needs to be applied through a process. The large majority of software companies who have implemented an agile delivery process are using scrum. Scrum is an iterative and incremental agile software development method for managing software projects and product or application development. It is there to help the larger team (Product development + Business Analysis + Software Development + Quality Assurance) find their pace.

The scrum process revolves around 4 major events:

  • Strategy planning
  • Release planning
  • Iteration planning
  • Iteration review

Skipping any of these will generally lead to either a false sense of “freedom” at the expense of less visibility on the big picture and long term strategy or to a false sense of “predictability” and “control” at the expense of teams’ commitment and delivery.

Now that we have that process, all should work fine and everybody should start delivering amazing features, the company will make billions and we will soon be on the “Times” magazine cover page.

Unfortunately, processes don’t get the work done. People do. Therefore, many companies implement agile processes with little to no positive results. Sometimes, the situation gets even worse after the adoption of an agile process. But the fact is that we can’t blame the process because again, processes don’t get the work done.

Once a company chooses to do agile, it should also prepare a strategy to be agile. Being agile means a global and company-wide change to the way people perceive their role. Both business and technical team members should move to a more collaborative work culture and an iterative approach to product delivery. This doesn’t come without a clear guidance, a total commitment of the management team and real transparency. Experience has proven that the iterative approach is harder to adopt by the business while the collaborative culture is harder to adopt by the production.

The product management team needs to come closer to the implementation team and the latter should do the same towards the product management team. The ultimate goal being that both feel that they are parts of one and the same team. We cannot realistically expect people to be fully interchangeable in companies of a certain size, but that goal can still be easily achieved if there is a common understanding and good will from all sides to meet in the middle.

--

--

Mohamed Fakihi
Mohamed Fakihi

Written by Mohamed Fakihi

Entrepreneur, investor, and social activist turning ideas into business value with innovative technology and business strategy.

No responses yet