Students, especially the MSc students, are always wanting to have industry related projects. One way to do this is to get industry to come to us for software projects. This will not happen overnight however. I’m sure the other universities who’ve done this also started small. Some sound impressive, and are relevance to what we might do. Bowling Green State University in Ohio has an Agile Software Factory, which provides a number of ways for students to participate. New Mexico Highland University also had a similar type of programme too. Closer to home, Kent has the Kent IT Clinic, which uses students to provide light services to local SMEs.
So we can kickstart our efforts in this direction, as noted previously, by going to a local organisation for possible partners. This should work if we can align the possible projects within some basic constraints of projects.
The new student experience should come through developing real applications for local organisations as part of their group projects. The local organisation benefits from having a real application developed for which they’ve previously identified a need and the students gain experience working with real clients as part of a real software development team.
At the moment this is at a trial stage and some pilot projects need to be found for development over the coming summer of 2009. The potential projects should have a few specific characteristics:
- Achievable over a twelve to fifteen week period with a workable product at the end, which the organisation can use.
- A client whom the students can liaise with on a weekly basis, and whom they can email or phone as required in order to answer questions about the product.
- An application that is needed with suitable interaction to meet the needs of a group project. This could be a desktop application, or web application used by staff to fill in forms, or to streamline other business workflow. An ecommerce application would also be suitable.
The project will demand consistent regular input from the client, so that they can help guide the project direction, and so that the direction can be checked and corrected as required. It also means the students will not be stuck waiting for input before they implement a feature of the application.
All projects should follow an agile plus evo approach building upon Ryan Shriver’s approach. This means that they will be done iteratively and incrementally with suitable measurable outputs as to how well each component, will meet the desired business goal of the project. This also means the project will demand consistent regular input from the client, and that there will be a number of points at which the project direction can be checked and corrected as required.
The students who will be doing this pilot come from two different programmes. Neither of them have studied agile or evo before. One group did a typical software engineering and UML course last autumn. The other group has not done this module yet, and will do it later. This is not ideal, but you do what you can.
These students will need a preparation period to learn the processes they need to successfully deliver the product to the clients, and they will also need to learn the reasons for the processes they are learning. If they don’t know the ‘why’ of what they are doing, then they will not apply the ‘how’ they are being asked to complete.
The students need to learn the ‘what’ of agile and evo so that they understand what the life cycle is they are using for their projects. Part of the ‘what’ is also the ‘why’ of using agile and evo compared to the traditional waterfall or spiral life cycles of software development. There are a number of resources available, which cover these aspects.
More pressing is the issue of the students learning the ‘how’ of agile and evo. They need to know and understand the daily practice of agile and evo so that it is successfully implemented to provide a successful (usable) business product for the customer at the end of the project. While there are a number of resources available describing these practices, it would also be useful to tie these in with a series of workshops so that the students can learn the processes before applying them to a real project.
In order for this industrial experience to be successful in the long run more people will be needed to manage the teams and guide them. We will need staff to also participate in the workshops so that they too can help guide the student groups on their projects in a suitable manner.
The main goal of this pilot period is to uncover any issues, which need to be resolved before the scheme can be scaled up to include more organisations, and more student groups. Over time this should become a regular service available to local organisations. In order for this to happen, however a trial project or two is needed to establish its feasibility.