The Incremental Commitment Spiral Model


Book Description

Many systems development practitioners find traditional "one-size-fits-all" processes inadequate for the growing complexity, diversity, dynamism, and assurance needs of their products and services. The Incremental Commitment Spiral Model (ICSM) responds with a principle- and risk-based framework for defining and evolving your project and corporate process assets. This book explains ICSM's framework of decision criteria and principles, and shows how to apply them through relevant examples.




The Incremental Commitment Spiral Model


Book Description

“The title makes a huge promise: a way to divide commitment into increments that are both meetable (good news for developers) and meaningful (good news for managers and stakeholders). And the book makes good on that promise.” –Tom DeMarco, Principal, The Atlantic Systems Guild, author of Peopleware, Deadline, and Slack “I am seriously impressed with this ICSM book. Besides being conceptually sound, I was amazed by the sheer number of clear and concise characterizations of issues, relationships, and solutions. I wanted to take a yellow highlighter to it until I realized I’d be highlighting most of the book.” –Curt Hibbs, Chief Agile Evangelist, Boeing Use the ICSM to Generate and Evolve Your Life-Cycle Process Assets to Best Fit Your Organization’s Diverse and Changing Needs Many systems development practitioners find traditional “one-size-fits-all” processes inadequate for the growing complexity, diversity, dynamism, and assurance needs of their products and services. The Incremental Commitment Spiral Model (ICSM) responds with a principle- and risk-based framework for defining and evolving your project and corporate process assets, avoiding pitfalls and disruption, and leveraging opportunities to increase value. This book explains ICSM’s framework of decision criteria and principles, and shows how to apply them through relevant examples. It demonstrates ICSM’s potential for reducing rework and technical debt, improving maintainability, handling emergent requirements, and raising assurance levels. Its coverage includes What makes a system development successful ICSM’s goals, principles, and usage as a process-generation framework Creating and evolving processes to match your risks and opportunities Integrating your current practices and adopting ICSM concepts incrementally, focusing on your greatest needs and opportunities About the Website: Download the evolving ICSM guidelines, subprocesses, templates, tools, white papers, and academic support resources at csse.usc.edu/ICSM.







The Ultimate Guide to the Sdlc


Book Description

The Ultimate Guide to the SDLC is a complete and ready-to-adapt System Development Life Cycle that covers every aspect of system development from project inception to production and everything in between. Available as an eBook for years, it stands as the most complete and comprehensive guide of its kind.




Parallel Agile – faster delivery, fewer defects, lower cost


Book Description

From the beginning of software time, people have wondered why it isn’t possible to accelerate software projects by simply adding staff. This is sometimes known as the “nine women can’t make a baby in one month” problem. The most famous treatise declaring this to be impossible is Fred Brooks’ 1975 book The Mythical Man-Month, in which he declares that “adding more programmers to a late software project makes it later,” and indeed this has proven largely true over the decades. Aided by a domain-driven code generator that quickly creates database and API code, Parallel Agile (PA) achieves significant schedule compression using parallelism: as many developers as necessary can independently and concurrently develop the scenarios from initial prototype through production code. Projects can scale by elastic staffing, rather than by stretching schedules for larger development efforts. Schedule compression with a large team of developers working in parallel is analogous to hardware acceleration of compute problems using parallel CPUs. PA has some similarities with and differences from other Agile approaches. Like most Agile methods, PA "gets to code early" and uses feedback from executable software to drive requirements and design. PA uses technical prototyping as a risk-mitigation strategy, to help sanity-check requirements for feasibility, and to evaluate different technical architectures and technologies. Unlike many Agile methods, PA does not support "design by refactoring," and it doesn't drive designs from unit tests. Instead, PA uses a minimalist UML-based design approach (Agile/ICONIX) that starts out with a domain model to facilitate communication across the development team, and partitions the system along use case boundaries, which enables parallel development. Parallel Agile is fully compatible with the Incremental Commitment Spiral Model (ICSM), which involves concurrent effort of a systems engineering team, a development team, and a test team working alongside the developers. The authors have been researching and refining the PA process for several years on multiple test projects that have involved over 200 developers. The book’s example project details the design of one of these test projects, a crowdsourced traffic safety system.




Software Design and Development: Concepts, Methodologies, Tools, and Applications


Book Description

Innovative tools and techniques for the development and design of software systems are essential to the problem solving and planning of software solutions. Software Design and Development: Concepts, Methodologies, Tools, and Applications brings together the best practices of theory and implementation in the development of software systems. This reference source is essential for researchers, engineers, practitioners, and scholars seeking the latest knowledge on the techniques, applications, and methodologies for the design and development of software systems.




Human-System Integration in the System Development Process


Book Description

In April 1991 BusinessWeek ran a cover story entitled, "I Can't Work This ?#!!@ Thing," about the difficulties many people have with consumer products, such as cell phones and VCRs. More than 15 years later, the situation is much the same-but at a very different level of scale. The disconnect between people and technology has had society-wide consequences in the large-scale system accidents from major human error, such as those at Three Mile Island and in Chernobyl. To prevent both the individually annoying and nationally significant consequences, human capabilities and needs must be considered early and throughout system design and development. One challenge for such consideration has been providing the background and data needed for the seamless integration of humans into the design process from various perspectives: human factors engineering, manpower, personnel, training, safety and health, and, in the military, habitability and survivability. This collection of development activities has come to be called human-system integration (HSI). Human-System Integration in the System Development Process reviews in detail more than 20 categories of HSI methods to provide invaluable guidance and information for system designers and developers.




Software Modeling and Design


Book Description

This book covers all you need to know to model and design software applications from use cases to software architectures in UML and shows how to apply the COMET UML-based modeling and design method to real-world problems. The author describes architectural patterns for various architectures, such as broker, discovery, and transaction patterns for service-oriented architectures, and addresses software quality attributes including maintainability, modifiability, testability, traceability, scalability, reusability, performance, availability, and security. Complete case studies illustrate design issues for different software architectures: a banking system for client/server architecture, an online shopping system for service-oriented architecture, an emergency monitoring system for component-based software architecture, and an automated guided vehicle for real-time software architecture. Organized as an introduction followed by several short, self-contained chapters, the book is perfect for senior undergraduate or graduate courses in software engineering and design, and for experienced software engineers wanting a quick reference at each stage of the analysis, design, and development of large-scale software systems.




Foundations for Designing User-Centered Systems


Book Description

Foundations for Designing User-Centered Systems introduces the fundamental human capabilities and characteristics that influence how people use interactive technologies. Organized into four main areas—anthropometrics, behaviour, cognition and social factors—it covers basic research and considers the practical implications of that research on system design. Applying what you learn from this book will help you to design interactive systems that are more usable, more useful and more effective. The authors have deliberately developed Foundations for Designing User-Centered Systems to appeal to system designers and developers, as well as to students who are taking courses in system design and HCI. The book reflects the authors’ backgrounds in computer science, cognitive science, psychology and human factors. The material in the book is based on their collective experience which adds up to almost 90 years of working in academia and both with, and within, industry; covering domains that include aviation, consumer Internet, defense, eCommerce, enterprise system design, health care, and industrial process control.




Balancing Agility and Discipline


Book Description

"Balancing Agility and Discipline" begins by defining the terms, sweeping aside the rhetoric and drilling down to core concepts. The authors describe a day in the life of developers who live on one side or the other. Their analysis is both objective and grounded, leading to clear and practical guidance for all software professionals.