Software Development The Good, The Bad (and Ugly) David Kaminsky Dave Ogle.

Slides:



Advertisements
Similar presentations
(nothing to see here). First thing you need to learn is that sysadmin is about people, not technology If youre a sysadmin so you dont have to deal with.
Advertisements

Operations management is concerned with producing the right goods and services at the right quality and quantity. They need to turn the factors of production.
Measuring a Web Project's Financial.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Moving Your Computer Lab(s) to the Cloud Rick O’Toole & Dave Hicking University of Connecticut Libraries.
The Perfect Job Written and Presented by: Seikou Triangle.
Chapter 1 Jim Hawkins’ Story I
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Term Project Teams of ~3 students Pick a system (discuss choice with me)  Want simple functionality, security issues, whole system (e. g., client and.
IS Terms and Introductory Concepts. Contemplative Questions What is an information system? What is an information system? Why do we care about the difference.
©2003 Prentice Hall Business Publishing, Accounting Information Systems, 9/e, Romney/Steinbart 18-1 Accounting Information Systems 9 th Edition Marshall.
CS533 - Concepts of Operating Systems
Introduction to a Programming Environment
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
CLOUD COMPUTING.
VENDORS, CONSULTANTS AND USERS
Software Engineering Tutorial. Tutorial objectives  Direct application for the SW engineering activities.  Discuss real software development case studies.
Software Architecture in Practice (3rd Ed) Introduction
How Do I Find a Job to Apply to?
SOFTWARE ENGINEERING JOBS Tyler White & Mim Cobaj.
Background History Note 1 Refer to Soltis: Appendix.
All season sport Goods Chris ipina. What is it? All Season Sporting Goods is a sports equipment store for all different types of sports including football,
Copyright Course Technology Chapter 14: Executing.
Copyright Course Technology 1999
Module 3 – Release Letting Go so your Team can Support you Effectively.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Presented by:. Copyright 2009, Elizabeth Allen, Marketsmartz, Inc. CODE Standardized Training Tools & Templates Asks each member of the team to answer.
Implementing the Rule of Four Module 0 This project is sponsored, in part, by a grant from the National Science Foundation: NSF DUE Any opinions,
Chapter 12 Project Communication and Documentation
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
5. Planning.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
JFK-103B1W9 and JFK-103B3W9 This program is going to be used to learn about:  Decision Making Skills  Communication Skills  Team Building Skills and.
Help Desks in the Midst of Mergers & Acquisitions.
The First in GPON Verification Classic Mistakes Verification Leadership Seminar Racheli Ganot FlexLight Networks.
Copyright 2007, Information Builders. Slide 1 So You Just Bought WebFOCUS… Dan Schultz Director June, 2008.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
BY JACK G. AND IAN H. NXT Function Robots Project.
SYSTEM ANALYSIS 3 rd AUGUSUT 2005 WEDNESDAY LOWER SIXTH COMPUTING LESSON Prepared by: T.Fina.
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
2  Supervisor : MENG Sreymom  SNA 2012_Group4  Group Member  CHAN SaratYUN Sinot  PRING SithaPOV Sopheap  CHUT MattaTHAN Vibol  LON SichoeumBEN.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Latifa AlAbdlkarim King Saud University October,2009.
By Garrett Kelly.  “There is nothing in this world constant but inconstancy.” – Swift  “It is common sense to take a method and try it. If it fails,
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Team Assessment In software development, teams are how we accomplish more and better than what can be accomplished by an individual.
BY JACK GAMBLE AND IAN HERDEGEN NXT Function Robots Project.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
An Overview of Software Testing By Kay E. Duchesne.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Version Control and SVN ECE 297. Why Do We Need Version Control?
A PC Wakes Up A STORY BY VICTOR NORMAN. Once upon a time…  a PC (we’ll call him “H”) is connected to a network and turned on. Aside: The network looks.
Internet Flow By: Terry Hernandez. Getting from the customers computer onto the internet Internet Browser
S/W Programming & Languages Chapter 10 Where Your Software Comes From © The McGraw-Hill Companies, Inc., 2000.
1 Sean Aluoto Anthony Keeley Eric Werner. 2 Project Plan Overview Project Lifecycle model Time line Deliverables Organization plan Risk management Design.
Module 5 look after yourself Unit 1 We’d better get you to hospital.
Getting Ready for the NOCTI test April 30, Study checklist #1 Analyze Programming Problems and Flowchart Solutions Study Checklist.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
To The GLG Rolling Programme Designed For Your Success! Week 1
Extreme Programming.
Scrum MODULE 3 – Part 3.
Tom Chothia Computer Security
Applied Software Project Management
PLANNING.
Sales Managed Environment®
Presentation transcript:

Software Development The Good, The Bad (and Ugly) David Kaminsky Dave Ogle

What We’ll Talk About Some job experiences that we’ve had –Startup (internet technology) –Storage product –Networking product Why we’re telling you this –Diane had nothing better to fill the time … –Or, to relate some real-world experiences … –You decide…

The Good - Startup What was done: –Generated running server and client software in short period of time (< 6 months) –Server code ran on production site, 24x7 for 12 months with no outages (due to code) –Client code ran on 1000’s of client machines –Updates were done to both code bases with minimal disruption –Small team of 10 or so developers/architects/DBAs/etc. Started with a very small team and grew

The Good - Startup What worked: –Architecture/Design Had an architecture and a design Spent time up front understanding what the problem was, and what the design/architecture should be – good interaction with marketing team Spent time as development was going on to review and tweak the design/architecture Open and frank conversation between the team Closed room architecture resolution policy Open evaluation of skills of team members Hired a project manager early on – structure and discipline Willing to throw out code that was hard to understand and structured ‘uniquely’ –Willing to start over when necessary. Second time is usually easier What didn’t work –The ‘harold’ factor: toss code that doesn’t work –Airclic factor -- no market

The Bad: Storage Product What was done: –Large network storage project: Goal was to generate code for storage servers Code was to be done in conjunction with HW development Large team of 60+ developers/architects/testers/etc. But: code quality was poor … really poor What would you do?

The Bad: Storage Product What worked –Assigned a tiger team to solve a specific sub- problem (once) –Team had good design skills –Good communication skills among team –Small team – 5 developers/architects –Code delivered on time, ran well –Team did prototype first, threw that out and started over

The Ugly Warning signs that a project may be in trouble: –Company buys dinner for team every night for months on end Some developers arrange their schedule to maximize free dinners, not code output or quality. –When you ask the chief architect a simple architecture question and get a 30 minute soliloquy that makes no sense. If you ask him again, you get a different soliloquy –When you ask how a key component/module works you get a the answer “my job is just to make it work, not to understand how it works” from the person responsible for the module Developers don’t ask the architect – fear and boredom. –When you join the project and the lead developer comes into your office to tell you to stay out of his way –When the build breaks on a nightly basis due to programmer errors –When every component in the system duplicates the same code (eg, parsing config XML) … and all do it poorly.

Why things failed What didn’t work –No real design for the system –No real understanding of customer –No time spent up front to design –Team members didn’t understand the goals (large or small) –Problems addressed as they came up – band aid approach used –Key lead people were in over their heads Early turnover in technical leadership –General belief that putting in more hours coding solves basic design flaws

Networking example What was done: –Implementation of a networking protocol on PCs –Developed by a small team from a reference codebase What worked: –Architecture/Design Had an architecture and a design – see below Some skilled developers Good team dynamics What didn’t work –Key component assigned to an uninterested person (wanted to be writing academic papers, not code) All components worked approx on schedule … except that one –Limited organizational support: had to re-write modules that existed elsewhere –Bad architecture assumptions: algorithm required a 1ms clock; OS provided only 20ms clock. Algorithm became unstable.

Conclusions Time spent in design saves time in development and test –By analogy, when building a house, is your first stop: 1.to the architect to get the plans? 2.to the hardware store to buy supplies? Coding can’t solve design issues Don’t be afraid to toss out what you have and start all over –Patching broken code only makes it worse –Starting from scratch saves times in the long run, think about the long run! Admit what you don’t know –Bravado is great, but it machines don’t recognize it…..