01 Introduction
01 Introduction
Lecture 1
Introduction
Reading:
Rapid Development Ch. 3.3
2
Aspects of software engr.
1. Processes necessary to turn a concept into a robust
deliverable that can evolve over time
3. Satisfying a customer
4. Managing risk
3
Ties to many fields
– computer science (algorithms, data structures, languages, tools)
– business/management (project mgmt, scheduling)
– economics/marketing (selling, niche markets, monopolies)
– communication (managing relations with stakeholders:
customers, management, developers, testers, sales)
– law (patents, licenses, copyrights, reverse engineering)
– sociology (modern trends in societies, localization, ethics)
– political science (negotiations; topics at the intersection of
law, economics, and global societal trends; public safety)
– psychology (personalities, styles, usability, what is fun)
– art (GUI design, what is appealing to users)
6
What's in it for you
• what you'll learn
– get exposure to software development practices in use today
– learn how to collaborate with others toward a common goal
– see how software is produced, from idea to ship to maintenance
– get experience working in a large team toward a common goal
– be able to articulate and understand ideas in a conversation
– understand issues and tradeoffs in decisions as a manager
8
Advice from past students
• "Work together (in the same place) as much as possible."
FEATURES
SOFTWARE
DELIVERABLE
TIME RESOURCES
10
Making software is hard
• Historically, ~ 85% of software projects "fail." Why?
– management sets unrealistic expectations; devs don't correct them
– overestimating the positive impact of shiny new tools and hardware
– hired developers based on availability despite warning signs
– personality conflicts between developers
– changes in rate structure requirements in middle of work
– one delay causes another (dev delay leads to test delay, etc.)
– hacks and shortcuts
– developers end up working "death marches" (6-day, 10-hour weeks)
– overestimating how nearly done you are ("I'm 90% there!")
– software written doesn't match the spec
– developer time taken away by other tasks
– tons of bugs come out in testing
– developers don't listen to testers; ignore severity of bugs reported
– management breaking promises (bonuses, time off, etc.)
11
Kinds of mistakes made
People Process Product Technology
• Undermined motivation • Overly optimistic schedules • Requirements gold-plating • Silver-bullet syndrome
• Weak personnel • Insufficient risk • Feature creep • Overestimated savings from
• Uncontrolled problem management new tools or methods
• Developer gold-plating
employees • Contractor failure • Switching tools in the
• Push-me, pull-me
• Heroics • Insufficient planning middle of a project
negotiation
• Adding people to a late • Abandonment of planning • Lack of automated source-
software project under pressure • Research-oriented
development code control
• Noisy, crowded offices • Wasted time during the
• Friction between developers "fuzzy front end"
and customers • Shortchanged upstream
• Unrealistic expectations activities
• Lack of effective project • Inadequate design
sponsorship • Shortchanged quality
• Lack of stakeholder buy-in assurance
• Lack of user input • Insufficient management
• Politics placed over controls
substance • Premature or overly
• Wishful thinking frequent convergence
• Omitting necessary tasks
from estimates
• Planning to catch up later
• Code-like-hell programming
12
Is SWE different?
Are the problems faced in software any different than those
faced in other engineering fields? Arguments in favor:
– testing software quality is hard (example: Halting Problem)
– lower barrier to entry
– immaturity of the discipline
– customer expectations: quality, delivery timeline, etc.
– fast pace of technological change
– software is easier to copy
• Arguments against:
– software isn't always "soft"
• change is not easy, yet requirements do change
• change often forces a rewriting of major parts of the software
– developers still need to plan, execute, test, and sell
– the discipline is still in its infancy 13