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

SER516 Lecture 09

SER516 Lecture 09

Software Agility
Technical Skills
(202102)

Javier Gonzalez-Sanchez
PRO

February 07, 2019
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    SER 516
    Software Agility
    Lecture 09: Technical Skills
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. People Factors

    View Slide

  3. jgs
    00001001
    Agile Principles
    1. Our highest priority is to satisfy the customer through early and
    continuous delivery of valuable software. Welcome changing
    requirements, even late in development.
    2. Working software is the primary measure of progress. Deliver working
    software frequently, with a preference to the shorter timescale.
    3. Build projects around motivated individuals. People must work
    together daily throughout the project.

    View Slide

  4. jgs
    00001001
    Agile Principles
    4. The best software emerges from self–organizing teams.
    5. The most efficient and effective method of conveying information to and
    within a development team is face–to–face conversation.
    6. Simplicity is essential. Continuous attention to technical excellence and
    good design enhances agility.
    7. At regular intervals, the team reflects on how to become more effective,
    then tunes and adjusts its behavior accordingly.

    View Slide

  5. jgs
    00001001
    People Factors
    People Factors
    Amicability
    Motivated individuals
    work together daily
    tune and adjust
    Skills
    value simplicity
    technical excellence
    Communication
    self-organized
    conveying information face-to-face

    View Slide

  6. jgs
    00001001
    People Factors
    People Factors
    Amicability
    Motivated individuals
    work together daily
    tune and adjust
    Skills
    value simplicity
    technical excellence
    Communication
    self-organized
    conveying information face-to-face

    View Slide

  7. jgs
    00001001
    People Factors
    People Factors
    Amicability
    Motivated individuals
    work together daily
    tune and adjust
    Skills
    value simplicity
    technical
    excellence
    Communication
    self-organized
    conveying information face-to-face

    View Slide

  8. jgs
    00001001
    Scenario 2

    View Slide

  9. jgs
    00001001
    Coding
    “Writing clean code is what you must
    do in order to call yourself a
    professional.”
    –Robert C. Martin

    View Slide

  10. jgs
    00001001
    Coding
    “Writing clean code is what you must
    do in order to call yourself a
    professional.”
    –Robert C. Martin
    Clean Code:
    a) Readable and Well-structured
    b) Extensible
    c) Testable

    View Slide

  11. jgs
    00001001
    Coding
    § “Any fool can write code that a computer
    can understand. Good programmers write
    code that humans can understand”.
    -Martin Fowler
    § “Even bad code can function”.
    –Robert C. Martin

    View Slide

  12. jgs
    00001001
    Coding
    § “The ratio of time spent reading vs
    writing is well over
    10:1” –
    Robert C. Martin

    View Slide

  13. jgs
    00001001
    Cost
    As a mess build, the productivity of the team decrease.
    Eventually the team ask for a redesign (i.e., more time)

    View Slide

  14. jgs
    00001001
    Clean Code Principles
    1. Readability
    e.g. Coding guidelines.
    2. Simplification and Specification
    e.g. KISS (Keep It Simple by K. Johnson).
    3. Decoupling
    e.g. LOD (Law of Demeter).
    4. Avoid Code Bloat
    e.g. DRY (Do not Repeat Yourself).

    View Slide

  15. Do your projects have clean code?
    Readability

    View Slide

  16. jgs
    00001001
    Readability

    View Slide

  17. jgs
    00001001
    Readability

    View Slide

  18. jgs
    00001001
    Readability

    View Slide

  19. jgs
    00001001
    Readability

    View Slide

  20. jgs
    00001001
    Readability

    View Slide

  21. jgs
    00001001
    Readability
    Flag?

    View Slide

  22. jgs
    00001001
    Readability

    View Slide

  23. jgs
    00001001
    Readability

    View Slide

  24. jgs
    00001001
    Readability

    View Slide

  25. jgs
    00001001
    Readability

    View Slide

  26. jgs
    00001001
    Readability

    View Slide

  27. jgs
    00001001
    Reference
    § Clean code. Robert Martin.

    View Slide

  28. jgs
    SER 516 Software Agility
    Javier Gonzalez-Sanchez
    [email protected]
    Spring 2021
    Disclaimer. These slides can only be used as study material for the class SER516 at ASU. They cannot be distributed or used for another purpose.

    View Slide