The Paperless Post Developer Creeds
For as long as we've been a team, we've tried hard to work with a set of guiding principles. These are not hard and fast rules, but rather a set of informal maxims that help us to make decisions, prioritize our work, and generally ship a ton of quality code. We're here to work hard, have fun, and make our customers happy, and we feel that these principles can help us make that happen.
Fixing > Complaining
We work in an ever changing system. Yesterday's awesome work is today's legacy code. Complaining that a piece of code or system doesn't work or isn't correct will not fix it. We are all responsible for this "bad" code which means we're also responsible for making it better.
Helping > Winning
We work and act as a team. As a team, our goal is to push the product forward, not our own work. Helping a teammate do a better job or solve a tough problem drives us forward; ignoring or magnifying their problems at your own benefit doesn't.
Working > Perfect
Perfect and "correct" code is only correct in theory. Code that works and solves users problems is correct in practice. We opt for shipping a minimal viable product and iteratively improving.
Small Changes > Big Refactors
Achieving a goal by making incremental improvements will achieve more than a grand rewrite. Consider the entire system to be in a perpetual state of change. We work with the flow of changes. Stopping the world and starting over is not an option.
Understandable Working Code == Best Practice
The only real best practice is the knowledge that best practices change. We strive to make code that works and is parseable by our team mates. We pride ourselves in the ability to explain the why of our work.