August 28, 2018

Agile Product Development: Engineering Practices

someone pointing to somewhere

Every time a discussion is raised on Agile Product Development and more specifically on the software side, people complain about how fast they should be to achieve market goals and, in general, lots of "un"useful upfront planning is taken in for such detail level where most people believe are capable to predict.

Fortunately, due to this market need and strong competition, companies are being forced to go to market earlier, deploy its product and get customer feedback earlier than ever.

Not always because companies have visionaries or strategic leaders but mostly because their competitors are pushing them to do it.

Their competitors look flexible, faster and more engaged with the market need, they claim to be Agile, startup Lean and many other buzzwords: it doesn't matter at this point: fast customer-centric companies are beating the big ones.

By looking carefully at many of these companies, you can see a pattern: Focus at the customer needs, fast deploy and even faster feedback gathering to adjust themselves for the next and sooner deploy.

To achieve it you can say they don't have the bureaucracy and all the overhead the big ones have but don't have to have at all.

You can also complain on the quality area and might be right that many startups just leave quality to be handled in the future and many of them just crashed before achieved any tangible level as they are so close to the market that any quality flaw will have a severe impact to their business.

Many companies that understands thatquality is crucial are experiencing another trap. Engineers are taking so much care of quality and engineering, developing cutting edge software. This process is so complex and time-consuming to handle that postpones business features in a way that market timing just get unreasonable and, again, they fail.

Going into the software (and many engineering) practices we have many options to handle this peculiar scenario that in general we call Emergent Architecture and we should have a way to inspect how we are pragmatically taking advantage of this to focus less on the technical side, more on the business accrual and, at the same time, provide high quality deliverable that will impact positively the customer feedback to enhance the chances to move the product to next cycle.

What motivated myself to write something that sounds so obvious, was at first a Déjà vu:that I'm in the market for 30 years

And even though Agile, Scrum, Emergent Architecture are relatively new, the idea to understand customer needs and quickly provide them with what they need to survive are far from new.

Reusing things that can give them something on what they need, faster and then enhancing it incrementally has always been a good starting point no matters how new approaches might be powerful and useful.

Secondly, at software development, we never experienced a better "momentum" on having pieces of LEGO that are read to be integrated as REST, Type Script, Angular, Ember, Redis and many other latency friendly technology and components are in in place a ready to shape what customer needs.

At the same time all this loosely coupled components create the proper conditions to security issues, performance flaws and defects due to bad integration.

IT market is trying to solve this for years with Workflow, BPM and many other tools that are so hard to implement that at the end, in general, creates a problem that is bigger than the one you originally was trying to address.

When tried to search over the web for something practical that supports my thoughts, I found the bellow video of a tool that fits perfectly and just realized things are getting better and you can do security, scale management, getting data that support the SaaS-like billing and many other out-of-the-box features that will keep you closer to the business development while maintaining quality level you need.

Take a look at https://www.youtube.com/watch?v=BcpzXwezudI

Cheers,

Alexandre Mac Fadden