This is a very good question. When developing a software, the most important thing is that the purpose of the software is well understood by the whole team so that they can all work towards the expected outcome. The team will obviously need people who are capable of writing code and assembling it. It will need people who are able to test the software and record errors, people who are good at trouble shooting and fixing bugs.
Sometimes, the overall design of the software will determine how the writing of the software can be divided up amongst the team.
The code will go through may revisions and iterations, so it's important to keep track of all the different versions to reduce time wastage on redoing any code which was already written, if it was needed again and for testing and troubleshooting purposes.
You need to be able to ensure that no one's work is lost, so checking the software in and out of the Software Repository is an important aspect of the Software Development.
The code should be reviewed by people who know about security of software, so that they can ensure that there are no vulnerabilities, trogons, etc resident within the software and that the code is sound from the point of view of any attacks.
When the code is ready for release, it should go through "User Acceptance Testing" which will test that the software meets the Requirements and any tweaks are carried out at this stage.
In case of some software there will be a need for various types of testing and different scenarios can be written out and played out to ensure that the software works as expected.
Documentation is an important part of Software Development. Information should be added to pieces of code to enable others easily work out the purpose of different pieces of code.
Wish you all the best with your software project(s).