Software Development Processes: How to create great software, doing it right the first time and keep your sanity - PowerPoint PPT Presentation

About This Presentation
Title:

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

Description:

Title: Loyalty Lab Technical Integration Overview Author: Joshua Tretakoff Last modified by: Matt Howland Created Date: 4/28/2005 11:55:23 PM Document presentation format – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 14
Provided by: JoshuaTr1
Learn more at: https://fog.ccsf.edu
Category:

less

Transcript and Presenter's Notes

Title: Software Development Processes: How to create great software, doing it right the first time and keep your sanity


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
  • QA

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 dont 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
9
Best Practices
  • It all starts with good peoplebut 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)

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
QA
Write a Comment
User Comments (0)
About PowerShow.com