T-76.115 Software Project, 5cr 2003-2004 Course Overview Jari Vanhanen Ohjelmistoliiketoiminnan ja tuotannon laboratorio Software Business and Engineering Institute (SoberIT) Contents Motivation Educational goals Roles Topics Software development process Supervision Grading Other practicalities Read the details from the Course overview document: http://www.soberit.hut.fi/t-76.115/03-04/ohjeet/course_overview.html 1
Motivation: A software development scenario An experienced guru coder develops software alone as a passionated hobby for himself without external time pressure with unlimited effort to use without major consequences of bugs without delivering the sw to be developed further by others This is NOT the scenario on this course! Motivation: Another sw development scenario Average sw developers develop software as a team as their daily work for an external customer who pays for the results where the management wants follow and control the project within a strict schedule and budget where every hour costs money where bugs may cause major consequences where the maintenance of sw must be successfully transferred to the customer s organization What should we pay attention to when we develop sw in this scenario? 2
Motivation: Another sw development scenario Average sw developers develop software (skills) as a team (communication, coordination, team spirit) as their daily work (motivation) for an external customer (understanding (changing) needs) who pays for the results (economic importance of the project) where the management wants follow and control the project (visibility, risks ) within a strict schedule and budget (predictability) where every hour costs money (efficiency, prioritization) where bugs may cause major consequences (quality, proof of quality) where the maintenance of sw must be successfully transferred to the customer s organization (maintainability, tech. documents, training) Educational Goals Getting hands-on experience of all aspects of a real-life software project specification, design, programming, testing project management, configuration management Learning to work with a real customer understanding the real needs Learning teamwork a large team needs good management in order to work efficiently Learning to use good sw engineering (SE) practices, methods and tools projects may be too small for some practices to become beneficial cost of learning, unnecessary bureaucracy projects are large enough to get a real experience of applying most practices analyzing experiences building a toolkit of practices and understanding when they are applicable 3
Educational Goals After this course you should be able to use good work practices and tools in a sw project have a toolkit to create an efficient process for your next sw project understand the challenges involved in developing commercial sw Use this opportunity to learn something new! In your real world projects you probably may not have time for that too often Participation Full year team project work group of 7 persons no examination 8-15.9. personal sign up max. 26*7 persons this should be enough to accept everyone to participate criteria for filtering 1. course not compulsory 2. T-76.601 not passed and no graduation before 5/2004 16-22.9. group sign up full group formed topic negotiated with a customer 4
Prerequisites Prerequisites T-76.601 Introduction to Software Engineering (mandatory) but if you have already similar skills, you can take 76.601 this fall describe your SE background shortly in the registration form T-76.611 Software Design and Specification Methods T-76.612 Software Project Management T-76.613 Software Testing and Validation T-76.614 Software Product Management general programming experience The lectures on this course only briefly summarize some topics of prerequisite courses refreshing your memory try to get experience of all SE areas to your group! Roles Steering group Customer problem and requirements special infrastructure Technical advisor helps in technical issues customer may take this role too Mentor helps in project management and working methods related topics course personnel Students Project group/ vendor developing the sw Project manager (from project group) planning and controlling the project probably does not have much time to participate in system development Customer and technical advisor Mentor Project group including project manager 5
Project Goals from Different Perspectives Project group learning new things producing great software (fame, money) passing the course good grade PROJECT Customer/technical advisor getting good software getting experiences of technologies and working methods learning the role of the customer in an IT-project Mentor/course Providing educational frameworkfor learning: comprehensive view of a wholesw project applying learned theories in practice using good SE practices, methods and tools (toolkit for future projects) working with a real customer working efficientlyas a team Team Work Good team spirit is a key success factor learn to know each others Assign the roles and responsibilities project manager (mandatory role) customer responsible, GUI responsible, designer, tester persons responsible of certain subsystems recycling the roles more comprehensive learning experience Agree on efficient communication and team work practices Preparing for personnel risks someone may leave the project The whole group is responsible of the project 6
Topics - Requirements From T -department, other HUT, and companies Reasonably well defined in advance Developing software is the most important goal for the project contains all phases of a sw project secondary goals may include e.g. technology reviews Appropriate difficulty and scope flexibility Public documentation Software can be demonstrated at HUT No direct salary is paid equality between groups compensations of giving the customer more rights to the results may be negotiated Participation fee for external customers commitment course costs Own topics real customer? grading? Topics Selection Process Form a group (7 persons) lectures, opinnot.tik.ohjelmatyo Topics published on the web 10.9. don t contact customers yet, Free topics presented 16.9. but, ask your questions here Pick 2-3 suitable topics not only the most popular ones difficulty has minor effect in grading too easy vs. too difficult a setting What do you want to learn? Contact customers after 16.9. negotiate skills, rights, supervision, hw/sw, work space wait for customer s decision Select quickly if you get several positive answers inform all contacted customers immediately of your decision Contact more customers if you start getting negative answers see topic list of available topics Sign up for the course 7
Topics - Rights to the Results Recommendation copyright to the group customer has the right to use the system for defined purposes The group and the customer may agree on other conditions customer s right to develop the system further conditions for commercial use non disclosure agreement (NDA) The rights must be tentatively discussed before selecting the topic a written contract must be made early in the project Legal rights to projects - document http://www.soberit.hut.fi/t-76.115/03-04/ohjeet/oikeudet_eng.html Software Process P rocess framework provided iterative and incremental too general to be used as such certain mandatory work practices and documents lots of freedom (and responsibility) for customization amount of bureacracy decreased agile perspective emphazised too lecture 23.9. http://www.soberit.hut.fi/t-76.115/03-04/ohjeet/process.html Project control variables effort and calendar time fixed 190h/person = ~8h/week/person major control points such as project reviews quality fixed at least good enough scope flexible clear priorities to scale the scope up/down Project Planning Implementation 1 Implementation2 Implementation 3 Delivery Iterative development Iteration planning Project reviews Documentation Use cases Defect tracking Time reporting Version control Coding conventions Risk management Testing 8
Average Effort Distribution in 2002-03 30,0 25,0 20,0 % 15,0 10,0 5,0 0,0 coding design testing documentation project man. meetings studying lectures infra More statistics from 1995-2003 at http://www.soberit.hut.fi/t-76.115/03-04/raportointi/index.html Personal SE Assignment Encouraging everyone to learn about good SE practices Assignment steps 1. Select and learn a practice see Recommended practices 2. Plan and manage the adoption and use 3. Use and improve the practice 4. Report experiences Evaluated individually steps 1+2, 0-5 points (I1 iteration) steps 3+4, 0-5 points (DE iteration) Example: Pair programming (PP) read papers from http://www.pairprogramming.com plan the use training who/all on which modules/type of work/occasions forming/cycling the pairs list expected advantages/disadvantages measures, e.g. amount of use (% of programming time, LOC) comparison of PP and non-pp code use PP bugs design quality metrics productivity (LOC/hour) knowledge transfer in the group adjust the practice, if needed report experiences developer s subjective feelings measures 9
Supervision and control of the Projects Project manager daily management Customer/technical advisor regular meetings and other communication more important early in the project content of the project technical issues grading Mentor see the next slide Supervision and control of the Projects: Mentor The purpose of mentoring help the project succeed guide the use of good SE practices discuss the details about the course and exceptions to course requirements Mentor participates in 5 mentor meetings in 5 project review meetings by giving points and feedback in the end of iterations by continuously observing the project status reports, time reporting by answering team s e-mails Allocated effort for mentor ~1h/meeting (*10) ~4h for reading material and grading in the end of each iteration (*5) ~2h/iteration for (*5) observing the project answering e-mails preparing for mentor meetings Help the mentor help you! keep him up-to-date prepare for mentor meetings every project will face problems and do mistakes, but learn from them 10
Evaluation Iterations customer/tech. advisor focuses mainly on delivered sw and tech. documents mentor focuses on used work practices selection, use, learning mandatory course requirements Personal SE assignment mentor evaluates Project s end results customer compares to his project goals mentor compares to average projects on this course Customer Mentor TOTAL Iteration: Project planning 6 4 10 Iteration: Implementation 1 6 4 10 Iteration: Implementation 2 6 4 10 Iteration: Implementation 3 6 4 10 Iteration: Delivery 6 4 10 Personal SE assignment 0 10 10 Project's end results 20 20 40 TOTAL 50 50 100 11
Evaluation - End results Customer (end results) Mentor (end results) 17-20 Exceeds expectations expressed by customer. 17-20 Exemplary Exemplary! 13-16 Fulfills goals of customer, or goals pared down to in 13-16 Up to par accord with customer over course of project 9-12 Fulfills only the most important goals of customer 9-12 Project a slight failure. 5-8 Severe shortcomings 5-8 Severe shortcomings 0-4 Unsatisfactory 0-4 Unsatisfactory Evaluation - General Unified grading between groups the customer must give a reasoning behind his points to the mentor mentors have a grading meeting Scale published in the end of course ~50 points required to pass the course 12
Hardware and Software All computer classes at HUT A218 Maarintalo has some group work rooms (http://www.hut.fi/atk/luokat/) 14 Windows 2000 computers Office 2000, MS Visual Studio 6, J2SDK, Rational Rose Enterprise, Rational Test Studio,... Customer customer must provide other necessary software some customers may provide additional computers, rooms, etc. negotiate when selecting the topic Course time reporting (Trapoli) bug reporting (Bugzilla) document delivery (webcopy) Schedule See the web page http://www.soberit.hut.fi/t-76.115/03-04/schedule.html Next steps 10.9. Topics published on the web please, do not contact customers yet 15.9. 15:00 personal sign up 16.9. 17:00-19:00 Customers present topics 22.9. 15:00 group sign up e-mail to t76115@soberit.hut.fi before the dl, if you need more time 13
Personnel Responsible professor Casper Lassenius Responsible teacher Jari Vanhanen Mentors (researchers/senior students ) Kristian Rautiainen Mika Mäntylä Jari Vanhanen Cemo Timucin Tapani Aaltio Joonas Iivonen Seppo Sahi Johanna Tikkala Pietu Pohjalainen Kennet Westerdahl Lauri Auronen Markus Rautopuro Course homepage http://soberit.hut.fi/t-76.115/ Teacher s e -mail t76115@soberit.hut.fi Course information news://news.tky.hut.fi/opinnot.tik.ohjelmatyo course home page (News) More Information Instructions http://www.soberit.hut.fi/t-76.115/ (->Instructions) Projects from previous years (1995-2003) http://www.soberit.hut.fi/t-76.115/03-04/palautukset/index.html 14
Your Feedback We continuously want to improve this course! Inform us immediately, if you see ambiguities in our instructions some instructions are missing you have any suggestions on improving the course t76115@soberit.hut.fi listens to you! There will be a mandatory course questionnaire on the web after the course 15