DEV Community

Cover image for Guiding principles for a new engineering team

Guiding principles for a new engineering team

hugh_jeremy profile image Hugh Jeremy ・2 min read

What principles should guide engineering decisions? At Procuret we are starting to scale up. It's time for us to grow our engineering team. I want to ensure that we can do so while retaining a principled engineering culture.

To that end, I've drafted up the following principles.

1. User data are sacrosanct

Anyone that interacts with our software provides us with data. These data might be deeply and obviously personal, like identity documents. They might be less obvious personal, like browser data, approximate location, or usage patterns.

All of these data are sacrosanct. Protecting these data from inappropriate access, by parties internal or external, with intentions malcious or careless, are our primary concern at all times.

2. There is no such thing as "User error"

There's an old joke that some errors have the code PEBKAC: Problem Exists Between Keyboard and Chair. While funny, if used in seriousness such a joke reveals a dangerous arrogance. If someone using our software is confused, we have done something wrong. Our software is the problem.

3. Speed is quality

How often do we release updates, how fast do we build new features, how quickly does our test suite run, how rapidly do we fix reported bugs, and how short is our page load time on customer devices?

The faster we can do these and other things is a measure of our performance. What we do in a day is less important than how fast we do it.

4. There are no stupid questions

If you don't understand what someone else is saying, there is a very strong chance they don't understand either. Ask questions for your sake and the sake of everyone around you.

5. Readable code is good code

Our code should be at least somewhat comprehensible to non-technical observers. Declarative, natural language code is fast, maintainable code.


What do you think? Have I got it right? What would you add or change?

Discussion (0)

Forem Open with the Forem app