400 likes | 644 Views
Rapid Development (Part 1). Mihail V. Mihaylov RammSoft. In The Beginning Was… The Triangle. Scope. Time. Cost. The Holy Triangle of PM. Scope. Time. Cost. The Holy Triangle of PM. The Holy Triangle of PM. Scope. Time. Cost. In Software Development Time Is the Most Critical Factor.
E N D
Rapid Development(Part 1) Mihail V. Mihaylov RammSoft
In The Beginning Was…The Triangle Scope Time Cost
The Holy Triangle of PM Scope Time Cost
The Holy Triangle of PM Scope Time Cost
In Software Development Time Is the Most Critical Factor Scope Time Cost
What Rapid Development is not? • It isn't Rapid Development™ —a magic phrase or buzzword • It isn't a glitzy Blaze-O-Matic® or Gung-HO-OO™ rapid-development methodology
What is Rapid Development? • It is a generic term that means "speedy development" or "shorter schedules" • It means developing software faster than you do now
Quotes • I wish I had a simple solution to the development-speed problem. I also wish I had five million dollars.But simple solutions tend to work only for simple problems, and software development isn't a simple problem.Rapid development of software is even less simple. (Steve McConnell) • For every complex problem, there is an answer that is short, simple, and wrong. (H. L. Mencken)
Who Invented it? Steve McConnell http://www.stevemcconnell.com/
Who Is Steve McConnell? • CEO and Chief Software Engineer at Construx Software (http://www.construx.com/) • Technical book writer • Editor in Chief Emeritus of IEEE Software magazine
Steve McConnell’s Books • Code Complete (1993) / (2004) • Rapid Development (1996) • Software Project Survival Guide (1997) • After The Gold Rush (1999) / Professional Software Development (2003) • Software Estimation: Demystifying the Black Art (2006)
More Steve McConnell Facts • In 1998 named one of the 3 most influential people in the software industry • Won twice Software Development magazine's Jolt Excellence award for outstanding SD book of the year
Rapid-Development Strategy • Avoid classic mistakes • Apply development fundamentals • Manage risks to avoid catastrophic setbacks • Apply schedule-oriented practices
Efficient Development Efficient Development
Software-Development Fundamentals • Management fundamentals • Technical fundamentals • Quality-assurance fundamentals
Management Fundamentals • Planning • Tracking • Measurement
Technical Fundamentals • Requirements management • Design • Construction • Configuration management
QA Practices • Error-prone modules analysis • Testing • Technical reviews • Walkthroughs, Code reading, Inspections (find 60-90% of the defects)
Risk Management • Levels of risk management • Crisis management (Fire-fighting) • Risk mitigation • Prevention • Elimination of root causes
Four Dimensions of Development • People • Process • Product • Technology
People • Peopleware issues have the biggest impact on software productivity and software quality • 10-to-1 difference in productivity among developers • 5-to-1 difference in productivity among teams
Ways to MaximizeHuman Potential • Staff selection • Top talent, Job matching, Career progression, Team balance, Misfit elimination • Team organization • Motivation
Process • Includes management and technical methodologies • Development fundamentals • Risk management • Quality assurance • Rework avoidance • Customer orientation
Product • Product size and complexity • Product’s business area • Product goals
Technology • Programming languages • Frameworks • IDE’s • Other tools • Designers • Debuggers
Which Dimension Matters The Most? It depends
Classic Mistakes • What is so “classic” in them? • What are the reasons for them?
People-Related Mistakes • Undermined motivation • Weak personnel • Uncontrolled problem employees • Heroics (Wishful thinking) • Adding people to a late project • Noisy, crowded offices
People-Related Mistakes • Friction between developers and customers • Unrealistic expectations • Lack of • effective project sponsorship • stakeholder buy-in • user input • Politics placed over substance
Process-Related Mistakes • Overly optimistic schedules • Insufficient risk management • Abandonment of planning under pressure • Wasted time during the fuzzy front end • Insufficient management controls • Planning to catch up later
Product-Related Mistakes • Requirements gold-plating • Feature creep • Developer gold-plating • Push-me, pull-me negotiation • Research-oriented development
Technology-Related Mistakes • Silver-bullet syndrome • Overestimated savings from new tools or methods • Switching tools in the middle of a project • Lack of automated source-code control
Conclusion • Avoid classic mistakes if possible • Explain the potential threat when forced to make classic mistakes • Actively manage the risks • Quit
Thank You! • Google: Спри и помисли! • Email: mikeramm@gmail.com • Personal blogs: • http://mikeramm.blogspot.com • http://spriipomisli.blogspot.com