Vertical and horizontal software development are two different approaches to organizing and structuring software development. This depends on the client and organization requirements and business and architecture choices.
Vertical Software Development
From Business Perspective
Coding software vertically means – getting things in production as fast as it can – even if the product is not 100% complete and functional. The goal here is the engineers to complete a Minimal Viable Product one of the steps of a startup. The end user should have something working that he could experiment with and probably – suggest – some direction to the feature that he/she requires. This is again a good startup step.
Software Developer Perspective
From Engineer perspective – this means a lot more than it is seen for, especially if the continuos development will step on the work done so far.
- Some clarity by the business analyzers – on the functional requirements. Without clear requirements – the software will be endlessly changed – getting into frustraction all the participants – coders, testers, managers, clients, users.
- Coders than offer first development environment that will be sufficiant and will execute the logic
- In a perfect world there should be also a test environment – tested independentily from the developer
- Two one or two more setups are needed – where – ideally – even the developer does not have access to – but a person with Non Discloser Agreement signed. There – the code of the developer is deployed independently by a DevOps expert.
For start-ups some of the above role separations may be executed by single person. But, the required work – mostl likely will not be devided. After the initial setup – thanks to Git hooks – a code change should be moved to production with minimal effort.
Horizontal Software Development
Horizontal development means – getting s package of features done – before delivering it to production. This approach is more meaningful for well-financed projects and products. They generally are build by bigger teams and the quality is greater – thanks to the additional eyes looking at every step of the product develolment and to the time for work.
Image Source https://pixabay.com/vectors/algebra-axis-blue-calculus-column-155879/