Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies
by: Capers Jones
Abstract: Proven techniques for software development success In this practical guide, software-quality guru Capers Jones reveals best practices for ensuring software development success by illustrating the engineering methods used by the most successful large software projects at leading companies such as IBM, Microsoft, Sony, and EDS. Software Engineering Best Practices covers estimating and planning; requirements analysis; change control; quality control; progress and cost tracking; and maintenance and support after delivery. Agile development, extreme programming, joint application design (JAD), six-sigma for software, and other methods are discussed.
Full details
Table of Contents
- A. ABOUT THE AUTHOR
- B. Foreword
- C. Acknowledgments
- 1. Introduction and Definitions of Software Best Practices
- 2. Overview of 50 Software Best Practices
- 3. A Preview of Software Development and Maintenance in 2049
- 4. How Software Personnel Learn New Skills
- 5. Software Team Organization and Specialization
- 6. Project Management and Software Engineering
- 7. Requirements, Business Analysis, Architecture, Enterprise Architecture, and Design
- 8. Programming and Code Development
- 9. Software Quality: The Key to Successful Software Engineering
Tools & Media
Expanded Table of Contents
-
A.
ABOUT THE AUTHOR
-
B.
Foreword
-
C.
Acknowledgments
-
1.
Introduction and Definitions of Software Best Practices
- What Are “Best Practices” and How Can They Be Evaluated?
- Multiple Paths for Software Development, Deployment, and Maintenance
- Paths for Software Deployment
- Paths for Maintenance and Enhancements
- Quantifying Software Development, Deployment, and Maintenance
- Critical Topics in Software Engineering
- Overall Ranking of Methods, Practices, and Sociological Factors
- Summary and Conclusions
-
2.
Overview of 50 Software Best Practices
- Best Practices for Minimizing Harm from Layoffs and Downsizing
- Best Practices for Motivation and Morale of Technical Staff
- Best Practices for Motivation and Morale of Managers and Executives
- Best Practices for Selection and Hiring of Software Personnel
- Best Practices for Appraisals and Career Planning for Software Personnel
- Best Practices for Early Sizing and Scope Control of Software Applications
- Best Practices for Outsourcing Software Applications
- Best Practices for Using Contractors and Management Consultants
- Best Practices for Selecting Software Methods, Tools, and Practices
- Best Practices for Certifying Methods, Tools, and Practices
- Best Practices for Requirements of Software Applications
- Best Practices for User Involvement in Software Projects
- Best Practices for Executive Management Support of Software Applications
- Best Practices for Software Architecture and Design
- Best Practices for Software Project Planning
- Best Practices for Software Project Cost Estimating
- Best Practices for Software Project Risk Analysis
- Best Practices for Software Project Value Analysis
- Best Practices for Canceling or Turning Around Troubled Projects
- Best Practices for Software Project Organization Structures
- Best Practices for Training Managers of Software Projects
- Best Practices for Training Software Technical Personnel
- Best Practices for Use of Software Specialists
- Best Practices for Certifying Software Engineers, Specialists, and Managers
- Best Practices for Communication During Software Projects
- Best Practices for Software Reusability
- Best Practices for Certification of Reusable Materials
- Best Practices for Programming or Coding
- Best Practices for Software Project Governance
- Best Practices for Software Project Measurements and Metrics
- Best Practices for Software Benchmarks and Baselines
- Best Practices for Software Project Milestone and Cost Tracking
- Best Practices for Software Change Control Before Release
- Best Practices for Configuration Control
- Best Practices for Software Quality Assurance (SQA)
- Best Practices for Inspections and Static Analysis
- Best Practices for Testing and Test Library Control
- Best Practices for Software Security Analysis and Control
- Best Practices for Software Performance Analysis
- Best Practices for International Software Standards
- Best Practices for Protecting Intellectual Property in Software
- Best Practices for Protecting Against Viruses, Spyware, and Hacking
- Best Practices for Software Deployment and Customization
- Best Practices for Training Clients or Users of Software Applications
- Best Practices for Customer Support of Software Applications
- Best Practices for Software Warranties and Recalls
- Best Practices for Software Change Management After Release
- Best Practices for Software Maintenance and Enhancement
- Best Practices for Updates and Releases of Software Applications
- Best Practices for Terminating or Withdrawing Legacy Applications
- Summary and Conclusions
- Readings and References
-
3.
A Preview of Software Development and Maintenance in 2049
- Introduction
- Requirements Analysis Circa 2049
- Design Circa 2049
- Software Development Circa 2049
- User Documentation Circa 2049
- Customer Support in 2049
- Deployment and Customer Training in 2049
- Maintenance and Enhancement in 2049
- Software Outsourcing in 2049
- Software Package Evaluation and Acquisition in 2049
- Technology Selection and Technology Transfer in 2049
- Enterprise Architecture and Portfolio Analysis in 2049
- A Preview of Software Learning in 2049
- Due Diligence in 2049
- Certification and Licensing in 2049
- Software Litigation in 2049
- Summary and Conclusions
-
4.
How Software Personnel Learn New Skills
- Introduction
- The Evolution of Software Learning Channels
- What Topics Do Software Engineers Need to Learn Circa 2009?
- Software Engineering Specialists Circa 2009
- Varieties of Software Specialization Circa 2009
- Approximate Ratios of Specialists to General Software Personnel
- Evaluating Software Learning Channels Used by Software Engineers
- Software Areas Where Additional Education Is Needed
- New Directions in Software Learning
- Summary and Conclusions
- Curricula of Software Management and Technical Topics
-
5.
Software Team Organization and Specialization
- Introduction
- Quantifying Organizational Results
- The Separate Worlds of Information Technology and Systems Software
- Colocation vs. Distributed Development
- The Challenge of Organizing Software Specialists
- Software Organization Structures from Small to Large
- One-Person Software Projects
- Pair Programming for Software Development and Maintenance
- Self-Organizing Agile Teams
- Team Software Process (TSP) Teams
- Conventional Departments with Hierarchical Organization Structures
- Conventional Departments with Matrix Organization Structures
- Specialist Organizations in Large Companies
- Software Maintenance Organizations
- Customer Support Organizations
- Software Test Organizations
- Software Quality Assurance (SQA) Organizations
- Summary and Conclusions
- 6. Project Management and Software Engineering
- 7. Requirements, Business Analysis, Architecture, Enterprise Architecture, and Design
-
8.
Programming and Code Development
- Introduction
- A Short History of Programming and Language Development
- Why Do We Have More than 2500 Programming Languages?
- Exploring the Popularity of Programming Languages
- How Many Programming Languages Are Really Needed?
- Creating a National Programming Language Translation Center
- Why Do Most Applications Use Between 2 and 15 Programming Languages
- How Many Programmers Use Various Programming Languages?
- What Kinds of Bugs or Defects Occur in Source Code?
- Logistics of Software Code Defects
- Preventing and Removing Defects from Application Source Code
- Forms of Programming Defect Prevention
- Forms of Programming Defect Removal
- Economic Problems of the “Lines of Code” Metric
- Summary and Conclusions
- 9. Software Quality: The Key to Successful Software Engineering
Book Details
Title: Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies
Publisher: : New York, Chicago, San Francisco, Lisbon, London, Madrid, Mexico City, Milan, New Delhi, San Juan, Seoul, Singapore, Sydney, Toronto
Copyright / Pub. Date: 2010 The McGraw-Hill Companies
ISBN: 9780071621618
Authors:
Capers Jones is the author of this McGraw-Hill Professional publication.
Description: Proven techniques for software development success In this practical guide, software-quality guru Capers Jones reveals best practices for ensuring software development success by illustrating the engineering methods used by the most successful large software projects at leading companies such as IBM, Microsoft, Sony, and EDS. Software Engineering Best Practices covers estimating and planning; requirements analysis; change control; quality control; progress and cost tracking; and maintenance and support after delivery. Agile development, extreme programming, joint application design (JAD), six-sigma for software, and other methods are discussed.
