Скачать презентацию Processes Tools Best Practices My Background Скачать презентацию Processes Tools Best Practices My Background

e836d5c2c77cb8309eafac8156b9d4bc.ppt

  • Количество слайдов: 12

Processes, Tools, & Best Practices Processes, Tools, & Best Practices

My Background • Lexmark Software Development for 15 years (‘ 93 – ‘ 08) My Background • Lexmark Software Development for 15 years (‘ 93 – ‘ 08) – Multi-tier Java application servers – Window s printer drivers – Windows applications – Java, C, C++, Visual Basic, Perl, PHP • IBM co-op in Raleigh, NC for 2 semesters (’ 91 & ‘ 92) – OS/2 Network Manager Installer • Siemens co-op in Orlando, FL for 2 semesters (‘ 89) – System testing of telecom switching systems

Project Development Process Generally 2 camps at Lexmark: 1. Waterfall (old school) • Greatly Project Development Process Generally 2 camps at Lexmark: 1. Waterfall (old school) • Greatly depends on getting all of the requirements up front. • Large chunks of separate work (design docs, dev. , test, …) • Test and customers come late in the process. • The process is not designed around change. 2. Iterative (agile) • Light requirements (stories) and documentation. • Small chunks of work. (light docs. , small dev. , small test. ) • Test and customer/stakeholder are part of the process. • The process is designed around change.

Waterfall Development Activities: -Business Need -Deliverables -Scope -Success Criteria -Scope -Milestone schedule -Risks -Team Waterfall Development Activities: -Business Need -Deliverables -Scope -Success Criteria -Scope -Milestone schedule -Risks -Team Time: Few days A week or two Phases: Definition Gates: Need for Project Met -Execute -Monitor -Adjust Weeks to years Planning Charter Approved -Gather feedback -Analyze project -Improve A week Production Termination Project Plan Approved Deliverables Approved Closeout Report Approved Production Phases: High-level Software Design Low-level Software & Test Design High-level Gates: Design Approved Software & Test Implementation Low-level Design Approved Integration & Rollout Readines s Review Test/PTR Full Function Acceptance Project Under Change Management

Iterative Development Activities: -Business Need -Deliverables -Scope -Success Criteria -Scope -Milestone schedule -Risks -Team Iterative Development Activities: -Business Need -Deliverables -Scope -Success Criteria -Scope -Milestone schedule -Risks -Team Time: Few days A week or two Phases: Definition Gates: Need for Project Met Planning Charter Approved -Execute -Monitor -Adjust Weeks to years Production Project Plan Approved -Gather feedback -Analyze project -Improve A week Termination Deliverables Approved Closeout Report Approved

Project Prerequisites • Before getting too far into a project, the team needs to Project Prerequisites • Before getting too far into a project, the team needs to buy into and adopt a common set of best practices: – terminology – general process layout – coding standards that are automatically enforced by IDEs – automated tests & certain code coverage are required – communication methods (IM, Twiki, doc. templates, …)

Requirements Gathering • Requirement sources: – Customers (world wide, US, local; technical and non-tech. Requirements Gathering • Requirement sources: – Customers (world wide, US, local; technical and non-tech. ) – Marketing (customer and business needs) – Development and Test (technical needs) • Found it best to focus on a few customers first • Tools – sticky notes – web applications (Trac, Redline, Telelogic) – spreadsheets and/or Word docs. (user stories to heavy specs. ) – TWiki pages

Iteration Planning • Include everyone (dev. , test, project management, marketing, etc. ). • Iteration Planning • Include everyone (dev. , test, project management, marketing, etc. ). • Break work up into small deliverables so customer(s) can be engaged for early feedback. – can be discovery work, prototyping, tools dev. , code reviews, product units, etc. • Size the deliverables by flash cards in the group • Light/flexible documentation of planning on – TWiki web pages …or – spreadsheet …or – MS Project

Development/Test/Release • Code Repository (Subversion) • Development IDE (Eclipse, MS Dev. Studio, …) • Development/Test/Release • Code Repository (Subversion) • Development IDE (Eclipse, MS Dev. Studio, …) • Continual Build System (Cruise. Control, Rational Suite, …) • Automated Testing – Unit Testing (JUnit, CUnit, etc. ) – Integration Testing (JUnit) – Acceptance Testing (JUnit) • Problem Tracking System (Team. Track, Rational Suite) • Quick, light weight, communications & documentation tools (Twiki, web forum app. , IM, etc. ) • Stress and Stability Test Environment

Development/Test/Release (cont. ) • Need many PCs for dev. , test, and support – Development/Test/Release (cont. ) • Need many PCs for dev. , test, and support – many OSs to support • • • Win 9 x Win 2 K Win. XP 2003 Server Vista 2008 Server Mac Linux … different service pack levels … 32 -bit, 64 -bit … many languages - FIGSBP, Chinese Trad. , Chinese Simp. , Japanese, Korean, …) – tool: using virtual machines more and more

References • Agile Estimating and Planning – by Mike Cohn • Lean Software Development: References • Agile Estimating and Planning – by Mike Cohn • Lean Software Development: An Agile Toolkit – by Mary Poppendieck and Tom Poppendieck • Interface Oriented Design: With Patterns – by Ken Pugh • Test-Driven Development: A Practical Guide – by David Astels • Design Patterns: Elements of Reusable Object-Oriented Software (a. k. a. Gang-of-Four Book) – by Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides • Refactoring: Improving the Design of Existing Code – by Martin Fowler, Kent Beck, John Brant, and William Opdyke

Questions ? Questions ?