Slide 1

Slide 1 text

Programming fundamentals for non-techies Tuesday, June 19 2012 Steven Ringo | stevenringo | [email protected]

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

/** Hardcore programming action: */ var undefined, xui, simpleExpr = /^#?([\w-]+)$/, idExpr = /^#/, tagExpr = /<([\w:]+)/, slice = function (e) { return [].slice.call(e, 0); }; try { var a = slice(document.documentElement.childNodes) [0].nodeType; } catch(e){ slice = function (e) { var ret=[]; for (var i=0; e[i]; i++) ret.push(e[i]); return ret; }; } window.x$ = window.xui = xui = function(q, context) { return new xui.fn.find(q, context); };

Slide 8

Slide 8 text

Science meets art Components Getting real Management Life-cycle

Slide 9

Slide 9 text

Eggs Larvae Pupa Emergence Butterfly Requirements Design Implementation Testing Maintenance Phases

Slide 10

Slide 10 text

Requirements Design Implementation Testing Maintenance Waterfall

Slide 11

Slide 11 text

Requirements Design Testing Maintenance Implementation Iterative / Agile Requirements Design Testing Maintenance Implementation

Slide 12

Slide 12 text

Requirements Design Testing Maintenance Implementation Requirements Design Testing Maintenance Implementation Sprint #4 Requirements Design Testing Maintenance Implementation Sprint #3 Requirements Design Testing Maintenance Implementation Sprint #2 Sprint #1 time Short timeboxes ~ 2-4w

Slide 13

Slide 13 text

COWBOY coding

Slide 14

Slide 14 text

Biggest challenge of software engineering is managing the mismatch between what the stakeholders want and what the developers can build

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

The recipe is different. Every. single. time.

Slide 17

Slide 17 text

Requirements

Slide 18

Slide 18 text

Product perspective Product functions User characteristics Constraints, assumptions and dependencies Specific requirements External interface requirements Functional requirements Performance requirements Design constraints Logical database requirement Software system attributes Other requirements O M G !

Slide 19

Slide 19 text

User stories

Slide 20

Slide 20 text

Few sentences in a user’s everyday language What a user does to achieve something. Define functions a system should provide Captures the 'who', 'what' and 'why' Simple, concise Small paper cards/post-it notes

Slide 21

Slide 21 text

As a visitor to the Acme online store I wish to see the top 10 new Acmoids, listed by price, with large photos

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Fake it ‘til you make it

Slide 24

Slide 24 text

Fake it ‘til you make it Wireframes → Prototypes → Product

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Architecture

Slide 29

Slide 29 text

Server: “back end” Internet Client: “Front end”

Slide 30

Slide 30 text

Server, or “back end”

Slide 31

Slide 31 text

Operating System Web Server Database Server Application Server

Slide 32

Slide 32 text

Operating System Web Server Database Server Application Server

Slide 33

Slide 33 text

Server: “back end” Internet Client: “Front end”

Slide 34

Slide 34 text

Client, or “front end”

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Information Design Interactivity

Slide 37

Slide 37 text

Interactivity Information Design

Slide 38

Slide 38 text

Keeping code safe

Slide 39

Slide 39 text

Repository for all programming assets Source of truth Shared among developers Conflict resolution Co-ordinating teams Bug fixing process Time machine in a box

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Project tracking

Slide 42

Slide 42 text

Repository for all project tasks Source of truth Developers, managers and stakeholders Logging of effort Co-ordinating teams Bug fixing process Links to source control

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

The cloud computing and storage as a service to consumers

Slide 46

Slide 46 text

Cheap Elastic Flexible Secure Location Convenient The cloud

Slide 47

Slide 47 text

Expensive Dependent Regulatory Unmanaged Location The cloud

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

Focus

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

Dynamic Clarity Thank you stevenringo | [email protected]