Identify a number of features that need to be implemented for this iteration. You will have to talk to your customer to know exactly what they want. I.e. you will have to conduct a planning meeting with your customer. Usually you will not be able to deliver everything the customer wants in one iteration. So you will have to prioritize the features. Make sure you write unit tests for the features you decide to implement. You will be evaluated based on the deliverables below, the quality of the system produced, and your adherence to the practices described in class.
As part of this iteration, you will be asked to add or change certain requirements in your system. Please provide all the details on what needed to be changed in order to fulfill the new requirements. For example:
- in order to support the new feature, we needed to refactor the Checking class so that it inherits from a newly created superclass called Account. We added the following methods...., we removed the following methods...., and we had to rewrite the following methods.... We refactored the ATM classes so that they adhere to an MVC pattern.
(a) You should have a working system that the customer as well as the instructor and the TAs can run without complications. You will be asked to show your code and the tests you wrote for the implemented features. You will present the system to your customer on-demand.
(b) Submit a report that includes the following items:
- A table that summarizes what you have planned and achieved throughout the project. Make sure you include enough details as shown in the sample table below.
Iteration |
Planned Stories |
Planned Tasks |
Priority |
Implemented |
1
Velocity = 12 |
1.1 As a user, I should be able to post my resume |
1.1.1 upload resume |
MUST |
Yes |
|
|
1.1.2 fill out online form |
MUST |
Yes
|
|
1.2 As a user, I should ............. |
1.2.1 ........ |
SHOULD |
No - carried over to iteration 2. |
|
|
|
|
|
2
Velocity = 10.5 |
2.1 ................... |
2.2.1 ....... |
MUST |
No - dropped after negotiating with the customer |
|
|
|
|
|
- Pictures of your story board at different points in the iteration (weekly snapshots).
- A short description of the results of the retrospective for this iteration along with some pictures highlighting the different stages of the retrospective meeting.
- Details on what needed to be changed in order to fulfill the new requirements.
- A detailed evaluation of your system in terms of: design (coupling, cohesion, ... ), testing (coverage, mockups, ... ), code readability, extensibility, known issues (usability problems, bugs, ... ) and their severities, and use of tool support (CI, SVN, testing framework, ...).
- The individual efforts of each member. For example, John implemented stories A and B, wrote the tests for stories A, B, C and D, wrote section 3.1 in the report and reviewed sections 1 and 2.
- As usual, the report should be targeted to your customer and should have already been "signed off" by the customer in the form of an attached critique of the report (1 to 2 pages).
(c) Each member in the team should submit a peer-evaluation report. See the template in
Numbers,
Excel, or
OpenOffice.
The peer-evaluation report should also include one paragraph describing your overall experience as an agile team member. Discuss positive aspects as well as negative aspects.
Checklist
- The system runs without compilation or runtime errors.
- A satisfactory number of tests exists, and the tests are running in the same environment without any issues.
- The code and tests are available on a source control server. All team members have contributed code to the repository.
- There is a build process in place where the code is compiled and the tests are run. It exists on a central server and runs automatically with every commit. The build passes without any issues.
- The team has conducted an iteration planning meeting.
- The team has conducted a retrospective according to the guidelines provided in the lecture.
- The team handled the new requirements properly.
- Your report is completed as specified above.