CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Programming Paradigms and languages
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.
System Analysis (Part 1)
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
Documentation 1 Comprehending the present – Investing in the future.
Software Engineering COMP 201
The Human Side of Project Management
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Teams.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Unit 6.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Monster-Sized Agile Adoptions SUCCESS AND FAILURE STRATEGIES.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
System Analysis and Design
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
CHAPTER 4 TEAMS.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Prof. Matthew Hertz SH 1029F /
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Prof. Matthew Hertz WTC 207D /
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
Program Development Life Cycle (PDLC)
The Cluster Computing Project Robert L. Tureman Paul D. Camp Community College.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
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.
Lecture 3 Software Engineering Models (Cont.)
Slide 4.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
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.
Slide 4.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Planning Iteration Demo Suunto Training Program Planner.
ITEC 370 Lecture 23 Maintenance. Review Questions? Project update on F, next F give prototype demonstration Maintenance –Reactive –Proactive.
CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Slide 4.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Slide 4.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
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.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2010 Stephen R. Schach
Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Slide 4.1 TEAMS. Slide 4.2 Overview l Team organization l Democratic team approach l Classical chief programmer team approach l Beyond chief programmer.
Software Project Management
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Types for Programs and Proofs
Lecture 3: Organizing Teams
Some time ago I wrote how peer java programming can help maintain high quality code. But that is not all! Today I want to explain why I should practice.
Teaching slides Chapter 1.
Software life cycle models
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Extreme Programming.
Planning and Estimation
Presentation transcript:

CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses

Today’s Lecture Discuss teams, teams, and more teams Give you ideas for running the project Provide chance to discuss material from this week Get started thinking about homework Actual assignment available on the web Assignment is due in one week (Feb. 2 nd )

Lies, Darned Lies & Metrics Person-years is common measure of work Amount of work done by one person in a year Or work completed by 12 people in 1 month Or 4 people in 2 months + 1 person in 4 months One of the stupidest metrics ever Good news: we get to discuss a lot more Ignores that groups of people do not share a brain Working together takes communication that may (but will not) be made up by improved efficiency

Computer Science “Laws” Name for folk wisdom built up over years Brook’s Law Adding programmers to a team when a product is late makes the product even later. Weinberg’s Second Law If builders built buildings the way programmers wrote programs, the first woodpecker to come along would destroy civilization.

Teams in Programming Almost no software developed by 1 person Hence teams are universal issue Classroom time not spent working in teams Even less time discussing managing a team Two of the earliest published works: Democratic Teams Chief Programmer Teams

Democratic Teams Programmers tend to have outsized egos Consider code to be extension of themselves Name computers, modules, and algorithms eponymously Makes finding and fixing errors difficult: “Bug cannot be in MY code!” Instead rely on egoless programming

Egoless Programming Place emphasis entirely on team All code is owned by team Errors considered a normal and accepted event Team is responsible for finding and fixing bugs Develop single ethos  a group identity Modules will “belong” to the team as whole Maintain groups of up to 10 egoless programmers Can arise organically Often when there is nothing to gain personally Most often appears in academia & research

Chief Programmer Team Improve productivity by limiting communication Figure 4.3

Chief Programmer Team Chief programmer Successful manager and programmer Responsible for every line of code Performs architectural design, allocates coding, heals the sick, writes critical sections, handles interfaces, teaches cats to sing, performs all reviews, and blends in with mere mortals Back-up programmer Takes over if/when Chief Programmer is out For unknown reasons, does not leave for big $$$

Chief Programmer Team Programming secretary (librarian) Maintains all documents and deliverables Responsible for repository maintenance Content to spend all day doing paperwork Compiled, linked, & tested code (this was 1971) Programmers Write code Write more code This will never work in the real world

Teams in the Real World Need teams that consist of mere mortals Split chief programmer into 2 positions 1 position is managerial and 1 is technical

Teams In The Real World Must scale to modern teams of 20 to 120 programmers Whenever necessary, add more layers

Bring In Democratic Ethos Past result may encourage in-fighting and worst politics within organization Improve using democratic programming ideas

Synchronize-and-Stabilize Teams Used by Microsoft Teams of 3 – 8 developers & 3 – 8 testers Team responsible for overall task Work from specification through implementation Relies on daily synchronization step Programmer’s must check in code by 9 each day Errors between teams will be found that night Good for Microsoft and large open-source projects Common feature: excellent hackers

Pair Programming Teams Used in EXTREME Programming Always have person to bounce ideas off of One member creates cases, other does tests Project can survive a programmer leaving Provides mentoring when new people start Hard to develop ego when you do not even have computer in your cubicle

CMM-P Improves managing & developing workforce Each maturity level has its own KPAs Level 2: Staffing, communication and coordination, training and development, work environment, performance management, coordination Level 5: Continuous capability improvement, organizational performance alignment, continuous workforce innovation

Choosing Team Organization Exceedingly little study of team organization Instead rely on general group dynamic research Unclear whether optimal organization exists Involves range of personalities and environments Should differ with goals of the organization Really needs relevant experimental results Experiments here are hard, however

Comparing Team Structures

Discussion Which lifecycle model and team structure do you feel would be best on a project developing a start-of-the-art military communications system? Requirements will not change once started Reliability is very important Must be easy to adapt/fix/extend once delivered

For Next Lecture Monday’s lecture will discuss tools Tools to improve teamwork Tools to improve reliability Tools to improve productivity And give demonstrations of how these tools work