Building Software: A Practitioner's Guide

Series:
Published:
Author(s):

Purchasing Options

Hardback
$94.95
Add to cart
ISBN 9780849373039
Cat# AU7303
 

Features

  • Explains how to align software development with business strategy and how to meet strategic requirements
  • Synthesizes principles from systems science, software engineering and project management to help designers and developers to create better systems
  • Provides practical tips on managing real-world design and delivery situations
  • Goes beyond software development to cover software security, software failure, and software quality, documentation, and deployment
  • Summary

    Novel in its approach to software design, development, and management, Building Software: A Practitioner's Guide shows you how to successfully build and manage a system. The approach the authors recommend is a simple, effective framework known as Solution Engineering Execution (SEE).

    Through SEE, you create a successful solution by following a highly organized, well-planned process. This process makes you view the solution from a holistic, systematic perspective.

    Developing a successful system requires that you are able to address technology matters related to architecture, design, selection, integration, and security. Building Software: A Practitioner's Guide offers insight into how to make software reliable and how to ensure it meets customer and organizational needs.

    Using the above approach you are able to:

    • Find a good solution to the problem at hand
    • Focus on engineering the solution well
    • Address all aspects of delivery associated with the solution

    The book provides insightful examples of cross-domain and legacy solutions that allow you to overcome common software concerns such as requirement issues, change control, quality and schedule management, and internal and external communication problems.

    Table of Contents

    FAILURE
    A Formal Definition of Failure
    Failure Patterns
    The Dependability of a Software System
    Known but Not Followed: Preventing Failure
    Monitoring Systems
    Reliability in Software
    Accountability for Failure
    Getting Out of Failures
    Product and Project Failures
    Summary

    SYSTEMS
    Application of Systems Thinking in Software
    The Law of Requisite Variety
    Most See, Very Few Observe
    System Dynamics
    Going Beyond the Analytical Approach
    Management by Exception
    Types of Systems
    Complexity of Systems
    Summary

    STRATEGIES
    The True System
    Aligning Information Strategy with Business Strategy
    Everything Important Is Not Strategic
    A Few Common Internal Strategic Decisions
    Using Strategies
    Failed Strategies
    Summary

    REQUIREMENTS
    Requirements for Products and Projects
    Stakeholders
    Stand-Ins
    The Nature of Requirements
    Types of Requirements
    Classifying Requirements
    A Hierarchy of Requirements
    Requirements and Process
    Design and Architecture
    Changes in Requirements
    Requirements and QA
    Summary

    ARCHITECTURE AND DESIGN
    Background
    Architecture versus Design
    The Importance of Architecture
    Software Architecture Document
    Types of Architecture
    System Design
    Design Document
    The Process of Designing
    A Note on Design Patterns
    Zachman Framework
    What It Takes To Be a Good Architect and Designer
    Occam's Razor
    Summary

    DATA AND INFORMATION
    Nature of the Data
    Determining Information Needs
    Systems of Record
    Summary

    LIFE CYCLES
    Everything Sequential Is Not a Life Cycle
    Coarse-Grained Process Models
    Standard Software Life Cycles
    Using life Cycle As a Model
    Choosing the Right Life Cycle
    Prototypes Are Important
    Life-Cycle Phases
    Some Places in the Life Cycle Are Better Suited to
    Terminate a Project
    Software Shelf Life
    Data Shelf Life
    Movies versus Software
    Summary

    THE SEMANTICS OF PROCESSES
    Process and Entropy
    Developing Good Processes
    Take Care of the Basics
    Benefits of Processes
    Resistance to Processes
    Processes Degenerate into Bureaucracies
    Do Processes Help?
    Introducing New Processes
    Summary

    OFF-THE-SHELF SOFTWARE
    The Involved Parties
    Buying Off-the-Shelf Software
    Preparing to Buy
    Reducing Risk of Failure
    The Dependency Factor
    Summary

    CUSTOMIZATION
    Customization versus Enhancements
    Customization and Configuration
    Customization and Ground-Up Creation
    Customization Requirements
    Customization Facilities
    Handling Upgrades to Customization
    Why Customization Projects Fail
    Dominance of the Customization Model
    Need for a Customization Framework
    Pros and Cons of Customization
    Customization and Management
    Summary

    MIGRATION
    What Triggers a Migration?
    The Strategy of Migration
    The Use of Tools
    Risks of Migration
    Resistance to Migration
    Scoping Migration Projects
    Migration in Design
    Migrating Data
    The Right Staff
    Summary

    QUALITY AND TESTING
    The Definition of Quality
    Quality as Feedback
    Products and Processes
    Quality Under Constraints
    QA Effort Sizing
    Dealing with Poor Specifications
    Test Plans and Cases
    Types of Testing
    Scope of Testing
    Automation in Testing
    Test Environments
    Quality Improvements Over Time
    Bugs
    Classification of Bugs
    Push and Pull: The Equation Between Development and QA
    Multiple Views of Quality
    Quality Assurance (QA) and Testing Skills
    Summary: Quality Matters

    COMMUNICATION
    The Objectives of Communication
    Communication Models
    The Problem of Miscommunication
    Information Dynamics
    Modes of Communication
    Communication Tools
    Channels
    Demos
    Other Aspects of Communications
    Communicating Across Fault Lines
    Escalation
    Communication Techniques
    Content
    Status
    The Three Popular Vectors
    Summary

    REPORTS
    The History of Reporting
    Reporting Hierarchy
    What Is a Good Report?
    Types of Reports
    Report Design
    Quality
    Queries
    Queries versus Reports
    OTS Reports
    Report: Other Aspects
    Summary

    DOCUMENTATION
    Types of Documentation
    Problems with Documentation
    Summary

    SECURITY
    The Demand for Security
    Security Crosses Conventional Application Boundaries
    The Weaker Links
    Security Is Linked to Value and Ownership
    Identifying the Correct Entities to Protect
    The Business Perspective
    The Technical Perspective
    Learning from the Human Security System
    A Counter-Intuitive Approach from Field Sports
    The Human Perspective
    Processes and Procedures
    Summary

    CONCLUSION

    APPENDIX: Discussion of Terms

    BIBLIOGRAPHY

    INDEX

    Editorial Reviews

    ". . . very well written. The authors do an excellent job of covering both the breadth and depth of each problem’s discussion in each chapter . . . a must-read for any software development professional."

    – Daniel Campanelli, in StickyMinds.com, September 2008