Upload
conrad-skinner
View
213
Download
0
Embed Size (px)
Citation preview
T-76.4115/5115 Software Development Project I/II
Course Overview 8.9.2009
Jari Vanhanen
Ohjelmistoliiketoiminnan ja –tuotannon laboratorio
Software Business and Engineering Institute
Contents
Introduction motivation educational goals
Project topics origin legal issues selection
Support to the projects software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
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 system 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 system (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-9 students Real customers with real topics Duration about 5 months Required effort 27h/study point
e.g. 6p = 162h >10h/week
Course Versions
T-76.4115 size
8p , for substituting old T-76.115 6p, default 5p, enough for certain study modules
role developer or SE expert
T-76.5115 size
6 or 8p, depending on study module role
SE expert T-76.4115 must have been already passed
Project Stakeholders
Project group students, who develop the software
Customer 1 or several persons from the customer organization provides the topic and requirements for the system to be built often can also help with technical issues takes the responsibility of the system after the project
Mentor course personnel observes and helps with the working methods ensures the fulfillment of the educational goals
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
•supporting the group
•ensuring that the project succeeds as well as possible
Project group
•learning about software engineering and related topics
•good grade from the course
•fame from producing great software
Project
Roles in the Project Group
Software engineering (SE) experts 3 per group T-76.5115/4115 students responsibility of a SE area
project manager QA manager architect
Developers 4-6 per group T-76.4115 students participate in
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 everyone may participate in
all kind of tasks.
The group may tune the responsibilities of each role, and switch roles between members.
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 project topics often require using and studying the latest technologies
Educational Goals (2/3)
Learning various 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 about software engineering!
In “real” projects you are often too busy to do that …
Contents
Introduction motivation educational goals
Project topics origin legal issues selection
Support to the projects software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Project Topics
Proposals collected from TKK and industry
Lots of alternatives
Software development projects secondary goals may include e.g. technology reviews
Project scope flexible
Project Topics – Legal Issues
Intellectual property rights (IPR) open source, or customer gets IPRs
Non-disclosure agreement (NDA) some companies require this
Public documentation except code and technical specs if NDA required, customer must
review materials before publication
Participation fee for industrial customers
commitment course costs
Contracts prepared by TKK lawyers
TKK <-> companies TKK <-> students
Registration and Forming of the Groups
Register to the course by We 9.9. 13:00 (Tomorrow!)
Teacher selects the SE experts on We 9.9. 13:00 2-3 more chosen than really needed last ones without a trio are assigned to developers
SE experts form trios register a trio by e-mail to the teacher immediately after Fr 11.9. 13:00, teacher forms trios of the remaining SE experts
SE expert trios recruite developers send e-mail to the teacher immediately when you recruite someone after Fr 18.9. 13:00 teacher assigns the remaining developers into groups
Optimal group composition:
seniors and juniors, common work times possible, similar interests regarding topics and technologies, broad coverage of SE courses passed
Project Topics – Selection Process
Customers present themselves and the topics Tu 15.9. 17:00-19
no contacting before that
SE expert trios apply for topics contact 2-4 customers “sell” your group to the customer
short CV of the group having good developers may help
Ensure that the customer is committed to the project understands the domain appreciates the educational context provides needed infrastructure doesn’t expect skills that the group
doesn’t have or cannot acquire quickly
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
What do you want to learn? domain technology getting to know a certain customer’s organization
Too easy a topic? boring no ”bonus” points in the evaluation
Too demanding a topic? unsatisfied customer fulfilling customer’s goals may take too much focus away from other
educational goals of the course
Project Topics – Proposals
Contents
Introduction motivation educational goals
Project topics origin legal issues selection
Support to the projects software development process mentoring experience exchange sessions hw/sw infrastructure evaluation
Software Process – Framework
Process framework provided iterative and incremental
phasing and schedule fixed enforces certain good and educational work practices and documents allows lots of freedom (and responsibility) for customization
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 if no common workplace and time for project stakeholders-> 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
… new technologies, inexperienced managers or developers, multicultural teams, …
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 really wants (prototype projects)
Calendar time fixed project schedule defined by the course major control points such as iteration demos
Effort fixed 27h/credit/person
Scope flexible adjusted depending on the groups’ skills and knowledge of the problem domain
Software Process – Details
Lecture on the software process framework on Tu 22.9. 16-19
Every student in any role should read all process framework materials in the beginning of the project
http://www.soberit.hut.fi/T-76.4115/09-10/instructions/process.html
Mentoring (1/2)
Purpose help the project succeed ensure enough focus on the educational goals
Meetings with the mentor in 3 iteration demos in 3 mentor meetings 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 (*~9) ~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 (EES)
Discussion on problems and good practices related to a certain SE theme project management, RE, QA, architecture&development
Participants 1-2 students per group, those who are responsible of the EES’s theme teacher and some guest experts
Content students should propose topics 24h before each session
practical problems and/or innovative solutions from your project teacher prepares an agenda
each topic is introduced shortly by one proposer before discussion
Sending 2 proposals and participating to EES gives 0,5p to the group an essay is an alternative for English speaking students
8 sessions: 3 for PMs, 3 for QA managers, and 2 for architects
Evaluation – General
Both the results and working methods are evaluated
Several evaluators customer
based on all available information mentor ensures the objectivity of customers’ evaluation
mentor based on all available information mentor adjust his scale in evaluation meetings with other mentors
group members may evaluate personal contribution of other group members
Evaluation – Course Grade
Points are given both during and after the project in the end of each iteration
Scale from points to grades is published in the end of the course
Filling the course feedback form by the given DL is mandatory
Evaluation – Iterations (Customer)
Focus on iteration’s results but working methods are
considered, too
Manage customer’s expectations in iteration planning
Evaluation – Iterations (Mentor)
Focus on work practices Conformance to the mandatory
practices (educational goals) plan and usage
Intelligent process customization use of any other good work practices continuous process improvement
Visibility to work practice 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
Mentor compares to typical course
projects +/- a few points based on
project’s difficultymanage customer’s expectations in the beginning and during the project
Evaluation – Personal Contribution
Each group member may evaluate each other's contribution raises and deductions of +/-1 grade, but the sum must be 0
Proposals can be sent privately to the mentor however, open discussion within the group is recommended
Mentor may change personal grades by +/-1 based on proposals
If the group gets enough points for grade 5, deductions are discarded.
Infrastructure
Hardware several computer classes at TKK Maarintalo has some group work rooms (http://www.tkk.fi/atk/luokat/)
Software Microsoft MSDN AA
licenses for students own computers accounts sent to all registered students info: msdn (at) soberit.hut.fi
Magic Draw Personal Edition UML tool licenses for students own computers
TKK wiki, CVS, subversion, …
Customer must provide other necessary hardware/software
Personnel
Other parties several teachers and researchers from
SoberIT computer administrators from SoberIT Accenture
Teachers email t764115#soberit.hut.fi
More Materials
Course homepage(s) https://noppa.tkk.fi/noppa/kurssi/t-76.4115/etusivu http://soberit.hut.fi/T-76.4115/
Course Instructions http://www.soberit.hut.fi/T-76.4115/
Projects from the previous years (since 1995) http://www.soberit.hut.fi/T-76.4115/09-10/projects/index.html
Newsgroup for students http://news.tky.fi/thread.php?group=opinnot.tik.ohjelmatyo
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 Seven Days
Register immediately to the course Form a group
SE Experts form a trio (here, today?) recruit max. 3 developers
Developers try to get recruited into a SE expert trio
Read the topic proposals choose some favorites
Come to the topic presentation lecture next Tuesday 17:00 Introduce your group to some interesting customers (group’s CV)