607 - Software Development Methodologies

Views:
 
Category: Entertainment
     
 

Presentation Description

test

Comments

Presentation Transcript

SOFTWARE DEV METHODOLOGIES :

SOFTWARE DEV METHODOLOGIES 607 – VISHNU VARADARAJ

“Natural” stages of software development:

“Natural” stages of software development Enthusiasm Disillusionment Panic Search for the Guilty Punishment of the Innocent Praise and Honors for Non-Participants

Success (or lack there of):

Success (or lack there of) Less than 10% of software projects succeed Criteria for success?: On time, within budget, feature complete, works (failure free) Why is it so hard to get this right ? Why is it hard to communicate? Documents can’t fully describe the requirements

Software Dev failures:

Software Dev failures 2005 : Australian Customs Cargo IS: original cost estimate $33 million, cost by 2005 $250 million, system delivered 3 years late, caused major problems on the Australian import and export industries. 2002 : State of Florida Child Welfare System: original cost estimate in 1990, $32 million, delivery by 1998. Cost by 2002 $170 million, system predicted to be delivered by 2005 at a cost of $230 million 1992 '...Westpac's (Banking Corporation) highly ambitious CS90 project was described as 'under review' after five years of development and an investment believed to be $200-$300 million....CS90 is no longer a project

Waterfall Model:

Waterfall Model Requirements – defines needed information, function, behavior, performance and interfaces. Design – data structures, software architecture, interface representations, algorithmic details. Implementation – source code, database, user documentation, testing.

When to use the Waterfall Model:

When to use the Waterfall Model Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform.

Microsoft - Schedules:

Microsoft - Schedules Schedules are done after the initial design document is ready for review There is an inherit tension between the schedule and the design document Each needs to be constantly re-evaluated and re-calibrated against the other Software scheduling in general is something of an imprecise science Concatenation of educated guesses

Microsoft - Milestones:

Microsoft - Milestones Milestones are used to logically segment development into 9-12 week periods Early Milestones: Critical features & core code Later Milestones: Functionality that can be cut Milestones help maintain “ ship-mode” focus/atmosphere over long projects Milestones encourage staging of products Enable review of progress (“Postmortems”) Facilitate corrections to master schedule

Microsoft - Builds:

Microsoft - Builds Products are compiled and released daily Forcing factor for code interoperation Provides steady progress measurement Enables daily test coverage of entire product Builds can often take a long time… “Clean Build” of Windows NT takes 36 hours It is critical that delays are minimized Strict check-in procedures typically enforced

Agile Development:

Agile Development Speed up or bypass one or more life cycle phases Usually less formal and reduced scope Used for time-critical applications Used in organizations that employ disciplined methods

When to use Agile Development:

When to use Agile Development Requirements are unstable or have to be clarified Priorities keep changing until product ships Develop user interfaces Time bound projects More maintenance, than original development Requires management of multiple dependencies .

Salesforce - problem:

Salesforce - problem

Salesforce - ADM:

Salesforce - ADM ADM (Adaptive Delivery Methodology) is an Agile discipline that is specific to salesforce.com. It employs Scrum project management framework, adopts certain extreme programming practices and is based on lean principles. Self organized, self powered teams Time boxed, 30-day sprints Daily, verbal communication Transparency

Salesforce - Transformation:

Salesforce - Transformation

Rapid Application Model (RAD):

Rapid Application Model (RAD) Requirements planning phase (a workshop utilizing structured discussion of business problems) User description phase – automated tools capture information from users Construction phase – productivity tools, such as code generators, screen generators, etc. inside a time-box. ( “ Do until done ” ) Cutover phase -- installation of the system, user acceptance testing and user training

When to use RAD:

When to use RAD Reasonably well-known requirements User involved throughout the life cycle Project can be time-boxed Functionality delivered in increments High performance not required Low technical risks System can be modularized

Parabay - Prototyping:

Parabay - Prototyping Define application attributes using admin app Define schema: entities, properties, types, field attributes Define view definitions: list view, editor view, entities used in a view Define urls and view mappings Use prototype client to validate behavior

Parabay - Customization:

Parabay - Customization Use server model defined in prototyping step. Customize client to redefine default behaviors Re-implement client when necessary to optimize user experience Simultaneously ship to customers on all platforms using minimal coding.

Google - philosophy:

Google - philosophy Smart people + creative environment + outlet for ideas = innovation User centered design Build products that people really want “Don’t be evil” philosophy built into products Accept ideas from everywhere, prioritize top 100

Google methodology:

Google methodology 3-person units or projects (like start-ups!) Unit is co-located (sit next to each other) also with PM Engineers work on project for 3-4 months, then transition to next project With 180 engineers, they can work on 60 projects – thus ability to try high-risk projects ( Googlettes ”) Each project manager works with 9-10 people across units. The technical lead in each unit of 3 is responsible for technical excellence of project.

Apple - philosophy:

Apple - philosophy No market study Small team who designs their major products. Owns their entire system Focuses on a select group of products Maniacal focus on perfection

Apple methodology:

Apple methodology Good design is a present Pixel perfect mockups are critical 10 to 3 to 1; 10 different mockups to start with. Paired design meetings – Brainstorm & Production Pony meetings

authorStream Live Help