CITATION

Jones, Capers. Software Engineering Best Practices. US: McGraw-Hill Osborne Media, 2009.

Software Engineering Best Practices

Authors:

Published:  October 2009

eISBN: 9780071621625 0071621628 | ISBN: 9780071621618
  • Contents
  • Foreword
  • Acknowledgments
  • Introduction
  • Chapter 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
  • Readings and References
  • Chapter 2. Overview of 50 Software Best Practices
  • 1. Best Practices for Minimizing Harm from Layoffs and Downsizing
  • 2. Best Practices for Motivation and Morale of Technical Staff
  • 3. Best Practices for Motivation and Morale of Managers and Executives
  • 4. Best Practices for Selection and Hiring of Software Personnel
  • 5. Best Practices for Appraisals and Career Planning for Software Personnel
  • 6. Best Practices for Early Sizing and Scope Control of Software Applications
  • 7. Best Practices for Outsourcing Software Applications
  • 8. Best Practices for Using Contractors and Management Consultants
  • 9. Best Practices for Selecting Software Methods, Tools, and Practices
  • 10. Best Practices for Certifying Methods, Tools, and Practices
  • 11. Best Practices for Requirements of Software Applications
  • 12. Best Practices for User Involvement in Software Projects
  • 13. Best Practices for Executive Management Support of Software Applications
  • 14. Best Practices for Software Architecture and Design
  • 15. Best Practices for Software Project Planning
  • 16. Best Practices for Software Project Cost Estimating
  • 17. Best Practices for Software Project Risk Analysis
  • 18. Best Practices for Software Project Value Analysis
  • 19. Best Practices for Canceling or Turning Around Troubled Projects
  • 20. Best Practices for Software Project Organization Structures
  • 21. Best Practices for Training Managers of Software Projects
  • 22. Best Practices for Training Software Technical Personnel
  • 23. Best Practices for Use of Software Specialists
  • 24. Best Practices for Certifying Software Engineers, Specialists, and Managers
  • 25. Best Practices for Communication During Software Projects
  • 26. Best Practices for Software Reusability
  • 27. Best Practices for Certification of Reusable Materials
  • 28. Best Practices for Programming or Coding
  • 29. Best Practices for Software Project Governance
  • 30. Best Practices for Software Project Measurements and Metrics
  • 31. Best Practices for Software Benchmarks and Baselines
  • 32. Best Practices for Software Project Milestone and Cost Tracking
  • 33. Best Practices for Software Change Control Before Release
  • 34. Best Practices for Configuration Control
  • 35. Best Practices for Software Quality Assurance (SQA)
  • 36. Best Practices for Inspections and Static Analysis
  • 37. Best Practices for Testing and Test Library Control
  • 38. Best Practices for Software Security Analysis and Control
  • 39. Best Practices for Software Performance Analysis
  • 40. Best Practices for International Software Standards
  • 41. Best Practices for Protecting Intellectual Property in Software
  • 42. Best Practices for Protecting Against Viruses, Spyware, and Hacking
  • 43. Best Practices for Software Deployment and Customization
  • 44. Best Practices for Training Clients or Users of Software Applications
  • 45. Best Practices for Customer Support of Software Applications
  • 46. Best Practices for Software Warranties and Recalls
  • 47. Best Practices for Software Change Management After Release
  • 48. Best Practices for Software Maintenance and Enhancement
  • 49. Best Practices for Updates and Releases of Software Applications
  • 50. Best Practices for Terminating or Withdrawing Legacy Applications
  • Summary and Conclusions
  • Readings and References
  • Chapter 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
  • Readings and References
  • Chapter 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
  • Readings and References
  • Chapter 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
  • Readings and References
  • Chapter 6. Project Management and Software Engineering
  • Introduction
  • Software Sizing
  • Software Progress and Problem Tracking
  • Software Benchmarking
  • Summary and Conclusions
  • Readings and References
  • Chapter 7. Requirements, Business Analysis, Architecture, Enterprise Architecture, and Design
  • Introduction
  • Software Requirements
  • Statistical Analysis of Software Requirements
  • Business Analysis
  • Software Architecture
  • Enterprise Architecture
  • Software Design
  • Summary and Conclusions
  • Readings and References
  • Chapter 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
  • Readings and References
  • Chapter 9. Software Quality: The Key to Successful Software Engineering
  • Introduction
  • Defining Software Quality
  • Measuring Software Quality
  • Defect Prevention
  • Software Defect Removal
  • Software Quality Specialists
  • Summary and Conclusions on Software Specialization
  • The Economic Value of Software Quality
  • Summary and Conclusions
  • Readings and References
  • Index