Software Engineering Teams James Gain

Slides:



Advertisements
Similar presentations
Management, Leadership, & Internal Organization………..
Advertisements

Lecture 2 Team Coordination 1 ICS 126 Team Coordination Team Formation and Organization Group Management Meeting Techniques Large software systems require.
©Ian Sommerville 2000 Software Engineering, 7th edition. Chapter 25Slide 1 Managing people l Managing people working as individuals and in groups l People.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
1 Teams Xiaojun Qi. 2 Team Organization Suppose that a product can be accomplished by 1 person-year of programming. If this product must be completed.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
7 Chapter Management, Leadership, and the Internal Organization
The Human Side of Project Management
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Software Configuration Management
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Teams.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Project Management Software Projects – factors that influence results: –size –delivery deadline –budgets and costs –application domain –technology to be.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
1 Chapter 3 Project Management. 2 The 4 P’s  People — the most important element of a successful project  Product — the software to be built  Process.
1 Project Management CIS 375 Bruce R. Maxim UM-Dearborn.
PROJECT MANAGEMENT CONCEPTS & TEAMS
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
CHAPTER 4 TEAMS.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
2.1 and 2.1 Management Structures. Introduction A management structure is a term used to describe the ways in which parts of an organisation are formally.
Teamwork to Improve IT Productivity Dr. Chung Lee VP, Professor of CS Huree ICT University.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Chapter 3 Project Management Concepts
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Software Project Management By Deepika Chaudhary.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
Project Management Concepts 1. What is Project Management? Project management is the process of the application of knowledge, skills, tools, and techniques.
Lecture 16: Chapter 24 Project Management Concepts
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Managing people Managing people working as individuals and in groups People are an organisation’s most important assets 1.
CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses.
Software Engineering Summary James Gain
Project Management Concepts By: Sohaib Ejaz Lecturer,UoS.
Slide 4.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Slide 4.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
4.1/62 TEAMS 4.2/62 Overview l Introduction, l Democratic team approach, l Classical chief programmer team approach, l Beyond chief programmer and democratic.
Chapter 8 Management, Leadership, and Internal Organization Learning Goals Define management and the skills necessary for managerial success. Explain the.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
PRJ566 Project Planning and Management Teamwork 1.
UNIT IV JOB CHALLENGE. DEFINITION According to McCauley et al, “Job challenge is being in dynamic setting with problems to solve and choices to make under.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2010 Stephen R. Schach
Project Management Why do projects fail? Technical Reasons
Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation.
Team working in distributed environments M253 Team Organization Faculty of Computer Studies Arab Open University Kuwait Branch 2/17/20161 Kuwait Branch.
INTRODUCTION: Project management involves the planning, monitoring, and control of the people, process, and events that occur as – software evolves from.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
PROJECT MANAGEMENT Software Engineering CSE
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Configuration Management
Lecture 3: Organizing Teams
Management, Leadership, and the Internal Organization
Management, Leadership, and the Internal Organization
Software Engineering Project Management.
Extreme Programming.
Presentation transcript:

Software Engineering Teams James Gain

Objectives 1.Point out Common Problems with Team Structures in Software Engineering 2.Describe a variety of team structures:  Democratic  Chief Programmer  Modified Chief Programmer  Synchronize and Stabilize  Extreme Programming 3.Present a categorisation of teams

Teamwork Problems lMost software is too large or complex to be developed by an individual  a team is born! lThe Nature of Tasks: 1.Shared e.g. strawberry picking  Can be done in parallel. Four people on the job gets it done in 1/4 the time 2.Individual, e.g. pregnancy  Can only be done in serial. Nine women cannot produce a baby in one month 3.Combination, e.g. software implementation  Coding can be done separately but requires communication for integration

Communication Explosion lAssume everyone in a team of n people communicates with everyone else lNumber of communication paths = 0.5  n  (n-1)

Democratic Teams lRequires Egoless Programming:  Coders not too attached to their code  Needs an atmosphere of cooperation  Bug finding is given a positive spin l10 Egoless Programmers = A Democratic Teams lEveryone is equal and the team is self-organizing lThere is no appointed leader  Goes against conventional management wisdom lGroup theory suggests it will work well for complex problems

Chief Programmer Teams lModelled on Surgical Teams: A hierarchy is used to overcome communication explosion, specialization to improve productivity lA chief programmer teams of 6 people reduces communication links from 15 to 5 lRoles:  Chief Programmer: designs the architecture; codes complex classes; overall manager  Back-Up Programmer: takes over if needed; designs tests  Librarian: maintains code base and documentation; runs tests Chief Programmer Programmer Libra- rian Back- up Programmer

Chief Programmer Track Record lResults from Initial Test Project were extraordinary:  New York Times automated clipping file  83,000 LOC in 22 months (=11 person-years)  Half the modules ( LOC each) were correct on first compilation  File Maintenance component operated 20 months without a single fault lBut no comparable wild success stories since lBecause the Chief Programmer (Terry Baker) was one of a breed of super-programmers

Problems with the Chief Programmer lGood Chief Programmers are rare:  Intersection set of highly skilled programmers and successful managers lBackup Programmers are even more rare:  As capable as the Chief Programmer but prepared to accept a lower salary and subordinate position lLibrarians are also difficult to find:  Who wants to do nothing but paperwork all day lAlso Doesn’t Scale Well

Modified Chief Programmer Teams lSplit Chief Programmer into:  Team Leader (technical issues)  Team Manager (non-technical management issues) lCarefully separate responsibilities to avoid conflicts of interest lBut there may be some areas of overlap (e.g. annual leave) lCan be scaled with layers of leaders Team Manager Team Leader Programmer

Synchronize and Stabilize Teams lMicrosoft model; successful for very large projects  More than 3000.dev and.test worked on Windows 2000 lSmall parallel teams of 3-8 developers and 3-8 testers lIndividuals allowed latitude to design and implement a spec but:  Code must be integrated on a daily basis  If your code prevents compilation then it must be fixed immediately lBut Microsoft is more than Synchronize and Stabilize. Their success is based on a strong corporate culture

Extreme Programming Teams lBased on Pair Programming:  Spreads knowledge  Brings less experienced programmers up to speed lEvidence in Favour:  From Williams et al. “Strengthening the Case for Pair Programming” IEEE Software  Subject were students at the University of Utah doing an Advanced Programming course  By the end pairs took 60% of the time to do the same programming task as individuals BUT  Passed 94% of test cases rather than 78%  Pair programming improved job satisfaction and overall confidence

Exercise: Choosing a Team Structure lProblem: As a project manager you must choose a team structure for the following projects: 1. A quantum computing project with 5 researchers. There is no strict deadline. If successful this team will remain intact for later projects 2. A payroll system for a mining company. This has a work estimate of 30 person-years and must be delivered according to a very strict 10 month deadline lSolution: 1. Small size, high difficulty, long team lifetime = Democratic or Extreme Programming 2.Medium size, low difficulty, strict delivery date = Modified Chief Programmer

A Categorisation of Team Structures lDemocratic Decentralized (DD):  No permanent leader; decisions are made by group consensus  Communication and control are horizontal lControlled Decentralized (CD):  A leader coordinates tasks; Problem solving remains a group activity  Communication is horizontal and control is vertical lControlled Centralized (CC):  A leader coordinates tasks and solves problems  Communication and control are vertical

Exercise: Classifying Teams lProblem:  Categorise the Democratic, Classical and Modified Chief Programmer, Synchronize and Stabilize, and XP team structures as Democratic Decentralized (DD), Controlled Decentralized (CD) or Controlled Centralized (CC) lSolution:  Democratic = DD  Classical and Modified Chief Programmer = CC  Synchronize and Stabilize = CD  XP = DD

Jelling lIn business groups are assigned to work together; often without team spirit lAn effective tightly knit group displays Jell or “Esprit de Corps”. “Once a team begins to jell, the probability of success goes way up. The team can become unstoppable, a juggernaut for success”. lTeam Toxicity (factors that work against jelling): 1.A frenzied work atmosphere (which wastes energy and lacks focus) 2.High frustration caused by personal, business, or technological factors that cause friction among team members 3.Fragmented or poorly coordinated procedures 4.Unclear definition of roles resulting in a lack of accountability 5.Morale damaged by continuous and repeated failure

A Comparison of Teams OrganizationStrengthsWeaknesses DemocraticCollective code ownership Handles hard problems Cannot be externally imposed May not scale Classical Chief Programmer Miraculous success with New York Times Impractical Modified Chief Programmer Scales well Handles strict delivery No successes comparable to New York Times Synchronize and Stabilize Encourages creativity Scales very well Is it effective outside Microsoft? Extreme ProgrammingMany - sharing info, group ownership of code, improved quality Not fully proven