Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why software engineering is not a real engineering

Sergey Arkhipov
February 26, 2015
52

Why software engineering is not a real engineering

Small presentation for my english course.

Sergey Arkhipov

February 26, 2015
Tweet

Transcript

  1. Why software engineering
    is not a real engineering
    Sergey Arkhipov
    2015

    View full-size slide

  2. Agenda

    What engineering is

    What software engineering is

    Programming is amateur

    View full-size slide

  3. What engineering is

    View full-size slide

  4. What engineering is
    Engineering (from Latin ingenium, meaning "cleverness" and
    ingeniare, meaning "to contrive, devise") is the application of
    scientific, economic, social, and practical knowledge in order to
    invent, design, build, maintain, research, and improve structures,
    machines, devices, systems, materials and processes.

    View full-size slide

  5. What engineering is
    Engineering (from Latin ingenium, meaning "cleverness" and
    ingeniare, meaning "to contrive, devise") is the application of
    scientific, economic, social, and practical knowledge in order to
    invent, design, build, maintain, research, and improve structures,
    machines, devices, systems, materials and processes.

    View full-size slide

  6. What engineering is
    Engineering works with

    Well-defined systems

    Well-defined quality metrics

    Well-defined estimation process

    View full-size slide

  7. What engineering is
    Engineering works with

    Well-defined systems

    Well-defined quality metrics

    Well-defined estimation process

    View full-size slide

  8. What engineering is

    View full-size slide

  9. What software engineering is

    View full-size slide

  10. What software engineering is
    Software engineering is the study and an application of engineering to the
    design, development, and maintenance of software.
    Typical formal definitions of software engineering are:

    "the application of a systematic, disciplined, quantifiable approach to the
    development, operation, and maintenance of software";

    "an engineering discipline that is concerned with all aspects of software
    production";

    "the establishment and use of sound engineering principles in order to
    economically obtain software that is reliable and works efficiently on real
    machines."

    View full-size slide

  11. What software engineering is
    Gerald Weinberg:

    If builders built buildings the way programmers wrote programs, then the
    first woodpecker that came along would destroy civilization.

    An expert is a person who avoids the small errors while sweeping on to the
    grand fallacy.
    Edsger Dijkstra

    Program testing can be a very effective way to show the presence of bugs,
    but it is hopelessly inadequate for showing their absence.

    Computer Science is no more about computers than astronomy is about
    telescopes.

    As long as computing science is not allowed to save the computer industry,
    we had better see to it that the computer industry does not kill computing
    science.

    View full-size slide

  12. Programming is amateur

    View full-size slide

  13. Programming is amateur

    Engineering works with well-defined systems, programming always works
    with weakly defined systems.

    View full-size slide

  14. Programming is amateur

    View full-size slide

  15. Programming is amateur

    Engineering works with well-defined systems, programming always works
    with weakly defined systems.

    Engineering has good quality assurance procedures, programming can
    assure that some software in some cases assuming appropriate
    circumstances if conditions are good works fine.

    View full-size slide

  16. Programming is amateur

    View full-size slide

  17. Programming is amateur

    Engineering works with well-defined systems, programming always works
    with weakly defined systems.

    Engineering has good quality assurance procedures, programming can
    assure that some software in some cases assuming appropriate
    circumstances if conditions are good works fine.

    Engineering has estimatable process, programming estimations has an
    astrology precision.

    View full-size slide

  18. Programming is amateur
    Bakunov's method

    View full-size slide

  19. Programming is amateur

    Engineering works with well-defined systems, programming always works
    with weakly defined systems.

    Engineering has good quality assurance procedures, programming can
    assure that some software in some cases assuming appropriate
    circumstances if conditions are good works fine.

    Engineering has estimatable process, programming estimations has an
    astrology precision.

    Nothing really changed from 80s.

    View full-size slide

  20. Thank you
    https://speakerdeck.com/9seconds/why-software-engineering-is-not-a-real-engineering
    http://bit.ly/180ody3

    View full-size slide