As an engineering team our mission is to solve complex problems using the right technology and work on things that will make help us become a better version of ourselves.
- Practicing SCRUM with a focus on delivering value for our customers
- Extensions, scripts, tools, blogs and discussions that will help us improve as a team
We deliver code that works and is maintainable. We are constantly looking for ways to improve.
Each member in the engineering team is focused on understanding the requirements and we catch most of the ambguity during the discussion phase.
During discussions, implementation and testing we keep the user at the center and make sure the feature being developed is going to be useful and wow the customer.
Code quality is really important to us and it goes beyond pretty code.We promise each other to deliver code that is losely coupled, well organized, very readable, easy to review and we've made sure it has basic quality checks like CI checks pass, linters are giving a green light and static code analyzers don't complain.
We've used the best industry practices in writing and organizing the code. And if we disagree or have a new pattern that we would like to use. We've discussed it with other members and collectively want to move to this new pattern/standard. Think discussions on things like space vs tabs, absolute vs relative imports and more :)
Promise each other to make sure our code output results in a high quality PR with a description that looks similar to this template and has enough details for any team member to understand what the deliverable is all about and review it.
Each of is committed to taking time out to review code delivered by others and make sure we deliver high quality code as a team.
We use best SCRUM practices to make sure everyon on the team is in sync and focused
Our release schedules are like public transport schedules. The release has to go out at the time it was scheduled. Whatever doesn't make it to the current release goes to the next.
We work towards keeping things on schedule and release as often as we can. Typically once every week.
Refactor messy code that is in the direct contact of the changes you are making.
Schedule larger refactors if they are bigger effort. The intent is always to leave the code better than it was before!
Avoid changes that fall outside the above. Discuss when in doubt.
Write units of code that testable and do one thing and on thing alone.
Watch out for signs of duplicate code and reconsider the design when this happens.
Constantly look to improve one's usage of IDE extensions, commandline tools, Code Snippets, Keyboard Shortcuts and more to deliver better code faster.
Leverage version control (Git) to create temporary branches to make changes, quickly see them in action and be fearless. See the code in action instead of wondering what the change might do or whether it will work.