The model of traditional software development starts with the specification. Then programmers build a piece of software based on these specifications and return the result.
This happens without much interaction during the development process and very often the results do not re ect the expectations which does not only lead to frustration for all parties involved but to increase in development cost and instable software in the long run.
A modern approach to software development has become a de-facto industry standard at leading software companies as well as at startups. While several methodologies like Scrum or Kanban exist, these can be summarized under the umbrella of Agile Software Development.
In agile development new code is written in short cycles. After each cycle a tangible, usable result can be presented and the direction for the next cycle adjusted. Rapid feedback loops are inherent to the system which leads to early detection of problems and hence to better software.
Based on the exibiliy of SCRUM it becomes possible to rapidly respond to new demands and learnings.
This is best outlined in the LEAN approach which states that at the core of building successful companies and projects lies a cycle that can best described as build-measure-learn.
Any assumption must be validated or invalidated by data that can only be obtained by building a rapid prototype of the idea which can be measured.
The faster these experiments can be conducted, the steeper the learning curve and the more likely a success. An example of the enormous speed this can be done at is Amazon.com. Here every 3.8 seconds some change in one of the hundreds of microservices that make up the site is being deployed and allows for extremely vast validation of experiments that often create vast increases in revenue - in one case 3%!
By combining the power, exibility and stability of a microservice based architecture with the outcome orientend management and development approach of SCRUM along with best practices of coding like UNIT-testing and adhering to clean-code-standards, this not only becomes possible, but also has the ability to scale on a technological side as well as on the resource side.