Evaluating Project Decisions

Case Studies in Software Engineering

Carol L. Hoover
Mel Rosso-Llopart
Gil Taran

image

Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals.

The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.

The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact:

U.S. Corporate and Government Sales
(800) 382-3419
[email protected]

For sales outside the United States please contact:

International Sales
[email protected]

Visit us on the Web: informit.com/aw

Library of Congress Cataloging-in-Publication Data

Hoover, Carol L., 1955-
  Evaluating project decisions : case studies in software engineering / Carol L. Hoover, Mel Rosso-Llopart, Gil Taran.
      p. cm.
  Includes bibliographical references and index.
  ISBN 978-0-321-54456-8 (pbk. : alk. paper)
 1. Software engineering. 2. Software engineering—Case studies. 3. Project management—Case studies.
I. Rosso-Llopart, Mel, 1956- II. Taran, Gil, 1972- III. Title.
  QA76.758.H66 2010
  005.1—dc22
                                                                                                                               2009030151

Copyright © 2010 Pearson Education, Inc.

All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to:

Pearson Education, Inc.
Rights and Contracts Department
501 Boylston Street, Suite 900
Boston, MA 02116
Fax: (617) 671-3447

ISBN-13: 978-0-321-54456-8
ISBN-10:       0-321-54456-0
Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts.
First printing, October 2009

To my dad, who shared his interest in science with me.

—Carol L. Hoover

To my mom and my brother, who thought I wouldn’t read let alone write a book.

—Mel Rosso-Llopart

To my beloved three girls and my family across the ocean, for their everlasting support.

—Gil Taran

Contents

Preface

Acknowledgments

About the Authors

Chapter 1 Managing Decisions

1.1 Chapter Objectives

1.2 Context

1.3 Decision Model for Software Engineering

CASE STUDY: SOFTWARE TEST RERUN PROBLEM

CASE STUDY: CALIFORNIA BRIDGE PROBLEM

CASE STUDY: UNFAMILIAR LEGACY CODE PROBLEM

CASE STUDY: DATA-PROCESSING PROBLEM

1.4 Summary

Chapter 2 Managing Requirements

2.1 Chapter Objectives

2.2 Context

2.3 Case Studies

CASE STUDY: THE NEW ACCOUNT PROJECT AT HBC

CASE STUDY: ON TIME, WITHIN BUDGET, BUT WRONG

2.4 Summary

Chapter 3 Managing Estimates

3.1 Chapter Objectives

3.2 Context

3.3 Case Studies

CASE STUDY: ESTIMATION AS A TOOL

CASE STUDY: WHEN A TEAM RUNS A RACE

3.4 Summary

Chapter 4 Managing Plans

4.1 Chapter Objectives

4.2 Context

4.3 Case Studies

CASE STUDY: TO REPLAN OR NOT TO REPLAN?

CASE STUDY: MANAGING PLANS IS IN THE DETAILS

4.4 Summary

Chapter 5 Managing Product

5.1 Chapter Objectives

5.2 Context

5.3 Case Studies

CASE STUDY: NEW TECHNOLOGY—IS IT ALWAYS THE BEST?

CASE STUDY: WHY IS THIS PRODUCT WRONG?

5.4 Summary

Chapter 6 Managing Process

6.1 Chapter Objectives

6.2 Context

6.3 Case Studies

CASE STUDY: BANK ON THE VERGE

CASE STUDY: DAMN THE PROCESS, FULL SPEED AHEAD

6.4 Summary

Chapter 7 Managing Risk

7.1 Chapter Objectives

7.2 Context

7.3 Case Studies

CASE STUDY: SEWEB AND RUSSOFT TECHNOLOGIES

CASE STUDY: FALCON EDUTAINMENT AND THE RISKSIM PROJECT

7.4 Summary

Chapter 8 Managing People Interactions

8.1 Chapter Objectives

8.2 Context

8.3 Case Studies

CASE STUDY: TO BE OR NOT TO BE: A SENSE OF URGENCY AT TESTBRIDGE

CASE STUDY: A FRIEND OR FOE AT HANOVER-TECH

8.4 Summary

Chapter 9 Managing Stakeholder Expectations

9.1 Chapter Objectives

9.2 Context

9.3 Case Studies

CASE STUDY: TCP ENHANCEMENTS AT GIGAPLEX SYSTEMS

CASE STUDY: TOUGH SELL AT HENKEL LABS

9.3 Summary

Chapter 10 Managing Global Development

10.1 Chapter Objectives

10.2 Context

10.3 Case Studies

CASE STUDY: GLOBALLY DISTRIBUTED TEAM: FIBRENET PROJECT

CASE STUDY: MANAGING GLOBAL SOFTWARE DEVELOPMENT AT FIBOPTIA

10.4 Summary

References

Index

Preface

Software engineering professionals and students all over the world make decisions every day that impact the outcome of their software projects. Although some people are very successful, others unfortunately do not take the steps necessary to ensure that their decisions are likely to lead to success. For instance, not asking the right questions generally leads to solutions that do not adequately solve the problems being considered. Likewise, the formulation of faulty assumptions is often the root cause of poor decisions. A common challenge for software professionals is the identification and correction of poor decisions before they can cause even bigger problems. This may be because it is much easier to judge software engineering decisions after the fact than to monitor and evaluate them before their full impact is known.

Through our own professional experiences as software engineers and project managers, we observed firsthand the need for systematic approaches to evaluating and making decisions for software engineering. We observed that, in general, decision making for software projects lacks an analytical approach that can be applied systematically and consistently to increase the likelihood of making decisions that lead to successful projects. As educators of graduate students in the Carnegie Mellon University Master of Software Engineering (MSE) Program, we use textbooks in software engineering that discuss issues involving decisions to be made but do not specifically talk about how to evaluate and make these decisions. We found numerous publications on decision making in the fields of general business and project management. Unfortunately, these works do not address the specific decisions that must be made for software development projects or the nuances of the issues related to these decisions.

We have searched for case studies to help students learn about software engineering issues in the context of real-world scenarios. Though the use of simulated case studies is recognized to be an effective teaching tool for computer science and engineering, we found few published cases that address the specific problems faced by software project managers or software developers and discuss the decision-making aspects of software engineering. To help fill the gap between theory and practice, we decided to write a book that would address the need of both practitioners and students of software engineering to understand decision making in the context of real software projects.

The purpose of this book is to help practitioners, managers, students, and educators acquire the knowledge and skills needed to evaluate and make good decisions as well as to recognize bad decisions for software project management and software development. The book focuses on case studies constructed to help readers comprehend and apply concepts important to forming, implementing, monitoring, and evaluating critical decisions in real software projects. The case studies are based upon real project scenarios in organizations that differ in industry, size, and budget, but the names of the organizations and stakeholders have been changed to keep the real entities confidential. The book does not exhaustively cover every possible software engineering event that might occur. Rather, the case studies focus on issues and decisions that typically make or break today’s software projects.

Readers who have hands-on development or management experience with the full life cycle of a software project will benefit the most from this book. We intend for the book to serve as a handbook of professional guidance for managing the decisions that can lead to software project success. Upper-level undergraduate or graduate students who have some undergraduate-level coursework in software engineering or professional software engineering experience will also find the case materials to be a stimulating way to explore decision making in real-world software projects.

Readers of this book can acquire knowledge of issues and problems that notoriously contribute to software project failure. Readers will learn about issues and problems that occur frequently, have a high impact on today’s software projects, or are of emerging and growing importance. The case studies illustrate important decisions in the mapping between the user’s expectations and the provider’s software solution. The case study analyses highlight effective questions to ask to better analyze software engineering issues or problems and to determine the best decisions or solutions to make. The book also discusses indicators to assess whether a decision or solution for a particular software project issue or problem is working.

By reading and analyzing the software engineering case studies, you can develop skills needed to identify key factors that characterize software project problems. You can learn how to analyze the issues and problems that relate to a specific software project scenario. The case analysis activities will guide you through the study of alternative decisions that could be made to address the case issues. They will help you develop ideas about how to apply the case concepts to real software projects. We hope that you will find the case studies to be an interesting way to learn about critical issues in software engineering and about how to apply decision-making techniques to real-world software engineering projects.

Synopses of Book Chapters

Following is a synopsis of the topics and case studies for each chapter. You will notice that all of the chapter titles include the word managing. We use managing to emphasize the need for project managers and software engineers proactively to identify issues or problems in a particular management area, to analyze and evaluate their nature and importance, to decide upon actions that need to be taken, to implement decisions by taking action, and to monitor results. We would like to promote the idea that all software professionals, not just managers, need to manage the decisions that they make on the job. The case studies illustrate decisions made or that need to be made by various software project stakeholders. In some cases, the stakeholders manage the decisions in a way that leads to project success. In other cases, the stakeholders do not manage the decisions they make very well and thereby encounter project problems and sometimes failure.

Chapter 1: Managing Decisions

Chapter 1 discusses decision making in software engineering, presents a model for evaluating decisions, and shows how the model can be applied to the decisions made by stakeholders in the case studies. The chapter illustrates the application of the model through several decision scenarios that involve technical issues.

Chapter 2: Managing Requirements

Chapter 2 overviews the following activities involved in managing requirements: eliciting and stating requirements, verifying and validating requirements, negotiating and contracting requirements, managing requirements change and scope, and validating software deliverables with respect to requirements. The chapter provides an in-depth discussion of issues and decisions for each requirements activity. The chapter emphasizes the idea that managing requirements does not end until the software is retired.

Case studies:

The New Account Project at HBC: This case study highlights the activities and decisions involved in establishing the requirements. In particular, the case illustrates problems that can occur regarding decisions about the selection and involvement of stakeholders.

On Time, Within Budget, but Wrong: This case study illustrates how decisions made when establishing and managing requirements can result in software project deliverables that do not satisfy the user stakeholder’s expectations even though the project appears to be going well. In particular, the case scenario covers both functional and nonfunctional requirements including statements about required quality attributes.

Chapter 3: Managing Estimates

Chapter 3 illuminates the importance of estimation in planning and managing software projects and other software engineering efforts. The chapter discusses the following activities involved in managing estimates: understanding requirements, conceptually designing a solution, performing element-wise decomposition (divide), allocating resources from the bottom up (conquer), allocating overhead, estimating construction, and estimating change management. The chapter presents ways to factor considerations of scope, time, quality, and cost into decisions about project estimates.

Case studies:

Estimation as a Tool: This case study examines process improvement in managing estimates via collecting, studying, and applying historical data. In the case, a software project manager must determine the appropriate inputs to make a good decision regarding an estimate for a job.

When a Team Runs a Race: This case study examines factors that influence estimation and how these factors can lead to poor decisions about estimates. The case also looks at issues related to the concurrent execution of multiple projects with interdependent resources, personnel, and developments.

Chapter 4: Managing Plans

Chapter 4 examines the role of decision making in planning software projects. The chapter overviews planning activities such as the following: defining project objectives, policies, and scope; planning tasks and milestones; planning schedules; planning budgets; staffing and other resource planning; tracking and controlling the budget and schedule; managing midstream changes to project plans; managing processes with respect to project objectives, policies, and other project plans; and managing software development with respect to project objectives, policies, schedule, and budget.

Case studies:

To Replan or Not to Replan?: This case study discusses the evaluation and decision of when, why, and how to adjust the budget, schedule, or staffing plans.

Managing Plans Is in the Details: This case study looks at problems and decisions that a software development organization faces in planning and tracking software projects, especially those that share resources with other projects or engineering groups.

Chapter 5: Managing Product

Chapter 5 overviews the issues and decisions involved in managing software product. The chapter discusses the following activities involved in managing product: proper product definition, development process management, quality assurance and control, configuration management, product delivery and installation, training, field service, and the application of the decision model to make product decisions.

Case studies:

New Technology—Is It Always the Best?: In this case study, the project manager must make a decision regarding the adoption of new development technologies and techniques to create a product that is easier to maintain and less expensive to use.

Why Is This Product Wrong?: In this case study, a software developer is faced with the dilemma that although it seems as though he did everything correctly, he still got the wrong answer.

Chapter 6: Managing Process

Chapter 6 emphasizes the importance of managing the processes for software development and software project management. The chapter discusses activities involved in managing process: defining, selecting, and understanding process; teaching process; measuring process; evaluating process performance; changing the process to improve its effectiveness; and using the decision model to make process decisions.

Case studies:

Bank on the Verge: In this case study, a project manager asks two consultants to evaluate whether his team has made good decisions on process and whether there are things that the team can do better.

Damn the Process, Full Speed Ahead: In this case study, a project manager is asked to review another manager’s project that is having problems. The troubled project is behind schedule, and no one has been able to clearly identify what is causing the schedule slippage or what should be done to fix the project’s processes. The manager must decide how he can help the troubled project.

Chapter 7: Managing Risk

Chapter 7 emphasizes the importance of managing risk across the project life cycle. The chapter discusses activities involved in managing risk: defining thresholds of success for the project, identifying project risks, formulating statements about risk, communicating information about risk to project stakeholders, mitigating risk, and conducting resource trade-offs in making decisions about how to manage risk.

Case studies:

SEWeb and Russoft Technologies: This case study examines the decisions and risks faced by an academic institution in its attempt to use an offshore development firm, a Russian company located in Moscow, to develop a Web-based system. In particular, the case study exemplifies what can happen when the project stakeholders do only minimal risk management throughout the project.

Falcon Edutainment and the RiskSim Project: This case study focuses on software project risks associated with client-developer interactions, communications, requirements elicitation, and the related decisions.

Chapter 8: Managing People Interactions

Chapter 8 discusses factors that influence interactions between people and shows how an understanding of these can help software professionals to manage their interactions with people on the job. The chapter specifically describes activities involved in managing project stakeholder interactions: understanding scenarios of interaction, understanding factors that influence interactions, deciding upon interaction objectives, evaluating factors that influence an interaction, deciding how to adjust controllable factors for an interaction, and reflecting on past interactions to improve performance in future interactions.

Case studies:

To Be or Not to Be: A Sense of Urgency at TestBridge: In this case study, tough decisions have to be made with respect to the ability and willingness of specific players within the team to contribute as team members in light of an organization that is changing its focus and business direction.

A Friend or Foe at Hanover-Tech: This case study focuses on the need to manage people interactions at the managerial level while balancing opposing constraints that are financial, strategic, personal, and temporal.

Chapter 9: Managing Stakeholder Expectations

Chapter 9 clarifies the nature of stakeholder expectations. The chapter introduces a model for understanding the mapping between customer expectations and solution provider expectations. The chapter discusses the activities involved in managing interactions between software project stakeholders: communicating with the customer stakeholder, managing multiple dimensions of stakeholder expectation over time, managing product and process to satisfy stakeholder expectations, understanding different types of customers, and managing stakeholder perception.

Case studies:

TCP Enhancements at Gigaplex Systems: In this case study, the software project team encounters unexpected problems related to satisfying the customer’s expectations as well as to internal team dynamics and the external relationship with the customer.

Tough Sell at Henkel Labs: This case study presents a difficult situation in which stakeholder expectations need to be managed across a global organization with multiple subsidiaries and people from different cultures who reside in different countries and who sometimes have opposing organizational and business objectives.

Chapter 10: Managing Global Development

Chapter 10 discusses issues and decisions related to managing software engineering efforts that are geographically distributed. The chapter illuminates the challenges of communicating across geographical and time differences, understanding and handling cultural differences, managing distributed projects and software development, managing outsourced software development, managing software quality with distributed or outsourced development, and managing expectations across geographically dispersed stakeholders.

Case studies:

Globally Distributed Team: FibreNet Project: This case study highlights issues of communication, collaboration, and trust when a project team is globally distributed. The software project manager needs to decide how to improve these aspects across the different globally distributed project sites.

Managing Global Software Development at FibOptia: This case study looks at problems specific to global software development in managing process, product quality, and cost. A senior manager is trying to decide how she can help her global software development organization make process and product improvements.

How This Book Is Organized

In Chapter 1, “Managing Decisions,” we discuss the nature and importance of decision making for software engineering. We present a decision model that we developed and have used in practice to assist software professionals in evaluating decisions. This chapter provides context information that will help you more easily identify and think about issues and problems that occur in the case studies. You will therefore benefit from reading this chapter before you read the other chapters in the book. The other chapters discuss decision making in the context of well-known management areas for software projects. These chapters broadly cover issues concerning people, process, and technology in the context of making decisions about them. Because evaluating risk should be an integral part of making decisions, all chapters discuss risk in the context of making decisions for a particular management area. Chapter 7, “Managing Risk,” more generally covers risk management throughout the life of a software project. In addition, since process concerns how something is done, all of the chapters in some way discuss process issues when describing how software professionals manage a particular aspect of software engineering.

Chapters 210 have the same organizational structure. The first section of each chapter outlines the objectives for that chapter. The second section sets the context for making decisions in a particular software management area. The context material describes primary activities that software professionals perform to manage a particular project area. Alternatively, the context for Chapter 10, “Managing Global Development,” explains that the activities for managing global development include those for the other management areas with added challenges, constraints, and opportunities. The chapter context also discusses key ideas, practical guidelines, or what-if questions for making decisions in the relevant management area. The context highlights example decisions with some analyzes that apply the PEAK decision model from Chapter 1. Some of the context information appears in tables to help you rapidly assimilate and reference it when needed. The chapters present concepts in the context of making decisions with respect to factors that influence stakeholder expectations for software projects: scope (requirements), time (schedule), quality, and cost (budget). The chapter context also includes references to publications that provide background in the software management area for interested readers. The authors recommend that you read or peruse the chapter objectives and context before reading the case studies.

The next section of each chapter presents two case studies whose scenarios highlight key issues and decisions related to the chapter topic. The first case study includes a full analysis of the case study issues and decisions with respect to the PEAK decision model. The case studies discuss decisions made by the stakeholders in the case scenarios and pose follow-on decisions that need to be made. Some case studies tell you what the stakeholders decide to do to solve the case problems and include the results of these decisions; others leave the evaluation of solutions for the case problems to the case study analyses. A set of questions to stimulate an analysis of the second case study concludes the case study. The last section summarizes important ideas to remember about the chapter. A list of references for all chapters appears at the back of the book.

We would like to help set your expectations regarding the references in the book. We do not intend for the book to be a survey of research and publication in the various software management areas. We have included some selected references that provide background for readers who are new to software engineering or to topics covered in the case studies or that provide supplemental information for interested readers. Some of the references are purposely dated because they provide the original and best definition of particular concepts or because the concepts discussed in these sources are still highly relevant for software projects of today. The referenced materials include books, conference and workshop proceedings, journal and magazine articles, and online information. They eclectically cover topics, events, or quotes from the subject areas of business management, civil engineering, communications, computer science, decision sciences, English literature, filmography, management and management sciences, networking, psychology, regulatory policy, software engineering, systems engineering, and others that provide background information for the case studies and example decision scenarios.

Some of our reviewers commented that a particular case study seemed to be relevant for different chapters or software project management areas. As you read the book, you too may recognize that a particular case study involves issues from multiple management areas. We purposely designed the cases to be multidimensional. After analyzing the cases in a specific chapter and management area, you might analyze the case studies in other chapters whose issues and decisions involve the same management area. For instance, all of the case studies entail issues and decisions involving scope, time, quality, cost, risk, stakeholder expectations, communications and other people interactions, or some set of these. As another example, case studies in Chapter 7, “Managing Risk,” Chapter 9, “Managing Stakeholder Expectations,” and Chapter 10, “Managing Global Development,” encompass issues related to global software development. The scenario for one of the cases in Chapter 7 involves development by an offshore team, and one of the cases in Chapter 9 looks at establishing projects to be executed by globally distributed branches of a company. Both cases for Chapter 10 involve globally distributed software development teams.

The reviewers for our book requested that we provide full analyses for all the case studies. We talked with our editor about this and together decided that for space and cost reasons it would not be practical to include this additional information in the book itself. Our reviewers also gave us excellent suggestions for topics that they would like to see discussed in case studies. Therefore, we decided to offer a Web site where you can obtain supplemental information at www.andrew.cmu.edu/user/rosso/. This site will provide you with materials such as additional case studies and analyses as they become available. Depending on our time constraints, we will try as best we can to provide you with analyses for the second cases in the chapter.

We hope that you enjoy your journey through this book and that you will use the book as a guide as you encounter issues and decisions in your study and practice of software engineering.

Acknowledgments

We would like to acknowledge the people who provided information for the case studies or who provided critical assistance in reviewing our case studies or chapters. In addition to our anonymous contributors, we graciously say thank you in alphabetical order to Kanat Abirov, Dmitry Dakhnovsky, James Yinsey Hall, Kalyan Jakka, Dr. Chris Kemerer, David Kramer, Ron Lewin, Ron Lichty, Catherine Llopart, Frank Parth, Patrick Piemonte, David Root, Marco Schumacher, Orna Taran, Renuka Wariyar, and Dr. Eytan Wine.

The staff at Addison-Wesley was very helpful as we worked through the process of creating a book. We heartily thank Peter Gordon, the book’s editor, and Kim Boedigheimer, editorial assistant, for their information about the publishing process, editorial advice, and ever present assistance. The production team included John Fuller, Anna Popick, Molly Sharp, Kim Wimpsett, Kelli Brooks, and Fred Brown. We offer our sincere thanks for their contributions to the transformation of our electronic files into a complete and marketable book. We especially appreciate their attention to quality issues. Thank you to Stephane Nakib for her contributions to marketing and advertising the book. Thank you also to Anne Jones for the classy and contemporary book cover.

Last, but certainly not least, our families offered significant encouragement and patiently waited for us to finish! Thank you for being you.

About the Authors

Dr. Carol L. Hoover
President and CEO, BiznessLegion, LLC

Dr. Carol L. Hoover has conducted software systems research and development for more than twenty years in industry and academia. Her focus has been on complex systems with real-time, high-assurance, and other quality-of-service requirements. Since 2005, Dr. Hoover has been the president and chief executive officer of BiznessLegion, LLC, a consulting company whose current mission is to help software development organizations manage software evolution in a cost-effective way through strategic planning and decision making, analytical software composition, and knowledge management. After coming to Carnegie Mellon University in 1992, Dr. Hoover held positions of director and senior systems scientist in the Institute for Software Research where she developed and taught a scenario-based, graduate-level software engineering curriculum including capstone courses on planning, managing, and executing consulting projects in the aerospace industry; project scientist and manager in the Robotics Institute; and lecturer for the Master of Software Engineering program in the School of Computer Science. Her research interest in automated software design, software knowledge engineering, innovative STEM education, and technology-related governmental policy originate from her prior experiences as a senior software engineer at the Allen-Bradley Company (now Rockwell Automation), a post-graduate intern at a NASA research center in Cleveland, Ohio, a computer manager in a U.S. congressional office, and an educator in the public schools. She earned a doctorate in electrical and computer engineering from Carnegie Mellon University, a master’s degree in computer and information sciences from the Ohio State University where she was a University Fellow, and bachelor’s degrees in computer science and education with minors in mathematics and music and specializations in science and engineering from the University of Akron. Dr. Hoover is a member of the ACM, IEEE, IEEE Computer Society, and Sigma Xi. She resides with her husband north of Pittsburgh, Pennsylvania.

Mel Rosso-Llopart
Associate Teaching Professor, Carnegie Mellon University

Manuel “Mel” Rosso-Llopart is currently the assistant director for the Master of Software Engineering program now in the Institute for Software Research, the director for distance education development in the Information Networking Institute, and an associate teaching professor for the Master of Software Engineering program, all at Carnegie Mellon University. With Carnegie Mellon since 2002, he has delivered executive education courses in project management worldwide, especially throughout Eastern Europe. He also does independent consulting on software management issues and software development programs. Mr. Rosso-Llopart has management and software development experience with large and small projects in a variety of computing environments. He has knowledge of large network configurations and database applications. Mr. Rosso-Llopart has developed complex, embedded systems for the aviation and rail-transit industries while working with the U.S. Department of Defense in California for fifteen years and later with Adtranz (now Bombardier) in Pittsburgh, Pennsylvania. He earned bachelor’s degrees in physics, biology, and computer science at the University of California and a master’s degree in software engineering from the School of Computer Science at Carnegie Mellon University. He is married with one son and lives south of Pittsburgh.

Gil Taran
Associate Teaching Professor, Carnegie Mellon University
Chief Executive Officer, iCarnegie, Inc.

Gil Taran is an associate teaching professor with Carnegie Mellon University’s School of Computer Science, where he has been teaching in the Master of Software Engineering program (www.mse.cs.cmu.edu) since 2002. He is also the chief executive officer of iCarnegie (www.icarnegie.com), a Carnegie Mellon–owned educational affiliate whose mission is to provide high-quality, skill-based education and professional training programs to organizations and individuals around the world. Mr. Taran takes a special interest in setting up international collaborations in software engineering education and has been able to help initiate, facilitate, and develop programs in China, India, Kazakhstan, Korea, Portugal, and Russia, to name a few. Mr. Taran is an international speaker in the areas of software project management, software risk management, software engineering education, and managing technical people. He has trained thousands of engineers around the world from companies in the banking, defense, electronics, health care, and manufacturing sectors. Mr. Taran has spent the past fifteen years making project-based decisions as well as leading sales/marketing activities and technology/business operations globally. In the past, he has held management positions for international companies in Europe, the United States, and the Middle East. He earned bachelor’s degrees in economics and English literature from the Tel Aviv University in Israel and a master’s degree in information technology with high honors from Carnegie Mellon University. He lives with his wife and two daughters outside Pittsburgh, Pennsylvania.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset