John Lewis IT Software Engineering Principles
Through our combined experience of building and releasing software we have discovered and come to value the following principles. These principles are not hard and fast rules but rather some things that we apply and use to guide us on a daily basis. These principles could also be used in a "discovery phase" when selecting a new product to purchase.
We created these principles to:
- Guide our existing engineers and help them to make decisions aligned with our thinking
- Introduce new engineers to how we do things, enabling them to make decisions aligned with our thinking
- Share with colleagues beyond our Technical Profession, to help them see why we make the decisions that we do
Many of our Engineering Principles are inspired by the research and recommendations found in the book Accelerate – The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations.
We have borrowed the style of principle used by TOGAF's Architectural Principles.
A PDF version is available.
Invitation to contribute
If you're involved in the software engineering process at John Lewis, then we want your input! The principles are maintained in a GitLab project tech-council/engineering-principles.
For correction of typos, fixing broken links, or anything similarly unlikely to raise any debate, please fork the project, make the change and raise a merge request.
For more significant adjustments to an existing principle, do the same, but perhaps anticipate some discussion on the merge request.
For suggestions of new principles, or fundamental challenges to existing ones, please start a conversation in #comm-victoria-engineering-group