Development

Our development processes are in need of review and improvement. I've split it down into a number of areas and documented our current processes. I've also described the classes of software we develop at Project Types. The processes we develop should be as widely applicable as possible though it is likely there will need to be variations in some areas.

Infrastructure Management

This is related to requirements management but refers more to ensuring that the environment on the Live/Dev servers is suitable for running the application. This would include things such as which ports need to be opened in the firewall for it to work.

Requirements Management

This is taken to mean the process by which a Python environment obtains the requirements (internal and external) it needs to run a particular script. This assumes that we have internally developed code that needs to be re-used - the structure/namespaces of that code are outside the scope of this.

Current Process

Requirements

Research  / Notes

Proposed Process

Build / Deployment

This covers the deployment of the software to wherever it is to be run and any packaging (such as conversion to a Windows executable) that needs to be done. This will also include the packaging of shared libraries to fit in with the Requirements Management as above.

Testing

This covers testing both manual and automated and (probably) also UAT.

Research / Notes

Versioning / Branching

This covers the use of Version Control branches and other methods to develop features and maintain difference versions of the software concurrently.