For anyone managing or involved in a failing or difficult software project, this book offers a proven rescue formula using real-life examples to guide you in increasing your chances of success.
An empirically based study of why software development failures happen, and the lessons we can learn. Failed or abandoned software development projects cost the U.S. economy alone billions of dollars a year. In Software Development Failures, Kweku Ewusi-Mensah offers an empirically grounded study that suggests why these failures happen and how they can be avoided. Case studies analyzed include the well-known Confirm travel industry reservation program, FoxMeyer's Delta, the IRS's Tax System Modernization, the Denver International Airport's Baggage Handling System, and CODIS. It has been estimated that one-third of software development projects fail or are abandoned outright because of cost overruns, delays, and reduced functionality. Some consider this an acceptable risk—that it is simply the cost of doing business. Ewusi-Mensah argues that understanding the factors involved in development failures will help developers and businesses bring down the rate of software failure and abandoned projects. Ewusi-Mensah explores the reasons software development projects are vulnerable to failure and why issues of management and organization are at the core of any failed project. He examines these projects not from a deterministically technical perspective but as part of a complex technical and social process; he proposes a framework of factors that contribute to the decision to abandon a project and enumerates the risks and uncertainties inherent in each phase of a project's life cycle. Exploring the multiplicity of factors that make software development risky, he presents empirical data that is reinforced by analyses of the reported cases. He emphasizes the role of the user in the development process and considers the effect of organizational politics on a project. Finally, he considers what lessons can be learned from past failures and how software development practices can be improved.
Software Project Secrets: Why Software Projects Fail offers a new path to success in the software industry. This book reaches out to managers, developers, and customers who use industry-standard methodologies, but whose projects still struggle to succeed. Author George Stepanek analyzes the project management methodology itself, a critical factor that has thus far been overlooked. He explains why it creates problems for software development projects and begins by describing 12 ways in which software projects are different from other kinds of projects. He also analyzes the project management body of knowledge to discover 10 hidden assumptions that are invalid in the context of software projects.
Learn how to create good requirements when designing hardware and software systems. While this book emphasizes writing traditional “shall” statements, it also provides guidance on use case design and creating user stories in support of agile methodologies. The book surveys modeling techniques and various tools that support requirements collection and analysis. You’ll learn to manage requirements, including discussions of document types and digital approaches using spreadsheets, generic databases, and dedicated requirements tools. Good, clear examples are presented, many related to real-world work the author has done during his career. Requirements Writing for System Engineeringantages of different requirements approaches and implement them correctly as your needs evolve. Unlike most requirements books, Requirements Writing for System Engineering teaches writing both hardware and software requirements because many projects include both areas. To exemplify this approach, two example projects are developed throughout the book, one focusing on hardware and the other on software. This book Presents many techniques for capturing requirements. Demonstrates gap analysis to find missing requirements. Shows how to address both software and hardware, as most projects involve both. Provides extensive examples of “shall” statements, user stories, and use cases. Explains how to supplement or replace traditional requirement statements with user stories and use cases that work well in agile development environments What You Will Learn Understand the 14 techniques for capturing all requirements. Address software and hardware needs; because most projects involve both. Ensure all statements meet the 16 attributes of a good requirement. Differentiate the 19 different functional types of requirement, and the 31 non-functional types. Write requirements properly based on extensive examples of good ‘shall’ statements, user stories, and use cases. Employ modeling techniques to mitigate the imprecision of words. Audience Writing Requirements teaches you to write requirements the correct way. It is targeted at the requirements engineer who wants to improve and master his craft. This is also an excellent book from which to teach requirements engineering at the university level. Government organizations at all levels, from Federal to local levels, can use this book to ensure they begin all development projects correctly. As well, contractor companies supporting government development are also excellent audiences for this book.
You CAN Turn Around A Failing Project! Poor project results are all too common and result in dissatisfied customers, users, and project staff. With countless people, goals, objectives, expectations, budgets, schedules, deliverables, and deadlines to consider, it can be difficult to keep projects in focus and on track. How to Save a Failing Project: Chaos to Control arms project managers with the tools and techniques needed to address these project challenges. The authors provide guidance to develop a project plan, establish a schedule for execution, identify project tracking mechanisms, and implement turnaround methods to avoid failure and regain control. With this valuable resource you will be able to: • Identify key factors leading to failure • Learn how to recover a failing project and minimize future risk • Better analyze your project by defining proper business objectives and goals • Gain insight on industry best practices for planning
Large Refactorings looks at methods of establish design improvements as an important and independent activity during development of software, and will help to ensure that software continues to adapt, improve and remain easy to read and modify without altering its observable behaviour. It provides real-world experience from real refactored projects and shows how to refactor software to ensure that it is efficient, fresh and adaptable.
Controlling Software Projects shows managers how to organize software projects so they are objectively measurable, and prescribes techniques for making early and accurate projections of time and cost to deliver.
The book is organized around basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk. Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral). Illustrates and emphasizes tailoring the development process to each project, with a foundation in the fundamentals that are true for all development methods. Topics such as the WBS, estimation, schedule networks, organizing the project team, and performance reporting are integrated, rather than being relegating to appendices. Each chapter in the book includes an appendix that covers the relevant topics from CMMI-DEV-v1.2, IEEE/ISO Standards 12207, IEEE Standard 1058, and the PMI® Body of Knowledge. (PMI is a registered mark of Project Management Institute, Inc.)