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.
The basic anatomy of a principle is:
- Name - This is the essence of the rule
- Statement - Unambiguously communicate the fundamental rule
- Rationale - The business benefits of adhering to the principle
- Implications - The requirements both for the business and IT for carrying out the principle
The concept of creating principles in this manner has been borrowed from 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, fundamental challenges to existing ones, please raise an issue