Please contribute by voting. Thanks! 2

I think it's important to define and follow a development process. This have several benefits such as increased quality, better cooperation and reduced development time (in the long run). In this article I will present the process that I follow myself. This works for me, but it must obviously be adapted to each project's specific conditions. Please leave a comment if you have any improvements or thoughts about this process.

Before you start coding * Make sure that you understand your task and the scope of the task

* Make sure that you have everything you need to complete your task

* Make sure that the task is estimated and that the estimate is accepted by potential stakeholders

* Make a plan on what you will do and how you will do it. If something in your plan seems complex, break it down into smaller pieces. Write this down in the task's record on your project management tool for future reference.

* Make a quick estimation on how long each item in your plan will take to execute

* Check with your teammates if they will be working with something that might affect your task

Writing code * If doing TDD, write your unit tests first

* Code quality, make sure that you:

- Write code that is testable

- Validates input

- Consider potential threading / concurrency issues

- Consider security aspects

- Consider load / performance implications on your and other systems

- Manage & log errors and catch exceptions (if applicable)

- Make sure that your code adheres to the coding standard

- Make sure that your code is easy to understand and grasp

- Use tools to help you improve code quality

- Take responsibility for the code; make sure that your solution fits in the bigger picture

- Write comments (with moderation) on why stuff is done, not how

* Ask a team mate if you:

- Don't understand something in the code

- Are uncertain about something

- Don’t know where to put code

- Don’t know what to name things

* If you identify something that is broken or bad in code that you see, make sure to create a task in your project management tool so that it gets fixed

* If your task takes more than 10-20% longer then estimated, contact potential stakeholders in order to agree on how to proceed

When you are done coding * Make sure that you are done according to your team's Definition of Done

* Show the result to any stakeholder, if applicable

* Run unit tests, make sure that they pass

* Test your code as well as anything that you might have affected with your change

* Diff your changeset:

- Do not leave code that is disabled / commented away

- Make sure to look at every change that you have made

* Peer review the code changes

Final tasks * Update your local repository from master before commit

* Commit your changes and write a descriptive commit message

* Make sure any Continuous Integration builds are successful

* Write in the task what you have done so that others can understand

* Update any documentation / operational documents

* Do a handover (if needed)

* Make sure that you understand your task and the scope of the task* Make sure that you have everything you need to complete your task* Make sure that the task is estimated and that the estimate is accepted by potential stakeholders* Make a plan on what you will do and how you will do it. If something in your plan seems complex, break it down into smaller pieces. Write this down in the task's record on your project management tool for future reference.* Make a quick estimation on how long each item in your plan will take to execute* Check with your teammates if they will be working with something that might affect your task* If doing TDD, write your unit tests first* Code quality, make sure that you:- Write code that is testable- Validates input- Consider potential threading / concurrency issues- Consider security aspects- Consider load / performance implications on your and other systems- Manage & log errors and catch exceptions (if applicable)- Make sure that your code adheres to the coding standard- Make sure that your code is easy to understand and grasp- Use tools to help you improve code quality- Take responsibility for the code; make sure that your solution fits in the bigger picture- Write comments (with moderation) on why stuff is done, not how* Ask a team mate if you:- Don't understand something in the code- Are uncertain about something- Don’t know where to put code- Don’t know what to name things* If you identify something that is broken or bad in code that you see, make sure to create a task in your project management tool so that it gets fixed* If your task takes more than 10-20% longer then estimated, contact potential stakeholders in order to agree on how to proceed* Make sure that you are done according to your team's Definition of Done* Show the result to any stakeholder, if applicable* Run unit tests, make sure that they pass* Test your code as well as anything that you might have affected with your change* Diff your changeset:- Do not leave code that is disabled / commented away- Make sure to look at every change that you have made* Peer review the code changes* Update your local repository from master before commit* Commit your changes and write a descriptive commit message* Make sure any Continuous Integration builds are successful* Write in the task what you have done so that others can understand* Update any documentation / operational documents* Do a handover (if needed) Article created: Mar 22 '16. Edited Mar 23 '16.