construction
play

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


  1. How Program Size Affects Construction Stefan Ast

  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

  3. Content • Project Size • Communication • Errors • Productivity • Coding vs. other Activities • Formal Methods • Agile Methods • Key Points 01.07.2015 Stefan Ast 3

  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

  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

  6. Project Size • Kinds of software • Simple program • Software product • Software system • System product

  7. Communication • As project size increases, communication becomes more difficult Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 650 01.07.2015 Stefan Ast 7

  8. Errors • As project size increases there is a • smaller amount of construction errors • greater amount of design and requirement errors Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 652 01.07.2015 Stefan Ast 8

  9. Productivity • On big projects productivity is lower than on small projects. Productivity 30000 25000 20000 15000 Lines of Code per Staff-Year 10000 5000 0 1K 10K 100K 1000K 10000K Lines of Code Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 653 01.07.2015 Stefan Ast 9

  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

  11. Coding vs. other Activities • Larger projects need more architecture, integration and system testing work Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 654 01.07.2015 Stefan Ast 11

  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 • … Source: Steve McConnel. Code Complete, Second Edition. Microsoft Press, 2004, p. 655 01.07.2015 Stefan Ast 12

  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

  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

  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

  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

  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

  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

  19. Thanks!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend