Horizontal Developer
Joshua HawxwellI emailed the title to myself Friday night with the intention of fleshing it out into a think-piece. Googling the term returned nothing, so I’m claiming this as the canonical definition.
It is best to contrast with the idea of the Full Stack Developer, which when Googled gives me the following from Laurence Gellert:
To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology.
Layers in this case range from the hosting through to logic through to user experience and finally customer/business need. So familiarity with the technology used throughout the systems you use/write and why these are valuable.
The Horizontal Developer on the other hand is familiar with the range of processes required in the business. Their “stack” consists of being able to:
- Propose a range of solutions to business/customer problems, including pros and cons for each approach.
- Plan out work required in a sustainable way.
- Write the software (though they aren’t necessarily full stack, if so “square developer”? Or is that just too many words…)
- Test software at all levels, from high level acceptance tests to unit tests, to manual tests, finding edge cases, bugs. They are the tester, QA team, etc.
- Communicate with stakeholders.
- Push forward the processes used by the business and advocate better ways of working.
I have two questions:
Could a company theoretically replace the whole set of [Product Owner, Product Manager, Team Lead, Technical Lead, Developer, …] roles with just Horizontal Developers.
Is this just “being agile”, or is it more?