Currently, whenever we deploy a new application on the university's IT infrastructure, we follow a detailed quality assurance process. This involves several different teams. The actual deployment is performed by the database/system adminstration team. If we developed the application ourselves, or if it needed significant integration with other university systems, then the software development or software configuration teams will be involved. The corresponding support teams will check that they have the documentation and knowledge that they need to start supporting the application once it is "live". The project mangers co-ordinate everything. And this is just the teams in Applications Division; our colleagues for whom we are implementing the system will be doing their own checks and making their own arrangements. So deployment takes quite a bit of effort and time.
What we would like to do is to make this process easier, quicker and more reliable. To this end, we have run software development project in which we tried using a continuous integration tool. Rather than having one big deployment with everyone involved, we wrote scripts to automate the process and had deployed the application (to a test server) every time the software changed during development. Automated tests ensured that we didn't introduce any bugs as we wrote new code. The result was a much smoother deployment process, and the assurance from much greater testing (the equivalent of 60 days of a human tester).
We're now looking to make this a standard approach for our software development projects. At least on of our developers is wondering why management (that's me) doesn't just make this happen immediately. Well, as is often the case, the technical solution is simple, but we need to change the "people" part of the process to make it possible. All the teams need to understand how the new process works and what it means for them. We need to understand what value the different teams currently bring to the process and make sure that we don't lose these contributions. We also have to adapt the other parts of the process, such as writing support documentation, to work with the new deployment process. All this takes time, and has to be done while we're under pressure to deliver a large number of systems during the year.
Although it will take some work to make this happen, I'm quite excited by this development. It promises to make our deployments much easier for everyone and to provide a consistently reliable service to our colleagues. I'll post news of progress here as it happens.
What we would like to do is to make this process easier, quicker and more reliable. To this end, we have run software development project in which we tried using a continuous integration tool. Rather than having one big deployment with everyone involved, we wrote scripts to automate the process and had deployed the application (to a test server) every time the software changed during development. Automated tests ensured that we didn't introduce any bugs as we wrote new code. The result was a much smoother deployment process, and the assurance from much greater testing (the equivalent of 60 days of a human tester).
We're now looking to make this a standard approach for our software development projects. At least on of our developers is wondering why management (that's me) doesn't just make this happen immediately. Well, as is often the case, the technical solution is simple, but we need to change the "people" part of the process to make it possible. All the teams need to understand how the new process works and what it means for them. We need to understand what value the different teams currently bring to the process and make sure that we don't lose these contributions. We also have to adapt the other parts of the process, such as writing support documentation, to work with the new deployment process. All this takes time, and has to be done while we're under pressure to deliver a large number of systems during the year.
Although it will take some work to make this happen, I'm quite excited by this development. It promises to make our deployments much easier for everyone and to provide a consistently reliable service to our colleagues. I'll post news of progress here as it happens.
Comments