t-76.4115/5115 software development project i/ii course overview 11.9.2007 jari vanhanen...
TRANSCRIPT
T-76.4115/5115 Software Development Project I/II
Course Overview 11.9.2007
Jari Vanhanen
Ohjelmistoliiketoiminnan ja –tuotannon laboratorio
Software Business and Engineering Institute
Personnel
http://soberit.hut.fi/T-76.4115/
email: t764115###soberit.hut.fi
news://news.tky.hut.fi/opinnot.tik.ohjelmatyo
Contents
Introduction motivation educational goals
Project topics Support to the projects
software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Substituting T-76.115
Motivation - Software Development Scenario 1
Small software Developed alone As a passionate hobby For the own needs of the developer No major consequences of bugs No schedule pressure No limitations on effort usage Software will be maintained by nobody or the developer himself
Motivation - Software Development Scenario 2 Large software Developed by a team Developers’ daily work Used by many different users Software is done for a paying customer Every work hour costs money Management wants to follow the project Strict schedule and budget Bugs may cause serious consequences Maintained by others
What needs attention in this scenario?
Motivation - Software Development Scenario 2 Large software (complexity, architectural design) Developed by a team (communication, coordination, team spirit) Developers’ daily work (motivation) Used by many different users (understanding real needs) Software is done for a paying customer (accountability) Every work hour costs money (efficiency, prioritization) Management wants to follow the project (visibility, risks) Strict schedule and budget (predictability) Bugs may cause serious consequences (quality, proof of quality) Maintained by others (maintainability, documentation, training)
Course = Project Work
Groups of 7-8 students Real customers with real topics Duration about 5 months
25.9.2007 – 5.3.2008
Required effort 150h/person (6p) ~10-15h/week
Roles
Project group students, who develop the software
Customer provides the topic and requirements for the system to be built helps with technical issues
this may be another person(s) from the customer organization takes the responsibility of the system after the project
Mentor helps with the working methods ensures the fulfillment of the educational goals course personnel
Goals of the Different Stakeholders
Customer
•getting software that solves their problems
•getting experiences of technologies and working methods
•learning the customer role in an IT-project
Mentor
•ensuring the fullfillment of educational goals
•checking the compliance to the mandatory work practices
•teaching the group
•ensuring that the project succeeds as well as possible
Project group
•learning about software engineering
•learning about X
•fame from producing great software
•good grade from the course
Project
Roles in the Project Group
Software engineering (SE) experts (3/group)
T-76.5115/4115 students responsibility of a SE area
project manager QA manager architect
Developers (4-5/group) T-76.4115 students programming low level design testing and other QA tasks assistant to some SE expert
SE Expert Roles
Project manager planning and coordinating the project monitoring and controlling the project motivating the team
QA manager requirements engineering customer relationship planning and controlling QA active participation to performing QA
Architect architectural design supervising the developers active participation to development
An expert takes responsibility but others participate.
Roles overlap!
Prerequisites
T-76.5115 (Project II) T-76.4115 (mandatory) all SoberIT’s SE courses
T-76.4115 (Project I) T-76.601 Introduction to Software
Engineering (mandatory) T-76.611 Software Development Methods good programming skills
Try to get experience of all SE areas to your group!
Educational Goals (1/3)
Getting hands-on experience of a real, whole software project requirements engineering, design, programming, QA project management
Learning to apply good SE practices and tools try something new and analyze experiences understand the limits of practices and tools enlarge your SE toolkit
Learning state-of-the-art technologies
Educational Goals (2/3)
General academic skills management skills social skills presentation skills writing skills networking internationalization business thinking project work in general
The selected role affects what you learn.
Educational Goals (3/3)
After this course you should understand the challenges involved in commercial sw development be able to select good practices and tools for your future projects have learned many things applicable practically anywhere
Use this opportunity to learn something new!
In “real” projects you are often too busy to do that …
Contents
Introduction motivation educational goals
Project topics Support to the projects
software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Substituting T-76.115
Project Topics
From industry and HUT
Customers have prepared topics in advance
Software development projects secondary goals may include e.g.
technology reviews
Project scope flexible
Project Topics – Legal Issues
Intellectual property rights (IPR) open source customer gets IPRs
Nondisclosure agreement (NDA) some companies require this
Contracts prepared by HUT lawyers
HUT <-> companies HUT <-> students
Public documentation except code and technical specs if the customer requires NDA she
must review documents before publication
Participation fee for industrial customers
commitment course costs
Registration and Forming of the Groups
Register to the course DL We 12.9. 13:00 (Tomorrow!)
Teacher selects the SE experts immediately after the DL
SE experts form trios register a trio by sending e-mail to the teacher immediately after Fr 14.9 13:00, teacher forms trios of the remaining SE experts
SE expert trios recruite developers be quick! send e-mail to the teacher immediately when you recruite someone after Fr 21.9. 13:00 teacher assigns the remaining developers into groups
Project Topics – Selection Process
Customers present themselves and the topics Tu 18.9. 17:00-19
no contacting before that
SE expert trios apply for topics contact 2-4 customers “sell” your group to the customer
having good developers may help short CV of the group
Ensure the acceptability of the customer and the topic
her understanding of the domain her commitment to the project provided technical supervision provided infrastructure expected skills from the group
Say “yes” quickly get confirmation from the customer say no to other customers immediately inform the teacher
If all the customers say “no” contact new customers
If you are not sure, try another customer.
Project Topics – Selection Recommendations
Too easy a topic? boring no ”bonus” points in the
evaluation some less competent group
should get it
Too demanding a topic? unsatisfied customer when having a panic with
fulfilling customer’s goals the educational goals are typically forgotten first
What do you want to learn? domain technology getting to know a customer’s
organization
Project Topics – Proposals
Contents
Introduction motivation educational goals
Project topics Support to the projects
software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Substituting T-76.115
Software Process – Special Challenges (1/2)
Project is done for an external customer understanding the true (and changing) needs-> requirements engineering during the whole project-> managing customer’s expectations
Physical distribution often all stakeholders and group members physically distributed-> special care for communication and project visibility
Temporal distribution only one of several on-going ”projects” for all participants long duration, but only 10-15h of effort a week-> you can’t keep everything in your head-> documentation overhead
Software Process – Special Challenges (2/2)
New team and organization no existing development culture (process) all members do not know each other-> process must be planned from scratch and communicated to everyone-> team spirit
Software will be maintained by other people after the delivery the group is not responsible for the system -> involving the customer’s technical people early->knowledge transfer via training and documentation-> high code quality
Software Process – Framework
Process framework provided iterative and incremental
phasing and schedule fixed enforces certain good work practices and crucial documents allows lots of freedom (and responsibility) for customization
Software Process - Iterations
Software Process – Project Control Variables
Quality ”fixed” high quality recommended some alleviations to carefully selected quality aspects are allowed if that is
what the customer wants
Calendar time fixed project schedule defined by the course major control points such as iteration demos
Effort fixed 150h/person (+40h if substituting T-76.115 with T-76.4115 + T-76.5158)
Scope flexible adjusted depending on the groups’ skills and knowledge of the problem domain
Software Process – Details
Lecture on the software process framework on 25.9. 16-19
http://www.soberit.hut.fi/T-76.4115/07-08/instructions/process.html
Mentoring (1/2)
Purpose help the project succeed ensure enough focus on the educational goals
Meetings with the mentor in 3 mentor meetings in 3 iteration demos in 1-2 process reviews in some work sessions (customer meetings, code review etc.)
invitation from the group
Other forms of participation continuously observing the project
status reports, meeting memos, irc, … answering project related questions by e-mail evaluating the group in the end of iterations
points and comments
Mentoring (2/2)
Help the mentor help you! keep him up-to-date prepare for the mentor meetings invite him to some work sessions
increases visibility to work practices
Every project will face problems identify and solve them quickly ask help when needed
Mentor’s rough effort allocation per group ~1h for each meeting (*~10) ~4h for reading, grading and feedback in the end of each iteration (*3) ~3h/iteration (*3) for
observing the project answering e-mails preparing for mentor meeting
~30h TOTAL
Experience Exchange Sessions
Arranged for each SE expert role separately experts from SoberIT are present
Discussions about problems and good practices
Points in course evaluation for groups who prepare for the sessions send at least two topic proposals about
practical problems from your project innovative solutions to typical problems
prepare to present the topic shortly during the session
1-2 sessions per role scheduled if you find these useful more can be arranged later
Infrastructure
Hardware several computer classes at HUT Maarintalo has some group work rooms (http://www.hut.fi/atk/luokat/) SoberIT’s PC room A218 (in T-building)
8 Windows PCs (3.2 GHz)
Software Microsoft MSDN AA
licenses for students own computers, msdn (at) soberit.hut.fi Magic Draw Personal Edition 12.5 UML tool
licenses for students own computers servers maintained by SoberIT
Bugzilla – bug reporting MediaWiki – collaboration
Customer customer must provide other necessary hardware/software
Evaluation – General
Both the results and working methods are evaluated
Several evaluators customer & technical advisor
based on all available information ensure realistic expectations mentor ensures the objectivity of the evaluation
mentor based on everything he knows from the project mentor adjust his scale in evaluation meetings with other mentors
group members personal contribution of other group members
Evaluation – Final Course Grade
Total points = PP + I1 + I2 + EES + RESULTS
Scale from points to grades is published in the end of the course
Filling the course feedback form is a mandatory part of the course
Evaluation – Iterations (Customer)
Results and working methods
Manage customer’s expectations in iteration planning
Evaluation – Iterations (Mentor)
Focuses on work practices conformance to the mandatory practices
plan usage
use of other good work practices continuous process improvement visibility of use
show them to the mentor avoid unnecessary documentation
e.g. invite the mentor to some work sessions
Scale 8 fulfills some requirements
with distinction and at most a couple of minor complaints
7 meets requirements and at most some minor complaints
6 at most a couple of major or some minor complaints
4-5 some major or lots of minor complaints
2-3 several major complaints 0-1 virtually no results
Evaluation – Project’s Results
Customer compares to the original/updated
project goals manage customer’s expectations
in project planning and during the project
Mentor compares to typical projects on
this course difficulty of the project +/- a few
points
Evaluation – Personal Contribution
Each group member may evaluate each other's contribution raises and deductions of +/-5p at maximum
the sum must be 0p
Proposals can be sent privately to the mentor however, open discussion within the group is recommended
Mentor may change individual points based on these default is +-0p for everyone
If the group gets enough points for grade 5, deductions are discarded.
More Materials
Instructions http://www.soberit.hut.fi/T-76.4115/ (->Instructions)
Projects from the previous years (1995-2007) http://www.soberit.hut.fi/T-76.4115/07-08/projects/index.html
Contents
Introduction motivation educational goals
Project topics Support to the projects
software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Substituting T-76.115
Substituting T-76.115
Substituting T-76.115 requires T-76.4115 (6p) + T-76.5158 (2p)
T-76.5158 Special Assignment in SE: SEPA (2p, ~40h) make a SEPA (software engineering practice assignment)
requires ~15 hours of effort/person pair work
and spend 25h of additional effort for the project
SEPA - Scenario
The product development manager of your company has heard a lot from a new practice called X
He wants that you pilot the practice in your project provide him convincing evidence on the practice
What were the advantages and disadvantages of its use? What are its limitations, i.e. do you think it works in other slightly different
projects? What is your evaluation based on?
amount of usage data collection methods
SEPA – Content
1. Select and study a practice formulate a relevant SE problem and choose a practice that may be a solution as early as possible discuss the choice with the mentor
2. Deploy the practice how, when, by whom give guidelines or training document the deployment plan and e-mail it to the mentor
3. Use and improve the practice disciplined usage continuous improvement document changes to the usage
4. Collect data hard metrics and subjective experiences both about effects and usage information summarize findings in each iteration draw conclusions in the end of the project
Pass/fail evaluation
SEPA – Example: Pair Programming
Pair programming (PP)
read some papers about PP (use e.g. scholar.google.com)
plan the use list expected advantages/disadvantages in your project’s context who will use it, for what, how much, who work together? training
what is it?, how should we do it? define metrics (quantitative and qualitative)
effects of use compare PP and non-PP code, e.g., bugs, design quality metrics, productivity
(LOC/hour) measure the knowledge transfer within the group
amount of use % of coding time, % of LOC
use PP adjust the practice, if needed
collect data and report experiences
Your Feedback
We continuously want to improve the course!
Inform us immediately, if you see ambiguities in our instructions you have any suggestions for improving the on-going
course
Give feedback in the project final report
Fill the course feedback form after the course
Next 7 Days
Register immediately to the course Form the groups
SE Experts form a trio recruit developers
Developers try to get recruited into a SE expert trio
Read the topic proposals choose some favorites
Come to the topic presentation lecture on Tu 18.9. 17:00 Introduce your group to some interesting customers