Construction Stefan Ast Motivation The bigger a software - - PowerPoint PPT Presentation

construction
SMART_READER_LITE
LIVE PREVIEW

Construction Stefan Ast Motivation The bigger a software - - PowerPoint PPT Presentation

How Program Size Affects Construction Stefan Ast Motivation The bigger a software development project is the more planning and organization work is needed 10x larger project usually needs 30x the effort Only 25% of this increase is


slide-1
SLIDE 1

How Program Size Affects Construction

Stefan Ast

slide-2
SLIDE 2

Motivation

  • The bigger a software development project is the

more planning and organization work is needed

  • 10x larger project usually needs 30x the effort
  • Only 25% of this increase is construction work
  • Rest is planning, architecture and testing work
  • 10x larger project usually has 15x more errors
  • To handle this extra effort formal methods are used
slide-3
SLIDE 3

Content

  • Project Size
  • Communication
  • Errors
  • Productivity
  • Coding vs. other Activities
  • Formal Methods
  • Agile Methods
  • Key Points

01.07.2015 Stefan Ast 3

slide-4
SLIDE 4

Project Size

  • Small projects usually use casual and instinctive

methods

  • Large projects usually use formal and carefully

planned methods

  • It is important to find the right balance of casual

and formal methods that fits the project size

slide-5
SLIDE 5

Project Size

  • Project size can be determined by
  • Team size
  • Lines of code
  • Quality/Complexity
  • Simple program is a smaller project than a well

documented and tested software system.

01.07.2015 Stefan Ast 5

slide-6
SLIDE 6

Project Size

  • Kinds of software
  • Simple program
  • Software product
  • Software system
  • System product
slide-7
SLIDE 7

Communication

01.07.2015 Stefan Ast 7 Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 650

  • As project size increases, communication becomes

more difficult

slide-8
SLIDE 8

Errors

01.07.2015 Stefan Ast 8 Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 652

  • As project size increases there is a
  • smaller amount of construction errors
  • greater amount of design and requirement errors
slide-9
SLIDE 9

Productivity

5000 10000 15000 20000 25000 30000 1K 10K 100K 1000K 10000K Lines of Code

Productivity

Lines of Code per Staff-Year

01.07.2015 Stefan Ast 9 Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 653

  • On big projects productivity is lower than on small

projects.

slide-10
SLIDE 10

Productivity

  • But all other things being equal productivity can

also be influenced by

  • the kind of software
  • personnel quality
  • programming language
  • product complexity,

01.07.2015 Stefan Ast 10

slide-11
SLIDE 11

Coding vs. other Activities

  • Larger projects need more architecture, integration

and system testing work

01.07.2015 Stefan Ast 11 Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 654

slide-12
SLIDE 12

Coding vs. other Activities

  • Construction work scales up proportionately
  • Detailed design
  • Coding
  • Debugging
  • Unit testing
  • Other activities scale up faster
  • Communication
  • Documentation
  • Management
  • Interface design
  • System testing

01.07.2015 Stefan Ast 12 Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 655

slide-13
SLIDE 13

Formal Methods

  • Large projects need formal methods
  • Very complex systems
  • Safety-critical systems
  • Systems which have to be highly reliable
  • They focus on
  • defined requirements
  • standardized process management
  • thorough documentation (detailed plans, activities,

workflow, roles and responsibilities)

01.07.2015 Stefan Ast 13

slide-14
SLIDE 14

Formal Methods

  • Preconditions of formal methods
  • Requirements have to be stable
  • Environment has to be predictable
  • Example
  • Waterfall model (sequential design process)
  • Progress flows steadily downwards through different phases
  • Advantages
  • personnel can be moved quickly
  • loss of key personnel can be absorbed

01.07.2015 Stefan Ast 14

slide-15
SLIDE 15

Formal Methods

  • Disadvantages
  • Innovation might be blocked
  • Additional effort is needed for managing and controlling
  • the focus can shift from the product to the process
  • This can lead to spending more time writing

documents than producing software.

01.07.2015 Stefan Ast 15

slide-16
SLIDE 16

Agile Methods

  • Therefore agile methods have been developed
  • Fulfilling user expectations is more important than well-

written code and documentation.

  • They focus on
  • flexibility and speed
  • self-organizing teams
  • Close relationship with users/customers
  • programming as a craft and not as an industrial process.
  • no delivery of the entire product at once (several

iteration cycles)

01.07.2015 Stefan Ast 16

slide-17
SLIDE 17

Agile Methods

  • Agile methods are used when there are
  • smaller teams
  • more volatile requirements and environments
  • close relationship with customers and users
  • Requirements
  • Highly motivated team members who have to be willing

to work closely with other programmers

  • Example
  • Scrum
  • Agile method framework with 30 day work intervals and daily

15 min Scrum meetings

01.07.2015 Stefan Ast 17

slide-18
SLIDE 18

Key Points

  • As project size increase communication gets more

difficult and has to be formalized in documents

  • All other things equal a large project will have
  • more errors
  • lower productivity
  • As project size increases construction activities

become less predominant

  • Scaling up agile methods works better than scaling

down formal methods.

  • Most effective to find the right balance of methods

01.07.2015 Stefan Ast 18

slide-19
SLIDE 19

Thanks!