Presentation is loading. Please wait.

Presentation is loading. Please wait.

Processes, Tools, & Best Practices. My Background Lexmark Software Development for 15 years (‘93 – ‘08) – Multi-tier Java application servers – Window.

Similar presentations


Presentation on theme: "Processes, Tools, & Best Practices. My Background Lexmark Software Development for 15 years (‘93 – ‘08) – Multi-tier Java application servers – Window."— 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: 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.

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

5 Iterative Development DefinitionPlanningProductionTermination Charter Approved Project Plan Approved Deliverables Approved Closeout Report Approved Gates: Phases: Need for Project Met -Business Need -Deliverables -Scope -Success Criteria Activities: -Scope -Milestone schedule -Risks -Team -Execute -Monitor -Adjust -Gather feedback -Analyze project -Improve Time: A week or twoFew daysWeeks to yearsA week

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 ?


Download ppt "Processes, Tools, & Best Practices. My Background Lexmark Software Development for 15 years (‘93 – ‘08) – Multi-tier Java application servers – Window."

Similar presentations


Ads by Google