- I create software for users, not for managers;
- I embrace that we are stronger as a cross-functional team, working towards a shared goal;
- I will share my knowledge and expertise with other developers and help them grow, much like other developers helped me grow;
- I will treat the people in my team as I would like to be treated by them;
- I will guide others to embrace and adhere to these principles;
- I will not presume to be able to provide detailed estimates or plans when I know that significant complexity is involved (e.g. more is unknown than known). The detail of my estimates and plans will decrease as complexity and/or timespan increases;
- I embrace that software development is a complex endeavor, requiring frequent and intense communication with my team and stakeholders to clarify both the problem and the solution;
- I accept (and will help others accept) that mistakes are inevitable. Instead of trying to avoid mistakes altogether, I will seek to limit their impact and learn from them to avoid similar mistakes in the future;
- I will help make the work for a product transparent so that we can make informed decisions about what still needs to be done and in what order;
- I will help prioritize work for a product based on the value it has for the business, not on (my) personal preferences, likes or dislikes;
- I will ask for help when I’m stuck and motivate others to do the same;
- I will help shorten the feedback cycle for our product wherever I can so that we can learn faster. This includes continuously seeking out ways to release more often (e.g. DevOps, automated testing, continuous delivery) and breaking down large features into smaller features that can be released sooner;
- I will not write code that I know is going to hurt the business in the long term unless there are strong business reasons to do so;
- I will help make technical debt transparent in whatever ways possible so that informed decisions can be made on paying back technical debt as soon as possible;
- I will always help to find a balance between the need for urgency and the need for quality, but never in a way that damages the product, the users or the reputation of the company I work for;
- I will not write code with intentional backdoors or intentionally weaken security to monitor or control what users can do. Whatever their purpose, backdoors and compromises to security will inevitably be exploited by hostile parties;
- I will not write code that I know is insecure and easy to exploit;
- I will not write code that harms the privacy of users of my product in ways that are not clear to them;
- I will continue to educate myself in how to build secure products that respect the privacy of their users;