Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

People Factors

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

jgs 00001001 Scenario 2

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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).

Slide 15

Slide 15 text

Do your projects have clean code? Readability

Slide 16

Slide 16 text

jgs 00001001 Readability

Slide 17

Slide 17 text

jgs 00001001 Readability

Slide 18

Slide 18 text

jgs 00001001 Readability

Slide 19

Slide 19 text

jgs 00001001 Readability

Slide 20

Slide 20 text

jgs 00001001 Readability

Slide 21

Slide 21 text

jgs 00001001 Readability Flag?

Slide 22

Slide 22 text

jgs 00001001 Readability

Slide 23

Slide 23 text

jgs 00001001 Readability

Slide 24

Slide 24 text

jgs 00001001 Readability

Slide 25

Slide 25 text

jgs 00001001 Readability

Slide 26

Slide 26 text

jgs 00001001 Readability

Slide 27

Slide 27 text

jgs 00001001 Reference § Clean code. Robert Martin.

Slide 28

Slide 28 text

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.