CS 501: Software Engineering Lecture 20 Managing People 1 CS 501 Spring 2002 Administration Assignment 3 Remember to submit your reports and questionnaires Discussion Class Attend Speak! Let me know out of class if you want to be called on more often 2 CS 501 Spring 2002 Quiz 3, Question 1 Two online retailers, A and B, have agreed to merge. They have separate computer systems. Each has separately developed (i) a product database with information about products, suppliers and prices, and (ii) a customer database of customer accounts. You are the Chief Information Officer responsible for combining the two systems into a single system. The strategy chosen is to combine the two product databases into a single database, using the software developed by retailer A, but keep the lists of customer separate. Customers should be unaware of the change, so that, to the customers, retailers A and B continue to appear to be separate. 3 CS 501 Spring 2002 Quiz 3, Question 1 (continued) (a) List two technical approaches for combining the two systems. (b) What are the risks associated with each approach? (c) Select the approach that appears likely to have the least risk. (d) Draw a system architecture diagram for this approach. 4 CS 501 Spring 2002 From Lecture 13 Merger of Two Banks: Options A ??? B ??? 5 CS 501 Spring 2002 Merger of Two Retailers A B ? Customer Database A 6 Product Database A Customer Database B CS 501 Spring 2002 Part (i): Technical Approaches I. Minimal changes to the interfaces Modify User Interface B so that it can get product information from Product Database A. Modify Customer Database B so that it can interact with Product Database A (if needed). II. Retire Customer Database B Modify User Interface B so that it can get product information from Product Database A and customer information from Customer Database A. 7 Modify Customer Database A to hold both customer lists and merge information about the customers of B. CS 501 Spring 2002 Part (ii): Risks I. Minimal changes to the interfaces Need to maintain two separate systems indefinitely Semantic differences between systems may make transparent interface(s) impossible II. Retire Customer Database B Major effort required to convert Customer Database B within short time span, very likely needing new data elements or relations User Interface B may need major changes 8 CS 501 Spring 2002 Parts (iii) and (iv): Option II A B Customer Database A 9 Product Database A CS 501 Spring 2002 Managing People Theoretical • Organizational behavior • Industrial psychology Group behavior • Cognitive fundamentals Economic motivation 10 CS 501 Spring 2002 Maslow's Hierarchy of Needs Self-realization needs Esteem needs Social needs Safety needs Physiological needs 11 CS 501 Spring 2002 Software Engineering Basics • Professional staff are the major cost of software • Professional staff vary greatly in productivity => Ability => Education and training => Motivation => Interaction with colleagues and leaders => Work environment • 12 People are productive when happy and happy when productive CS 501 Spring 2002 Software is Built by Teams • Best size for a team is 3 to 8 people • Team members may include: developers (from trainee to expert) domain experts graphic or interface designers software librarians testers • Teams must have: administrative leadership (manager) technical leadership 13 CS 501 Spring 2002 Group Working 20% non-productive 30% working alone 14 50% interaction with others CS 501 Spring 2002 Communication • Informal Kitchen, smokers' doorway, after work, etc. Walkabout (tours) Ad hoc meetings • Staff meetings (non-technical) Example: Tektronics • Technical meetings Facilitation Record of decisions • Management of teams dispersed across locations 15 CS 501 Spring 2002 Administrative Leader (Manager) • Personnel Assigning tasks Hiring, promoting, etc. • Resources Budgets Space, facilities Equipment • Project management Relationships with other teams and clients Project plan and schedule 16 CS 501 Spring 2002 Hiring Criteria Productivity is a combination of: • • • • Analytic ability Verbal ability and communication skills Education Application domain knowledge • Adaptability and inquisitiveness • Personality and attitude • • 17 Platform experience Programming language experience CS 501 Spring 2002 Staff Retention • Technically interesting work up to date hardware and software opportunities to learn and experiment • Feeling of appreciation management recognition money and promotion • Working conditions space, light, noise, parking flexibility • 18 Organizational dynamics CS 501 Spring 2002 Salaries Any software developer in the USA has plenty of money to live on (food, clothing, heat, etc.). Salaries are used to satisfy the top levels of Maslow's Hierarchy: self-realization esteem The absolute level of salary is less important than its relative level and how it is presented: "The annual raise is 5%, but you are getting 6%." "Our salaries are in the top 25% of similar companies." 19 CS 501 Spring 2002 Firmness Managers must be firm when needed: • Assignment of tasks must be equitable and open; everybody will have to tackle some of the dreary tasks • Carrots are better than sticks, but poor performance must be addressed. • Nobody is indispensable; nobody should be allowed to think that they are indispensable 20 CS 501 Spring 2002 Technical Challenges • Canceling projects Example: the Andrew window manager • Changes of environment Example: the World Wide Web • Technical tinkering v. needed re-engineering 21 CS 501 Spring 2002 Turning a Group Around To turn a weak group into a strong one is the greatest challenge of leadership • The art of the possible • Promotion of the best over the old leaders • Using opportunities to reorganize • Resignations and terminations • Respect people who try, yet refuse to accept problem areas Brutal and abrupt rarely equals persistent and firm 22 CS 501 Spring 2002 How to be Led As a junior member of a team, what can you do to make it productive? 23 CS 501 Spring 2002 To Build and Maintain a Strong Team Everybody has a different style. In my experience: • Be consistent in how you relate to people • Be open about problems and how you are addressing them • Explain your decisions • Do not have secrets • Ask for advice and help • Be constructive in criticism of people outside your team • Support and attend social events Set high standards! 24 CS 501 Spring 2002