190 likes | 320 Views
Using a Software Development Process to Improve the 2007 U.S. Economic Census. Barry F. Sessamen Assistant Division Chief, Economic Census Data Analysis & Dissemination, ESMPD. Overview. Background on the U.S. Economic Census Description of the Software Development Process Lessons Learned
E N D
Using a Software Development Process to Improve the 2007U.S. Economic Census • Barry F. Sessamen • Assistant Division Chief, • Economic Census Data Analysis & Dissemination, ESMPD
Overview • Background on the U.S. Economic Census • Description of the Software Development Process • Lessons Learned • Conclusions and Next Steps
Background on the U.S. Economic Census • Conducted in years ending in 2 and 7 • Covers over 27 million establishments • Forms sent to businesses with paid employees – 550 different forms • Detailed information provided on the structure of the economy by industry (over 1,000 industries) and by location (states, counties, places, zip)
Economic Census Coverage of GDP Services 21% Not covered2% Finance, Insurance, Real Estate 21% Government12% Agriculture 1% (USDA) Retail Trade 9% Mining 1% Construction 5% Wholesale Trade 7% Manufacturing 14% Transportation, Communication, Utilities 7%
The Problem • Code in production that isn’t what users wanted/expected • Incomplete documentation • Defects/ “bugs” in production • Dependence on hero culture instead of standards • Different groups using different standards
Project Charter Purpose In-Scope / Out-of-Scope Resources Major Milestones Project Plan User Concept Diagram Interrelated Projects Deliverables Software Lifecycles Roles & Responsibilities Risk Management Plan Change Control Plan Communication Plan Plan
Requirements • Projects Will Define System Requirements • Separate from the Design • Functional Requirements • Define what the software system must do • Non-Functional Requirements • Describe quality of service, such as: Performance, Security, Availability, Maintainability, etc. • Review and Inspection
Design • High Level Design • Depicts the various relationships between components. • Detail Level Design • Identifies the logic specification required to code the program
Program Coding • Checklist of Coding Standards • Personal Review Checklist • Code Walkthroughs & Inspections • Promote quality by identifying defects before code is released • Promote knowledge transfer by sharing coding best practices
Testing • Last chance to fix defects/omissions before production • Unit Test • System Test • Integration • Performance • Regression • User Acceptance Test
Ongoing Activities • Software Configuration Management • Track Change Requests • Change Control Board • Metrics • Lessons Learned • Software Quality Assurance
Early Adopter Feedback Processes Updated Implementation Strategy Proven Processes Early Adopters Validate Processes Process Coaches Provide Support Train Early Adopters Rollout Processes on Flow Basis
Lessons Learned • Continuous Process Improvement • Clear, Specific Standards Developed Early in Project Lifecycle • Work Smarter, Not Harder • Allow for Errors, But Uncover Them As Far Upstream as Possible
Lessons Learned (cont.) • Code Reviews – Identify Defects and Provide Cross Training • Separate the “What” from the “How” • Form an Effective Team Environment • Keep It Short
Results • 2007 U.S. Economic Census Production Systems were in production earlier than previously achieved • Minimal disruptions to production processing (less rework) • Economic Census within budget and meeting planned system scope
Conclusion • A defined and repeatable work process has improved quality, communication, and documentation • Grow the process for the entire economic directorate – Economic Software Process Improvement (ESPI)
What is the ESPI Program Mission? To deliver a comprehensive software development process for the Economic Directorate. Our Goal: To deliver software code into production that works correctly and meets users’ needs …EVERY TIME!
Contact Information Barry F. Sessamen barry.f.sessamen@census.gov 301-763-5871