1 / 12

Processes, Tools, & Best Practices

Processes, Tools, & Best Practices. 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)

riva
Download Presentation

Processes, Tools, & Best Practices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processes, Tools, & Best Practices

  2. 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

  3. Project Development Process Generally 2 camps at Lexmark: • 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. • 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.

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

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

  6. 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, …)

  7. 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

  8. 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

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

  10. Development/Test/Release (cont.) • Need many PCs for dev., test, and support • many OSs to support • Win9x • Win2K • WinXP • 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

  11. 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

  12. Questions ?

More Related