Download presentation
Presentation is loading. Please wait.
Published byCarol Cain Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.