Dashboard > Testarossa > Home > Project Plan
Project Plan Log In   View a printable version of the current page.

Added by Jaakko Ruutiainen , last edited by Ville Pulkkinen on Dec 02, 2008  (view change)
Labels: 
(None)

Project Plan

Team Testarossa

Version Date Author Description
1.0 14.10.2008
Jaakko
Document template
1.1 17.10.2008
Alexey    3.2 ,4.1, 4.3 Budjet, 3-
Introduction,5.1.1,5.1.2,5.1.13
1.2 18.10.2008 Ville 3.2&4.1.1&4.1.2 (own information), 5.1.5, 5.1.6, 5.3
1.3 18.10.2008 Jaakko 4.2, 5.4, 5.1.9, 5.1.10, 3.2, 4.1
1.4 19.10.2008 Kalle S. 2, 3.2, 4.1, 5.1.7, 5.1.8
1.4 19.10.2008 Alexey References, Icluding 6.1, 6.2 from other document
1.5 19.10.2008 Alexey 6.1 Schedule update, 6.3 Implementation 1 plan, 5.1.14 Irc sessions,5.1.15 Google - calendar,5.1.16 Testing starts 1 week before release delivery
1.6 31.10.2008 Ville Added "5.2 QA plan"
1.6 27.11.2008 Alexey Updated "6.3 Implementation" Sprints 3 BLIs added to tasks and deliverable, added actual work hours for sprint 2 (for all)

Contents

1. Introduction
2. Stakeholders and staffing
3. Goals
4. Resources and budget
5. Work practices and tools
6. Phasing
7. Risk log

1. Introduction

Agilefant is open-source web-based tool for managing software development projects. Agilefant system has been developed particulary for needs of agile software projects by Helsinki University of Technology's SoberIt lab and previous software development project-courses.
Agilefant's main purpose is to manage software development backlog. Backlog is a prioritized work- and featurelist. Elements in bakclog are called backlogitems which have priority, time effort estimate and list of tasks related to item.

2. Stakeholders and staffing

2.1 Team Testarossa

Project web page is at http://www.agilefant.org. All the course related documentation and other material cam be found at the team wiki at http://www.agilefant.org/wiki/display/TSR. Team also has an E-mail address which is testarossa(ä)agilefant.org.

Name Role E-mail Phone
Alexey Murtola Project Manager amurtola(ä)gmail.com 050-4994505
Jaakko Ruutiainen Architect jruutiai(ä)niksula.hut.fi 050-5904065
Kalle Ranki QA Manager kranki(ä)cc.hut.fi 041-5185858
Kalle Säilä Developer ksaila(ä)cc.hut.fi 050-3002524
Jouni Ojala Developer jaojala(ä)cc.hut.fi 040-8336787
Ville Pulkkinen Developer hpulkkin(ä)cc.hut.fi 0400-593490

2.2 Customer and mentor

Name Role E-mail Phone
Ilkka Lehto Product Owner ilkka.lehto(ä)iki.fi 041-5016167
Jarno Vähäniitty Business Owner jvahanii(ä)gmail.com 050-3862777
Reko Jokelainen Technical Advisor reko.jokelainen(ä)soberit.hut.fi 040-5643797
Pasi Pekkanen Technical Advisor pasi.pekkanen(ä)hut.fi ?
Seppo Sahi Mentor seppo.sahi(ä)gmail.com 050-5370356

2.3 Organizational Chart


Figure 1. Organizational chart.

As shown in the Organizational chart, there are also some other stakeholders in the project like the open source community and other organizations.

3. Goals

3.1 Project goals

Our goals in general level are divided on 2 main parts: course completing and giving our customer best value of new features for "Agilefant"- software.  This in union includes delivering of documents,  iterations demos,  project management, software process improvement, implementing new features for "Agilefant".  Of course we have also learning goals in this project (see.  3.2 "Personal learning goals")

Table 1: Goals of the customer in the priority order

Goal Verification criteria
1. Producing business value to the customer in every sprint Sprint backlog is empty after the sprint
2. Maximizing time spent in software development and minimizing overhead
Teams logged working hours consist mostly from SW development activities

3.2 Personal learning goals

Table 2: Personal learning goals

Member Personal learning goal
Murtola Alexey Get experience in systematic software engineering using "Agile"- methods.
Study of requirements engineering,  effort estimation  and basics of testing. Basics study of JAVA technologies.
Pulkkinen Ville Be familiar with a software development project which applies Java and an Agile -method. How to produce good quality sw fast.
Jaakko Ruutiainen Get experience in software engineering using Agile methods
Kalle Ranki
Working in a agile software development team. Learning to work with a large codebase.
Jouni Ojala
To learn new technologies and work with agile software development team.
Kalle Säilä
To learn how to use agile methods and how to run an agile software development team. Also to learn some new technologies.

4. Resources and budget

4.1 Personnel


4.1.1 Planned work hours.



PP
I1
   
I2
   
 
Member

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Total
Alexey Murtola 30

20
20
10

20
25

25
150
Ville Pulkkinen 20 20 20 20 20 20 30 150
Jaakko Ruutiainen 20 20 20 20 20 20 30 150
Kalle Ranki
20 30 25 30 0 25 20 150
Jouni Ojala 20 20 20 20 20 20 30 150
Kalle Säilä 20 30 20 20 10 20 30 150
                 
Total
              900


4.1.2 Actual work hours.



PP
I1
   
I2
   
 
Member

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Total
Alexey Murtola 23
41.5






64.5
Ville Pulkkinen 20 37           57
Jaakko Ruutiainen 20 35,5           55.5
Jouni Ojala 19 37           56
Kalle Säilä 25 47.5           72.5
Kalle Ranki
20 48           68
Total
127 246,5           373

4.2 Materials

Team has one room in Innopoli 2 where work can be done. In that room we have three computers of which two can be used for development. We might install development enviroment to the third machine if needed, otherwise it will be used for testing and documenting. Some team members have personal computers that can be used to develop Agilefant.

Development environment is fully free and open sourced software. Two development machines are equipped with Windows XP operating system which is only commercial software team needs.

Team has access to various tools used by SoberIT. Wiki is used for documentation, Agilefant for development management and SVN for source code repository.

4.3 Budget

Here the costs that may imposed by the project.  Team members don't get any charge for work. In our project budget is time.  For each team member is about 150 hours for whole project. Mentor meetings about 4 during project. In case of our project software and hardware not reguire a lot of resources. We are using old customers computers  and own hardware (1000 is for  internet- services and software licenses).



Amount
Price

Total price

Team members work
150 * 6 =900 h

15
13500

Mentor consulting

8 h

15 / h

120
Office renting

6 months

800 / m

4800
Software and hardware


1000

1000
Customers consulting
150h
15
2250


Yhteensä:
21670€

5. Work practices and tools

5.1 Practices

5.1.1 Iterative development with course and customers reguirements.

Our schedule depends of 2 schedules with fixed dates (endpoints). First is "course"- schedule with 3 iteration demos and deadlines for delivery of documents. Responsibilities in documentation and demos are divided between groups in weekly group meetings. Second is "customers"-schedule with endpoints of 7 sprints (see schedule). In each sprint (except 4 - holiday) we need to deliver a set of new features or editions for "Agilefant" software.

5.1.2 Iteration planning and implementation.

Customer and group discuss this set of features with customer before sprints starts. (At the end of current sprint). Whole team estimate time effort for each feature using "card" - voting. (Each member show card with number that represent effort estimation and explain his decision.)  Group use pair programming. Feature items divided between pairs depends of assigned effort estimation and pair's time budget (see 4.1). Each pair is responsible for planning, implementation, testing and demonstration of own set of features. Each pair demonstrates own work result to customer and mentor and gets feedback. We need at least 2 meeting (planning, demo) with our customer in each sprint.  Architect will deliver ".zip" package of new release with implemented functionality from all pairs.

5.1.3 Documenting

Project manager is responsible for document deadlines, but the whole team participates in writing them. Project manager splits documents writing  in equal parts and deals them to team members. All documents are written in this wiki and are publicly accessible.

5.1.4 Risk management

Risks are identified and reviewed after every sprint in our spring planning meeting. The team discusses risk priorities and actions for controlling risks.

5.1.5 Time tracking

Our project, Agilefant, is a time tracking tool itself. Thanks for Agilefant; Testarossa can apply real-time time reporting.

Of course, we have a manual time tracking in this page; see chapters "4.1 Personnel", "4.1.1 Planned work hours" and "4.2.2 Actual workhours".
Chapters 4.1.1 and 4.1.2 will be updated after each sprint.

Tasks for Testarossa creates our project manager, Alexey Murtola.

5.1.6 Communication

Testarossa has a mailing list which consists of all stakeholders (team members, customers, mentor). An IRC channel is applied as well.

The following 2 IRC channels are applied:

!fantti-grp14
!agilefant

Face-to-face discussions and meetings between all stakeholders are the most important way to handle communication.

All stakeholders must follow Testarossa e-mails, the IRC channel and a Testarossa section in Agilefant.

5.1.7 Iteration demo

There are there iteration demos which are mandatory parts of the course. However, our project has more than 3 sprints and we are also planning to keep a short demo for the customer after every sprint.

We have a small group so our roles in the project vary. Basic structure is that the Project Manager or Scrum Master presents the documentation and used practices. After that each developer or developer pair presents the made changes and the new features. All the other issues like Quality Assurance plan is presented by the team member who has had the most time to do that.

5.1.8 Defect tracking

5.1.8.1 Process

If the team finds a bug, it should be fixed immediately if possible. If the the bug can't be fixed immediately, a bug report should be made and saved in the sprint backlog. If the bug remains unfixed when the sprint is over, it should be moved to the product backlog and the customer decides wether or not to fix it and when.

5.1.8.2 Bug reports

The bug report should include the following information:

  • Id
  • Type of the bug (e.g. null pointer)
  • Location (e.g. file or url)
  • How to reproduce the bug
  • Date
  • Who found it
  • An estimation of how long it will take to fix it

What system is used, is an Excel sheet enough, giving access to the customer/peer group, ...

5.1.9 Version control

Team uses customer's existing SVN repository for code version control. Code commits to the repository are made after customer's product owner has reviewed the change and the change has passed unit tests. After commit automatic build tool Bamboo builds the new version and runs all unit tests, if anything fails all project stakeholders are notified by email. Commits that break the build must be fixed immediatelly. Changes are briefly described in the commit comments and possible documentation is saved in the wiki.

5.1.10 Coding convention

As fully functioning product Agilefant already has great amounts of code and team tries to make code which conforms to previous conventions. Code Conventions for the Java Programming Languageby Sun Microsystems is used as it has been in use before. Agilefant uses many external frameworks and libraries (Spring, Hibernate, Webwork, jUnit). When working with those coding convetions used in them are adapted and used.

5.1.11 Process improvement

After each sprint team arranges retrospective meeting. Customer is welcome to these meetings as well. Team figures out what methods did work and what didn't and what can be done to improve the process.

5.1.12 Requirements engineering

Gathering of requirements is done before each sprint. Customer and team arranges meeting. Team listens customer and tries to understand customer requirements and goals. Results are written down to Agilefant.

Analyzing requirements is done by team (lead by scrum master). Team makes time effort estimates (poker-method) for backlogitems and divide them to tasks. Customer evaluates and validates results.

Sprint planning is done with customer and team. Customer has prioritized backlogitems to Agilefant and team makes decisions about sprint's scope (how many backlogitems are transferred to sprint backlog) and goals. Team contacts straight to customer if there are any problems with requirements.

Agilefant provides realtime statustracking.

5.1.13 Design

Low level design is already implemented. In our projects scope is implementing new features using "Agilefants" base architecture.

5.1.14 Irc sessions

Team has IRC - sessions every MA,KE,PE at 10.00 for reporting about problems, planning and knowledge transfer

5.1.15 Google - calendar

Team use Google- calendar for tracking all project endpoints

5.1.16 Testing starts 1 week before release delivery.

For executing testing activities team decided that backlog items coding need to be done 1 WEEK before release delivery (see "Schedule")

5.2 Quality assurance plan

5.2.1 What are the most important quality goals?

Testarossa collected the most important quality goals with the customer.

Here is a short list about the most important quality goals in a priority order (the most important first):

Quality goal
There are regular releases in every sprint
There are no problems which block usage in releases
The User Interface has common view and behavior
SW Development for future SW groups is easier
Agilefant SW maintains current performance
Agilefant SW does not loose users's data
Agilefant SW maintains current portability

5.2.2 What QA practices are performed in order to achieve the quality goals?

The idea of this chapter is to connect quality goals into QA practices. A chapter "5.2.2.14 Quality palette" summarizes this QA plan.

Chapters 5.2.2.1 - 5.2.2.14 announce QA practises, when those are performed and what material are produced.

5.2.2.1 Scrum

Perhaps the most important QA practice is the applying of Scrum. Scrum is a one of agile SW development methods.
Why Scrum is applied? The aim is that SW development team produces SW which has good quality; produced SW meets customer's requirements and expectations.

Testarossa applies the following activities in Scrum:

Activity in scrum Description
IRC Sessions Testarossa keeps regular IRC sessions (at !fantti-grp14) at 10.00 am (Monday, Wednesday and Friday). Of course, it's allowed to discuss in other times at IRC. The customer may join into these sessions. Testarossa can meet the customer at !agilefant.
Weekly meetings A regular face-to-face team meeting is at 16.00 (Tuesday). The customer may join into these sessions.
Task planning (one task less than 5 hours) A backlog item consists of tasks. An individual task must be planned so that length is less than 5 hours.
Agilefant and - burndown Testarossa can follow the progress of the project in Agilefant; what are the current backlogs, which backlogs need work, which are done. Agilefant burndown how much effort left and how much used.
Google -calendar There is a Google calendar (in http://www.agilefant.org/wiki/display/TSR/Home) in wiki and there is a possible to follow what happens in a given week, - day etc.
5 % percent workshop 5 % of every sprint time must be use for the planning of the next sprint.

Scrum is applied as a QA practice all the time within the project.

Scrum and its activities produce the following material:

Activity in scrum Produced material When?
IRC Sessions An IRC session itself does not produce any material. Material may be produced if needed. IRC sessions are kept at 10.00 am (Monday, Wednesday and Friday).
Weekly meetings A regular face-to-face team itself does not produce any material. Material may be produced if needed. A regular face-to-face team meeting is at 16.00 (Tuesday).
Task planning (one task less than 5 hours) Notations in Agilefant. There is a "Progress" tab for a backlog item in Agilefant. There are task list (TODO) in a progress tab and notations will be there. In the beginning of a sprint or within a sprint.
Agilefant and - burndown Notations in Agilefant. Agilefant burndown shows spent effort versus planned effort in graphical mode. When Testarossa marks spent efforts or changes the state of a task in Agilefant.
Google -calendar Notations (meeting, demo etc.) in Google -calendar When it's needed
5 % percent workshop Notations in Agilefant; Testarossa and the customer create new backlog items and todo -lists for those. In the end of the previous sprint.

Scrum helps to achieve a quality goal "There are regular releases in every sprint".

5.2.2.2 Feature freeze week before release

Testarossa has aim to finish needed backlog items one week before releasing. That way Testarossa has time enough for testing, corrections, documenting etc.

"Feature freeze week before release" itself does not produce any material.

Feature freeze week before release helps to achieve a quality goal "There are no problems which block usage in releases".

5.2.2.3 Definition of done

That is a checklist for backlog items when those are in a "Implemented" state in Agilefant.

The following list must be checked

  • is an unit test designed
  • is a test charter designed
  • is a test charter/case tested successfully
  • has the customer checked a backlog item

If the customer accepts a backlog item and its functionality, tests, documents etc. -> Testarossa changes its state to "Done" in Agilefant.

That is performed when a backlog item has been implemented. A summary sheet in Wiki will be produced material. There are own pages for an each sprint http://www.agilefant.org/wiki/display/TSR/ET+Chart.
The summary sheet announces a "Definition of done" checklist and its results (ok/nok).

Definition of done helps to achieve quality goals "There are regular releases in every sprint" and "There are no problems which block usage in releases".

5.2.2.4 Testing

5.2.2.4.1 Testing levels

The following testing levels are applied: unit/module, integration and system testing.

Testing level Description When? How?
Unit/module tests Will be driven for individual components. When Testarossa has finished a backlog item programmers must
test that a given backlog item fulfils its specification and it does not produce negative side effects.
Testarossa makes JUnit tests for classes and methods
Integration tests Will be driven for component groups. The idea is to ensure that components (backlog items) work together as planned and no negative side effects occur. The customer offers Bamboo which is continuous integration server. The customer and Testarossa receives an e-mail if Bamboo can not build SW or tests fail. Testarossa will run these when unit/module tests has been ran successfull and all backlog items (for a certain sprint) are collected together. Testarossa makes JUnit tests for bigger set of classes and methods
System tests Will be driven system as a whole. The scope of unit/module and integration tests was in implemented backlog items. These will be ran when integration tests has been ran successfully. Due to small size of Agilefant SW Testarossa makes system tests by unit/module tests.
Acceptance tests Acceptance tests will be driven system as a whole - customer requirements. When Testarossa has verified the quality of Agilefant SW by other tests (unit/module -, integration - and system tests) and when Testarossa decides that Agilefant SW is ready for releasing. Testarossa has to find out when the customer is going to drive acceptance tests! That way the customer gets what he/she wants. Read a chapter "5.2.2.4.5 Testarossa does not test everything". The customer announces testing tools, - types, - methods for an every acceptance test.
5.2.2.4.2 Testing types
Testing type Description When? How?
Functional tests Functional tests are used to ensure that the behavior of the system adheres to the requirements specification. All functional requirements for the system must be achievable by the system. Functional tests belong into under system tests. When all backlog items are collected together. By explorative testing and ad-hoc testing. Read chapters "5.2.2.4.3 Explorative testing" and "5.2.2.4.4 Ad-hoc testing".
Performance tests The goal of system performance tests is to see if the software meets the performance requirements. The priority
of performance tests (in this project) is lower than functional tests. Testarossa has to monitor somehow the performance of the SW within the project. Performance tests belong into under system tests.
When all backlog items are collected together. The customer ships a database which is used in Agilefant and Testarossa tests performance within the project with that.
Regression testing Regression testing is needed after changes. E.g. there is a bug and Testarossa fixes that. After that Testarossa drives release tests or other pre-defined tests. After changes. E.g. by JUnit tests, by acceptance tests, by tests which revealed a bug etc.
5.2.2.4.3 Explorative testing

Exploratory testing is test design and execution at the same time. Exploratory tests, unlike scripted tests (predefined test procedures, whether manual or automated), are not defined in advance and carried out precisely according to a plan. ET is optimized to find bugs fast. A tester continually adjusts plans to re-focus on the most promising risk areas, follows hunches and minimizes the time spent on documenting. ET may be useful to complement a more formal testing approach.

Explorative testing is applied when Testarossa has finished a backlog item.

Testarossa will use a graphical sw tool "Freemind". Testarossa designs e.g. exploratory test charts by Freemind.
A test chart shows steps in a test case and a tester has to mark result passed or failed.

Testarossa measures the coverage of test cases from test charts; how many paths has been driven versus total sum of paths,
how many test cases has been driven versus total sum of test cases, how many test cases has been driven versus time etc.

Testers should apply traffic lights in tests; green (e.g. quality is good), yellow (e.g. not sure) and red (e.g. quality is bad).

An exploratory test chart is designed by a programmer(s). An ET chart must be finished before a test; what to test and how to test?

5.2.2.4.4 Ad-hoc testing

That will be ran randomly within the project and that is targeted for a certain purpose. An ad-hoc test will not be designed.

5.2.2.4.5 Testarossa does not test everything

There are a lot to do and lot to test in the project. This means that there are no necessary resourcies (e.g. skills,people,time,system) to test everything.

The following test level will not be tested:

  • The final acceptance tests will be driven by the customer. Anyway Testarossa has to follow the results of acceptance tests and react fast if there are bugs in SW produced by Testarossa (="Testarossa can not close eyes"). The customer is not a testing service

The following test types will not be tested:

  • Stress testing (a system test). That must be tested with high load. That needs time, people and a system.
  • Security testing (a system test). E.g. does Agilefant loose data. That needs time, people and a system.
  • Selenium tests. Automatic testing for user interfaces. In practice Selenium is a plug-in for a web browser which saves
    the following transaction e.g. an user goes through web pages and Selenium checks that needed texts appear etc. It's possible that Testarossa may apply that sometimes. Because Testarossa can not promise the usage of Selenium tests exactly, Testarossa doesn't apply that. That test type is proposed by the customer.
5.2.2.4.6 Testing and its material
Produced material When?
Exploratory testing charts When a backlog item has been implemented
Test logs When test case has been driven

Testing helps to achieve quality goals "There are no problems which block usage in releases", "Agilefant SW maintains current performance" and "Agilefant SW does not loose users's data".

5.2.2.5 Creating of automatic unit tests

Automatic unit tests (JUnit) must be created before tests. Produced material is JUnit code itself.

Creating of automatic unit tests helps to achieve quality goals "There are no problems which block usage in releases" and "SW Development for future SW groups is easier".

5.2.2.6 Test-Driven Development

Test-Driven Development (TDD) is an extreme approach to unit testing where tests are written before implementation.

Testarossa applies a "Test - Code - Refactor" rule in TDD:

  • Test. Write a test case for a given feature.
  • Code. Code a given feature.
  • Refactor. Improve the quality of test cases.

In practise test, code, refactor, test, code, refactor etc. as long as a given feature fulfils its specification. Produced material is code&its comments.

Test-Driven development helps to achieve quality goals "There are no problems which block usage in releases" and "SW Development for future SW groups is easier".

5.2.2.7 QA Practise Prioritization

Prioritization is very important. The lack of resourcies (staff, time, etc.) means that there is no necessary time to run all QA activities in the project.

Priorities will be given (e.g. to backlog items) in the beginning of a sprint. Backlog items, tasks etc., which have higher priorities, will be done first.
Testarossa must follow priorities within the project. Testarossa is allowed to change priotities if needed.

Priority notations in Agilefant are produced material.

QA practise priorization helps to achieve a quality goal "There are regular releases in every sprint".

5.2.2.8 Pair programming

The following is loaned from T-76.4115 pages:

"Pair programming is a practice where two developers sit in front of one computer programming together. They may continuously change the role between code writer and observer. The pairs also change frequently, e.g., daily. The proposed advantages of this practice are lower number of bugs, better transfer of knowledge among the team, higher enjoyment of work, and faster development without considerably higher total effort spent on the project."

How does pair programming work in practise? The answer: Programmers (3 persons) meet regularly and on schedule at Motorhome.

That is performed all the time within the project. That does not produce any special material.

Pair Programming helps to achieve a quality goal "There are no problems which block usage in releases".

5.2.2.9 Reporting

Testarossa does QA reporting in the end of each implementation. A QA report tells that how many defects/bugs found, how many defects/bugs corrected etc.

Code review checklist, test cases, -data, -logs and -charters will be reported. Test cases must be finished before test. Test logs will be appeared after tests.

Reporting occurs in wiki.

Reporting helps to achieve a quality goal "SW Development for future SW groups is easier".

5.2.2.10 Code/document/test case reviews

Testarossa runs reviews for

  • code
  • documents
  • test cases, -charters

Reviews will be driven against a checklist.

Code reviews will be driven when it is necessary; e.g when developer has made bigger/remarkable addings, removings, etc. or situations where code behaviour can be disaster.

For that purpose Testarossa can use a program called "FishEye" which code review tool. A developer can add own code to FishEye and propose to the customer and/or other team members that please review my code.

Code reviews can be held e.g. at Motorhome (the workroom at Innopoli) where e.g. team members and/or the customer can review code manually. In manual code reviews is the same policy; those will be driven when it is necessary.

Produced material will be the results of a checklist (ok/nok).

Code/document/test case reviews helps to achieve quality goals "There are regular releases in every sprint" and "There are no problems which block usage in releases".

5.2.2.11 Coding standard

Sun coding conventions will be applied. That is performed all the time within the project. That does not produce any special material.

Coding standard helps to achieve a quality goal "SW Development for future SW groups is easier".

5.2.2.12 Retrospective

Actions for quality improvements after every sprint. That is performed in the beginning of the next sprint. That produces material to a QA plan (if needed) and/or to wiki (if needed). It's allowed to produce other material (if needed).

Retrospective helps to achieve quality goals "There are regular releases in every sprint", "There are no problems which block usage in releases", "The User Interface has common view and behavior", "SW Development for future SW groups is easier", "Agilefant SW maintains current performance", "Agilefant SW does not loose users's data" and "Agilefant SW maintains current portability".

5.2.2.13 Collecting continuous feedback from the customer

The customer follows regularly Testarossa and its working. The customer may give feedback to Testarossa; e.g test this way, avoid that kind of coding etc.

There are face-to-face meetings with the customer in the beginning/ending of each sprint. In the beginning of each sprint requirements (which backlog items will be done within a sprint) will be set with the customer and Testarossa may receive technical support (e.g. how difficult a given backlog item is). The ending of each sprint the customer evaluates each backlog item (does it meet the requirements or not) and the customer gives feedback to Testarossa and vice versa. Testarossa can meet the customer at !agilefant.

Testarossa makes own backlog items for the customer; when the customer has acceptance tested successfully a backlog item -> the customer marks that backlog item "Done".

Produced material can be the customer's comments in Wiki, notations in Agilefant etc.

Collecting continuous feedback from the customer helps to achieve a quality goal "The User Interface has common view and behavior".

5.2.2.14 Other QA practices

The following table announces other QA practices:

Other QA practice Description When?
The tagging of the repository Every released Agilefant SW must be tagged in the repository. That action improves traceability. When the customer launches a release.
Common practices and terms Everybody (in Testarossa) understands the meaning of terms; what is a sprint, who is a scrum master, sprint is finished when the demo has been kept, what is my role and my resonsibilities etc. All the time within the project.
Bug/defect follow up All bugs and defects must be documented. If Testarossa finds a new bug/defect -> that must be added to the the bug/defect list. If bug/defect is fixed&tested&verified -> that bug/defect must be removed from the bug/defect list. An every bug/defect has priority how serious it is. All the time within the project.

The following table announces produced material and when it's produced for other QA practices:

Other QA practice Produced material When?
The tagging of the repository A release note. When the customer launches a release.
Common practices and terms None None
Bug/defect follow up Bug/defect (plus priorities) lists When changes&updates are needed in bug/defect lists

Other QA practices help to achieve quality goals "There are no problems which block usage in releases", "SW Development for future SW groups is easier" and " Agilefant SW maintains current portability".

 5.2.2.15 Quality palette

The following quality palette summarizes this QA plan:

  Quality goals            
QA practice There are regular releases in every sprint There are no problems which block usage in releases The User Interface has common view and behavior SW Development for future SW groups is easier Agilefant SW maintains current performance Agilefant SW does not loose users's data Agilefant SW maintains current portability
Scrum x            
Feature freeze week before release   x          
Definition of done x x          
Testing   x     x x  
Creating of automatic unit tests   x   x      
Test-Driven Development   x   x      
QA Practice Prioritization x            
Pair programming   x          
Reporting       x      
Code/document/test case reviews x x          
Coding standard       x      
Retrospective x x x x x x x
Collecting continuous feedback from the customer     x        
Other QA practices   x   x     x

5.2.3 What hardware, software and test environments are needed?

Hardware, software and test environments must be equal in the customer and Testarossa. That way the behavior of the SW can be
ensured; if Testarossa does not detect any defects/bugs with a certain test set -> the customer does not detect any defects/bugs as well.

The following is copied from Project Plan (5.3 Tools) http://www.agilefant.org/wiki/display/TSR/Project+Plan

Summary of all tools used. Mention version numbers and availability information, if relevant to the project. Description of all development and test environments that are needed; both software and hardware environments.

  • Eclipse (Java development tool), version ?.
  • Tomcat (web server), version ?.
  • MySQL (SQL server), version ?.
  • Hibernate (object/relational persistence and query service), version ?.
  • ANT (scripting language), version ?.
  • Mantis (Bug Tracking)
  • FishEye (Used for subversion repository viewing and code reviews)
  • SVN (Version management)
  • Bamboo (Continuous Integration server, runs all unit tests when committing in the subversion repository)

The main operating system is Windows XP but some test cases must be run in Linux environment.

5.2.4 How the information gained from using the QA practices is utilized?

5.2.4.1 Iteration demos

Testarossa has to convince the customer that Agilefant SW meets the customer's requirements. Testarossa has to show test cases
and prove that Testarossa has tested Agilefant SW enough and test cases are adequate.

5.2.4.2 The usage of QA metrics

Testarossa has to use QA metrics; how many defects/bugs found, how many defects/bugs found after regression tests, what is the coverage of testing,
how many test charters have been driven against the total number of test charters, how many testing rounds have been driven, how many defects/bugs after each testing round etc.
Testarossa has to show this way that there is progress in the project.

5.2.4.3 Education

If either the customer or Testarossa feels there is no information enough for quality purposes then education must be kept.

5.3 Tools

Summary of all tools used. Mention version numbers and availability information, if relevant to the project. Description of all development and test environments that are needed; both software and hardware environments.

  • Eclipse (Java development tool), version ?.
  • Tomcat (web server), version ?.
  • MySQL (SQL server), version ?.
  • Hibernate (object/relational persistence and query service), version ?.
  • ANT (scripting language), version ?.
  • Mantis (Bug Tracking)
  • FishEye (Used for subversion repository viewing and code reviews)
  • SVN (Version management)
  • Bamboo (Continuous Integration server, runs all unit tests when committing in the subversion repository)

Testarossa develops Agilefant in a Windows XP machine.

5.4 Standards

No notable standards are used.

6. Phasing

Because our project is agile development project (scrum) we don't simply divide it to planning/implementation phases. Each iteration is divided into multiple development sprints. Each sprint contains planning, development and customer demo. In the following we have described project schedule, goals and deliverables.

6.1 Schedule

In this schedule are approximated dates (date and time of team meeting can be changed) for major events in project. Dates of deadlines and durations of main phases in project (iterations divided into "sprints").

Pre-project (5.9-19.9)

Fr 5.9 Topic proposals published (don't contact customers before 16.9.)
We 10.9 DL 13:00SE experts are published
Fr 12.9DL 13:00Forming of SE expert trio
Tu 16.9 Presentation of the topics (Customers)
Fr 19.9 DL 13:00Recruitments of developers

Project - planning (23.9. - 22.10.2008)

Tu 23.9 Lecture - "Development process framework"
Th 24.9 Meeting with customer.  Project started.
Tu 30 Team meeting.
Fr 3.10 DL 11:00Iteration
Tu 7.10 EES 17:00-18:45 Project managers

13.10.2008 - 23.10.2008   Sprint 1: Warm-up 

Tu 7.10  Team meeting 19.00
9.10 Mentor meeting 17.30-19.00
Tu 14.10. EES 17:00-18:45 QA managers (requirements engineering) , Team meeting 19.00
Mo 20.10.  DL 11:00 Delivery of documents
Tu 21.10 Team meeting 18.00
Tu 21.-22.10 Iteration demos

Implementation 1 (23.10. - 10.12.2008)

24.10.2008 - 29.10.2008 Sprint 1.5 : Dev

Fr 24.10 Team meeting with customer, Sprints 1.5 and 3 planning
Tu 28.10 Team meeting, sprints 3 planning 16.00
We 29.10  1.5 releases delivery to customer DL 12.00 

27.10.2008 - 14.11.2008 Sprint 2: Dev

Tu 28.10 Team meeting 16.00
Fr 31.10 DL 11:00 Iteration plan + QA
Fr 7.11 Sprints 2 items are coded testing begins
Tu 11.11 Team meeting 16.00
Th 13.11 Delivery "Release 2" to customer  

17.11.2008 - 10.12.2008 Sprint 3: Dev

Tu 18.11Team sprints 3, planning 16.00
Tu 25.11 Team meeting 16.00
Mo 1.12 Sprints 3 items are ready testing begins
Tu 2.12 Team meeting 16.00
Fr 8.12 Delivery of new release to customer, DL 11:00 Delivery of documents,  Team meeting 16.00 planning and reviewing demo
Tu 9.-10.12  Iteration demos
Tu 16.12 Team meeting, 4,5 iteration planning 16.00

16.12.2008 - 9.1.2009 Sprint 4: Holidays

Implementation 2 (9.1. - 4.3.2009)

9.1.2009 - 30.1.2009 Sprint 5: Dev

Tu 9.1 Team meeting 16.00
Tu 20.1 DL 11:00 Iteration plan + QA plan
Tu 23.1 Team meeting 16.00
Tu 30.1 Team meeting 16.00

2.2.2009 - 20.2.2009 Sprint 6: Dev

Tu 2.2 Team meeting 16.00
8.2 Demo to the customer and mentor (show visible progress)
Tu 9.2 Team meeting 16.00
Tu 16.2 Team meeting 16.00
Fr 20.2 DL 11:00 Deliver the final system and testing guidelines
23.2.2009 - 4.3.2009 Sprint 7: Finalize

Mo 23.2 EES 16:15-18 Project managers 9.00 Team meeting
Tu 24.2 DL 11:00 Report the peer testing results to the peer group, EES 16:15-18 QA managers
We 25.2 EES 16:15-18 Architects
Tu 30.2  Team meeting 18.00
Mo 2.3 DL 11:00 Delivery of documents
Tu 3.-4.3 Iteration demos

Post project

Tu 10.3 16:15 - 20:00 Quality award ceremony + dinner

6.2 Project Planning

   Our goals for this project plan phase are little bit different than most of the groups because our software is already "ready" and our job is to make it better. This means little less planning and little more developing and testing the software in this first phase
Another thing is that we are encouraged to use agile software development methods so we don't have any specific planning phase or developing phase. Both the plannig/documenting and developing goes hand in hand through out the entire project and because of the agile methods our goals will be modified depending on our success in each iteration.
Here the list of main goals that need to achieve.

Goals:

               - Understand domain of the project.

              - Divide responsibilities/tasks between group members

              - Every group member should understand domain of own task

              - High visibility of progress for team members and customer.

              - Using "Agilefant"- software as tool for project management

              - Weekly team meetings

             - Setting up the development environment

            - Learning the technologies

           - Learning the agile methods, especially Scrum

             - Getting familiar with the "Agilefant"- software

             - Study the old code and structure of the software

            - Setting up the communication channels and practices

            - Get to know the project stakeholders

            - Do the warm up tasks and start developing

Deliverables.

- project plan (except ch. 5.2 QA Plan)
- requirements document
- progress report

Information on related to tasks

1. Setting up working facilities

. Development machines and servers (15h)

. Software (25h)

2. Planning of methods and processes to be used and communicating those to all stakeholders (20h)

. Development process: Scrum

. Tools and methods of communication

 . Inside team

 . Between customer and team

3. Architecture planning (10h)

4. Documenting and reviewing customer needs and requirements (30h)

5. Teaching sessions on: (20h)

. Technologies and tools to be used

. Scrum

. Testing and quality assurance methods and tools

6. Project plan (15h)

 7. Testing processes and tools with warm up tasks (63h)

. Select all backlog items -button

. Multi-attaching themes to BLIs

. Unactivated and not-selected themes not shown in BLI's Themes-tab

. Created date to BLI

. Creator info to BLI

. Save & Close -buttons to BLIs

. Theme Delete button to edit theme tab

. Theme - Backlog Item tab - sorting

. Text fix to iteration metrics completed => done

. Spent effort -tab for Project list (in product page)

. Roadmap default timescale to 1 year

. Total load text drawn with the same color as load meter

. Not-in-project BLI Responsibles in red

. Empty backlog causes weird burndown

. User details in Daily Work

. Last modified date to BLI

. Spent effort logging for iterations

 Task priorities

1. Critical

2. High

3. Medium

4. Medium

5. High

6. Medium

7. Medium

6.3 Implementation 1

Goals

-Improve communication and software engineering process with respect of first iteration results
-Items are ready for testing 1 week before release delivery (for executing testing activities).
-Deliver documents required documents (see "Deliverables")
-Deliver 1.5, 2, 3 releases (do backlog items of sprints 1.5, 2, 3)

Deliverables

Software Documents
Release 1.5 (24.10.2008 - 29.10.2008)
1)       Multi-attaching themes to BLIs
2)        Unactivated and not-selected themes should not be shown in BLI's Themes-tab  
    
-updated project plan (6.1,6.3,5.2)
Release 2 (29.10.2008 - 14.11.2008)
1)      Text fix to iteration metrics completed => done
2)      Save & Close -buttons to BLIs
3)      Tag themes while creating a backlog item
4)      Created date to BLI
5)      Creator info to BLI
6)      Roadmap default timescale to 1 year
7)      Delete button to edit theme tab
           
-updated requirements document
-test cases
Release 3 (17.11.2008 - 10.12.2008)
1)       All items that are not were not successful in releases 1.5 and 2
2)       Set of new backlog items: 
           -Devision BLI to child BLIs: structure tree HTML prototype
           -BLIs Priorization HTML prototype     


  •                              
-QA report and test log
-progress report

Tasks

Improve process

-         IRC - sessions mo, we, fr at 10.00
-         Weekly meetings Tu at 16.00
-         Wiki, Google calendar for all end points
-         Customers involvement to process (panning, technical support, IRC - sessions)
-         Improve teamspirit

Write and deliver documents

-         Update project plan (6.1,6.3,5.2, actual effort)
-         Update requirements document
-         Write test cases
-         Do QA- and progress- report slides

Do all chosen  backlog items and deliver 3 releases with next new features

-      Multi-attaching themes to BLIs
-      Unactivated and not-selected themes should not be shown in BLI's Themes-tab
-     Text fix to iteration metrics completed => done
-     Save & Close -buttons to BLIs
-     Tag themes while creating a backlog item
-     Created date to BLI
-     Creator info to BLI
-     Roadmap default timescale to 1 year
-     Delete button to edit theme tab
-     Devision BLI to child BLIs: structure tree HTML  prototype

-     BLIs Priorization HTML prototype

-     Define libraries and possabilities to implement prototypes

Demonstrate our progress in project
-     Progress demo (process report, backlog items demo)
-     QA report


6.4 Implementation 2

See above.

7. Risk log

Describe here the major risks.

Table 4: Risk log (Propability 1=lowest, 3=highest, Severity 1= lowers, 3=highest).

ID Risk Prop. Sev. Effects Controlling actions Responsible
1 A developer quits in the middle of the project. 3 2
Crucial knowledge is lost.Project scope must be decreased. Taking care of good team spirit. (avoiding)The development work of critical parts is done using pair programming. (minimizing effect) Project manager
2 Communication between team fails
1 3 Team spirit go down and knowledge transfer fails
Working together as much as possible
All team members
3
Communication between team and customer fails
1 3 Team might produce code not valuable to the customer
Working at our office near the customer as much as possible
Project manager, all team members
4 Team makes bad architectural choices
2 3 Developing the system will become extremely difficult
Discussing critical architectural choices with the customers technical adviser
Architect

References

Last years projects plan with the same scope : http://www.soberit.hut.fi/T-76.4115/08-09/projects/index.html

Plan template: ttp://www.soberit.hut.fi/T-76.4115/08-09/instructions/template/project_plan.html 

Powered by a free Atlassian Confluence Open Source Project License granted to Agilefant. Evaluate Confluence today.
Powered by Atlassian Confluence 2.7, the Enterprise Wiki. Bug/feature request - Atlassian news - Contact administrators