Do you have established dev’s process ? How do you use it ? Do you like it ? What is the benefit from it ? And others
These questions are usual in programmers’ area (at least for me), so I decided to write short note about process and how it established in company where I am working.
Short and simple Rules:
Firstly – all have to use it, if some one decided to stop it will work rule of broken window.
Secondly – each team’s player has to understand all aspects of process, if something not clear will work first rule.
Thirdly – all points and rules have to be short, simple and understandable, because there is high probability that will work first two points described above.
Before start development you should set up some Source Control System, for me is better to use DVCS but you can choose what is the better for you.
So, My usual workflow of new feature:
- Start new branch with name that clear describing new feature
- Create some high level interfaces (API)
- Create tests
- Implement logic, if I need I can change API and test on this stage
- Submit code to review tool.
- Create event for review and assign as minimum to 2 diff developers (if developers from diff teams will be great)
- Wait review, and fix review issues.
- After receiving acceptance from reviewers, Run all tests, unit integration, high load and so on, wait for result.
- If tests passed I can submit code to repository and merge to master branch, if no, process will start from writing code and will go through most steps.
Yes, has to be some “Code Conventions” for project and this convention should be described in project documents, even if you are using general CC.
Yes, has to be installed all infrastructure, with servers for code repository, review tool, testing, checking, issue tracking and desirable all these tools can be integrated to each other and as result to your IDE.
And Yes, you will spend more time than “just for development”, but as result, code will be as production of a few developers not just your thinking and bugs 🙂 and more readable and clear for the next developers and changes.