Software Engineering with an Agile Development Framework/Iteration One
Having gone through nearly two years of doing assignments with specific instructions, the students arrive second year classes in software engineering expecting to be given a detailed brief. When they don't get one from us, they turn to the client, hoping to find one there. Usually they don't get one there either.
In 2008 our software engineering class is working to develop the "Living Campus Information Infrastructure" . What does that mean? Good question, and one the students have been asking both us and their client, Paula.
In this project we are not being deliberately vague, we genuinely don't know where this project is heading. This makes teaching the course interesting, in adopting the agile concept of embracing change we are also experiencing the values of courage, simplicity, feedback and respect. This applies to the students and the academics equally, which makes for a shared learning experience.
We're also following the manifesto, valuing those things on the left more than those on the right:
- individuals and iterations over processes and tasks
- working software over comprehensive documentation
- customer collaboration over contract negotiation
- responding to change over following a plan.
We mix this agile approach with a framework - three iterations. Each has milestone deliverables, the first is understanding and communication, the second a functional delivery, and the third: a robust delivery.
So the goals of the first iteration are all about building understandings - not what the project is going to result in, nor even what it has to do. Rather, the focus is on why - why is this a project that needs their help. In other words - what is the business opportunity.
The first iteration is also about building confidence and communication (within the group and with stakeholders).
In the first iteration the goals are to build up understanding of the business opportunity, and how the teams might use their skills in information technology to work towards meeting that opportunity.
One of the first things they do is to meet with the client. The purpose of this meeting is to establish connections with the client. It is not the time to be expecting detailed functional requirements.
By the end of the first iteration we will have:
- established a development team
- established firm communication links with the client
- established that we are on common ground with the client about the high level need for the project
- established a methodology and work practices.
The first iteration is quick. For a full year capstone project, this should take a maximum of two weeks. Two weeks, that's hardly long enough! Yes it is. On each of the tasks described in each chapter, an information box indicates how long each task should take. If it's taking longer than this, then you're doing something wrong.