Lecture 03 Iterative Design

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/18

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

19 Terms

1
New cards

Obj As a SWE when delivering product

  • Deliver Value

  • prod dev is twofold challenge

    • develop the right product and the product right

  • Focus on

    • What the product is doing

      • Features offered to end-users

      • are these the right ones

    • How is the product being developed

      • is it safe enough to be used

      • will it support evolution/maintenance

2
New cards

What happens when you fail to address both aspect

  • Focusing on business value only

    • subpar performance

    • maintainability issues

    • no evolution

  • Focusing on technical value

    • great code, poor product

    • product does not meet expectations/requirements

3
New cards

Focusing on both business and technical value

  • can be had to keep up with tech value, when facing short deadlines

4
New cards

How Is Value Characterized

  • Just explain this graphic

  • Things that are visible, that are negative and positive

  • things that are invisible that are negative and positive

    • what are they

<ul><li><p>Just explain this graphic</p></li><li><p>Things that are visible, that are negative and positive</p></li><li><p>things that are invisible that are negative and positive</p><ul><li><p>what are they</p></li></ul></li></ul><p></p>
5
New cards

Different approach’s to delivering value

  • Continuous Delivery approach

    • As time passes constantly delivering something of value

  • Release Approach

    • Spending a bit more time on each increment, but still delivering value

  • YOLO

    • not releasing anything until the very end, LOL

6
New cards

Risk management in relation to deliverable

  • the risk is the area between the cost and value line, when graphed against time

  • The more value delivered early one, the less the risk

<ul><li><p>the risk is the area between the cost and value line, when graphed against time</p></li><li><p>The more value delivered early one, the less the risk</p></li></ul><p></p>
7
New cards

What is Technical Debt, what increases technical debt

  • implied cost of future reworking, caused by suboptimal design

  • Increasers are

    • subpar design decisions, code smells

    • simplifications, doing things that are quick-n-dirty

    • Untested code

    • Prioritizing expedience over long-term design

8
New cards

Repercussions of technical debt

  • Analogous with monetary debt

    • if not “repaid” can accumulate interest

    • charges are harder to implement

  • when unaddressed

    • increases software entropy (degree of disorder)

    • increases cost of further rework

      • defect fixes and new feautres

9
New cards

Unit of technical debt

  • measured by time

  • days are normal

  • years are not

  • can depend on factors (LOC, % of legacy code, business case)

10
New cards

Some instances where it is inevitable to accumulate technical debt

  • Proof of concepts

  • MVP
    beating competition to market

  • move project forward, in general

11
New cards

Criticism of Technical debt metaphor

  • the debt metaphor downplays ramifications of poor code

  • results in insufficient prioritization of needed corrective work

12
New cards

Boy Scout Rule

  • Leave the campground cleaner than it was when you arrived

  • (Refactoring)

13
New cards

Broken Window Principle

  • If you don’t care for your code no one will

  • keep it readable, easy to maintain

  • identify what debt is and have a plan to fix it

14
New cards

Explain the Iterative and Incremental Graphic

<p></p><p></p>
15
New cards

Why Iterations good

  • allow for gradually gaining more understanding of the context and requirement

  • minimal increments help mitigate risks

  • Technical debt can be addressed early on

16
New cards

MVP, what is it

  • An MVP is

    • [Minimal] The bare minimum to

    • [Viable] validate the viability of the

    • [Product] engineering artifact in support of the business proposition

  • Contents of an MVP

    • essential features for the user

17
New cards

Goal of the MVP

  • demonstrate MVP to end-user and stakeholder

  • get feedback

  • rinse and repeat

18
New cards

What are the key enablers of iterative and incremental design

  • Maintainability

    • the ability to add new features and refactor code while keeping the functionality intact

    • knowing how to asses/measure maintainability is key

  • Proper Test Coverage

    • Gives you confidence that you won’t break things

    • knowing testing techniques adn tools is key (3S03)

  • Mastering Version Control

    • Manually maintain version is stupid

    • Knowing git is key

19
New cards