Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Processes: How to create great software, doing it right the first time and keep your sanity Matt Howland Francesca Noli.

Similar presentations


Presentation on theme: "Software Development Processes: How to create great software, doing it right the first time and keep your sanity Matt Howland Francesca Noli."— Presentation transcript:

1 Software Development Processes: How to create great software, doing it right the first time and keep your sanity Matt Howland Francesca Noli

2 Agenda Software development processes: case studies  Traditional  Consulting/Services Release Timelines Best practices Development Roles  Employee vs. consultant  Roles in a development organization Q&A

3 Software dev process: traditional Enterprise Software:  release cycle is often 12-18 months and involves between 15 and 50 products (family pack vs. Division or Applications)  MRD (Market Requirement Document)  FDD (Functional Requirement Document)  TDD (Technical Requirement Document)  Code  Unit Test  Acceptance  QA  Release  Changes after formal hand off to dev (post FDD) through change control requests reviewed by SVP of development

4 Software development process: Extreme Development I.E. Oracle: used in some divisions informally:  Same release length as traditional development  Used internally to the development organization (no QA or release impact)  Developer and Product manager meet every morning for 30 min to decide which function to implement that day  Product manager gives feedback on previous day code

5 Software Development Process: Start Up Release every 6-10 weeks  Vision or Product Direction from CEO and VPs  Detailed product roadmap from product management  MRDs/PRDs (Market Requirement Document/ Product Requirement Document)  Functional Specs  Development (Integrated Research and Development)  QA  Regression testing  Release

6 Software Development Process: Consulting/Services Largely client defined/negotiated release schedule  JAD (Joint application development) Sessions  PRD  Functional Spec  Integration/Migration Plan  Negotiated client milestones/deliverables  Integrated QA

7 Software Release Schedule One major challenge is that you are juggling multiple releases at any time: Example: January 2006 Release 2 is ready to “go out” (end of qa)  Heavy on dev to fix critical issues  Heavy on QA and release to package it Release 3 is code complete and “ready” to be handed off to QA  Heavy on development to wrap up the code  Heavy on QA to complete their test cases Release 4 is in planning phase  Heavy on product manager to complete PRDs While this is all going on, the customer is still on release 1 And this is the good news because on license based software, you don’t even know what release your customer is on

8 Sample Timeline January customer on 1 QA on 2 Dev on 3 PM on 4 February customer on 2 QA on 3 Dev on 3 and 4 PM on 4 and 5 March customer on 2 QA on 3 Dev on 4 PM on 5 April customer on 3 QA on 4 Dev on 4 and 5 PM on 5 and 6 Jan 06 Feb06March 06April 06

9  It all starts with good people…but once you have good people you still need more…  Unit tests done by dev and PM before QA starts  Additional automated/integrated unit test for complex processes (JUnit, NUnit)  Strong process for QA and release  No changes after PRD hand off  Document, document, document (includes robust commenting as well as formal document both user and technical)  (JDoc, NDoc are great time savers)  Customer Driven feature set  Peer code reviews  Revision Managment  Up front design (UML, Functional Spec) Best Practices

10 Development Role: Traditional Employee  Perks  Project Ownership  Training on New Technologies  Camaraderie  Advancement to roles outside of Engineering, Management, Product Management, Etc.  Traditional employee benefits  Downside  More distance between you and the customer  Less flexibility

11 Development Role: Consultant  Perks  “Guru” status  More flexible schedules  Extensive customer interaction  Pay  Downside  Less Project Ownership  Career advancement and training are your responsibility and will have to be actively sought out.  No traditional benefits package

12 Development Roles  Customer Product Management  Architect  User Interface  Dev manager/Developer  QA  Release  Documentation

13 Q&A


Download ppt "Software Development Processes: How to create great software, doing it right the first time and keep your sanity Matt Howland Francesca Noli."

Similar presentations


Ads by Google