AppEng Team Charter
Purpose
We are here to apply our skills and knowledge of software systems development to the problems our Clients bring to us. Our aim is to work with them to develop better systems than they might otherwise build.
Principles
- Technology is not the goal, it is the tool. It is a powerful tool we use to improve the lives of others (and ourselves). Software is only as valuable as the people it helps.
- A corollary of this - we may have preferences for one technology stack over another, but that is highly contextual. Not everything is a nail.
- People should not have to spend time and energy on things computers can do better. This applies as much to how we work as it does to what we deliver.
- It is almost always quicker, cheaper and more effective to build something that works and iterates on it than it is to attempt to foresee/anticipate all eventualities. A plan is only as good as the next increment/experiments it leads you to.
- Learn from the past - don’t spend time and energy making the same mistakes over and over again. If something works, learn from it. Better yet, automate it.
Practice
- Writing code is a small part of delivering a user experience. When doing it, think about the other parts, such as how it will be delivered, used, maintained and kept safe.
- The code we deliver is only as good as the design it embodies, the user experiences it supports and how available it is. Without the other practices we are just moving characters around a screen.
- Let the computer do the work
- Make space for a diversity of voices. If someone disagrees with you there is a fair chance that you are wrong.
- We are only as good as the software engineers we bring into the business.
- Our Opinions are informed by our experience. When something works for us we will continue to do it until experience tells us otherwise. If our client disagrees with them, there is a non-zero probability that we misunderstood the Client’s problem; their experiences may be different than ours.
- An experiment has an hypothesis, a control and a measurable outcome. Experiments are a great way to learn. Changing things or using new tools do not, by themselves constitute experiments. If done without intention this kind of change just becomes churn.