My first job

many different SDLs

Good Software

Good Software

User Experience

Maintainable

Robust

No Bugs!

September 9th 1945

Grace Hopper found a bug between the relays of the Harvard Mark II computer that caused a shortened circuit.

Dr. Grace Hopper

Pioneer of computer programming

Invented first linker

Popularized machine-independent programming languages

COBOL

1906-1992

40 Honorary Degrees, Presidential Medal of Freedom, National Medal of Technology

Grace Hopper Celebration of Women in Computing (GHC) conference series for women in computing

many different SDLs

highly dependent on project

Why don't we just start coding?

1. Placement and location

2. Design

Force Calculation

Blue Prints

Safety Checks

Risk Analysis

Architecture

Prototype

3. Cost Estimation

Bidding / Negotations

Permits and Fees

4. Construction

Break Ground

Foundation

Steelwork

2 Construction Crews for Faster Progress

Failure!

Take down bridge and re-build..

Lack of Planning

Lucky Knot Bridge, Changsha, China

 

Good Tools and Good Processes

... reduce risks!

Risks

Over Budget

Late Delivery

Unusable / Flawed

Technical Debt

a hot-fix now can introduce massive costs later!

Signature of a Mess..

Chapter 1

Technical Debt / Signature of Mess / Maintenance Hell

Study by Stripe and Harris Poll: $85 Billion Cost of Bad Code

42% of developer time is spent on Technical Debt

many different SDLs

highly dependent on project

Requirements

Design

Implementation

Verification

Maintenance

Testing and Deployment

This model can be used for all Engineering problems!

What?

How?

Build

More Testing / Evaluate

Bugs / New Features

Waterfall Model

Example: Building a Simple Calculator

that adds 2 numbers

Requirements

Design

Implementation

Verification

Maintenance

Testing and Deployment

What?

How?

Build

More Testing / Evaluate

Bugs / New Features

- allows input of 2 numbers

- calculates the sum and displays it

- HTML/CSS for UI

- JavaScript for logic

- write JS code

- comment code

- write unit tests

- deploy on github pages

- does the UI show the sum?

- do users understand the UI?

- what if numbers are too long?

- subtract? multiply?

- fix bugs, create future plan

Friday is Hands-on Day!

You need a computer :)

Please sign-up at github.com !

 

#introductions

Jahnavi Leburu

Tianyu Kang

TA Office Hours

Tuesday / Thursday 4pm - 5pm

Chenjie Zheng

Best way to get help