Slide 1

Slide 1 text

Agile, etc

Slide 2

Slide 2 text

a!/samphippen

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

This is not a Judgement

Slide 6

Slide 6 text

Everyone always screws up all of their software projects

Slide 7

Slide 7 text

All software projects are always late

Slide 8

Slide 8 text

No customer ever gets everything they want

Slide 9

Slide 9 text

No software is ever done

Slide 10

Slide 10 text

Your primary objective should be to still like everyone

Slide 11

Slide 11 text

Let’s have some questions !!/samphippen [email protected]

Slide 12

Slide 12 text

Let’s have some questions !!/samphippen [email protected]

Slide 13

Slide 13 text

Let’s have some questions !!/samphippen [email protected]

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

The most important lesson

Slide 16

Slide 16 text

If you pay attention to nothing else

Slide 17

Slide 17 text

All computer problems are people problems

Slide 18

Slide 18 text

All computer problems are people problems

Slide 19

Slide 19 text

No software project ever failed for technical reasons

Slide 20

Slide 20 text

Not one

Slide 21

Slide 21 text

“They made us use the wrong database!”

Slide 22

Slide 22 text

Communication is of dire importance

Slide 23

Slide 23 text

Communicate with your clients

Slide 24

Slide 24 text

Communicating with clients

Slide 25

Slide 25 text

You are already commercially proficient as a developer

Slide 26

Slide 26 text

Make your clients believe it

Slide 27

Slide 27 text

Managing clients is its own, separate, complex, skill

Slide 28

Slide 28 text

In the client’s mind the scope is always changing

Slide 29

Slide 29 text

In the client’s mind the scope is infinite

Slide 30

Slide 30 text

You cannot deliver infinite software

Slide 31

Slide 31 text

You cannot deliver to wildly changing goals

Slide 32

Slide 32 text

Establish clear scopes with your client

Slide 33

Slide 33 text

Adjust scopes over time

Slide 34

Slide 34 text

You are allowed to say no to features

Slide 35

Slide 35 text

You are allowed to say no to platforms

Slide 36

Slide 36 text

Hands up time

Slide 37

Slide 37 text

Mobile apps?

Slide 38

Slide 38 text

Both android and iOS?

Slide 39

Slide 39 text

That expectation is unreasonable

Slide 40

Slide 40 text

Strike it now

Slide 41

Slide 41 text

Aim for small, working, and complete

Slide 42

Slide 42 text

Aim for one platform, technology, and framework

Slide 43

Slide 43 text

Explain that aim to your client

Slide 44

Slide 44 text

Be reasonable about what you can achieve

Slide 45

Slide 45 text

Explain what you can achieve reasonably

Slide 46

Slide 46 text

No client can fault you for that

Slide 47

Slide 47 text

Technicals

Slide 48

Slide 48 text

How to not fuck up your project

Slide 49

Slide 49 text

Do not adopt an “Agile” methodology

Slide 50

Slide 50 text

Fixed practises

Slide 51

Slide 51 text

Fixed practises

Slide 52

Slide 52 text

Agile is a toolbox

Slide 53

Slide 53 text

Use the tools that work for you, don’t use the ones that don’t

Slide 54

Slide 54 text

“Works for you” has multiple definitions

Slide 55

Slide 55 text

I find you can intuit when process is slowing you down

Slide 56

Slide 56 text

Watch how much you ship

Slide 57

Slide 57 text

Your process is allowed to change over time

Slide 58

Slide 58 text

Aggressively limit scope

Slide 59

Slide 59 text

Iterate towards client’s goals

Slide 60

Slide 60 text

Minimum viable product?

Slide 61

Slide 61 text

Sign up Login 1 feature

Slide 62

Slide 62 text

Build this to an absolutely rock solid standard

Slide 63

Slide 63 text

Give the client something they can show

Slide 64

Slide 64 text

It is reasonable to assume you will produce an MVP in this project

Slide 65

Slide 65 text

More is bonus points!

Slide 66

Slide 66 text

How to get there?

Slide 67

Slide 67 text

Work with clients to get high level tasks

Slide 68

Slide 68 text

You all have an intuition about how to go from zero to a client’s goals

Slide 69

Slide 69 text

Communicate with your team

Slide 70

Slide 70 text

Form a plan

Slide 71

Slide 71 text

Work out the big tasks

Slide 72

Slide 72 text

Break tasks down

Slide 73

Slide 73 text

Break tasks down to really small units

Slide 74

Slide 74 text

Break tasks down to really small units like really hilariously small

Slide 75

Slide 75 text

Gather the team

Slide 76

Slide 76 text

Turn everything into tasks that will take at most one person day

Slide 77

Slide 77 text

That everyone thinks won’t take more than a day

Slide 78

Slide 78 text

Then take a week to do them

Slide 79

Slide 79 text

Do two if you’re feeling adventurous

Slide 80

Slide 80 text

Show work at the end of two weeks

Slide 81

Slide 81 text

If you can’t break down a task it means two things

Slide 82

Slide 82 text

Client hasn’t explained it well enough

Slide 83

Slide 83 text

Your project isn’t in a state where it can be done yet

Slide 84

Slide 84 text

Focus on things that can immediately be done

Slide 85

Slide 85 text

Two week cycle

Slide 86

Slide 86 text

Meeting with client on monday

Slide 87

Slide 87 text

Read the Backlog

Slide 88

Slide 88 text

Pull items from backlog to be done this cycle

Slide 89

Slide 89 text

Work out if that’s too much work

Slide 90

Slide 90 text

Work out if that’s too much work (it is)

Slide 91

Slide 91 text

Assign work

Slide 92

Slide 92 text

Aim to have work done by end of week

Slide 93

Slide 93 text

Team meeting at end of week

Slide 94

Slide 94 text

Test Find Bugs Refactor

Slide 95

Slide 95 text

Finish features if they’re not done

Slide 96

Slide 96 text

Meeting on friday with client

Slide 97

Slide 97 text

Show work done

Slide 98

Slide 98 text

Reprioritise backlog

Slide 99

Slide 99 text

Repeat

Slide 100

Slide 100 text

You get enough of these cycles to ship something

Slide 101

Slide 101 text

Progress is measurable

Slide 102

Slide 102 text

Client can adjust

Slide 103

Slide 103 text

No “mega features”

Slide 104

Slide 104 text

“Client acceptance”

Slide 105

Slide 105 text

Don’t wait until the end of the project

Slide 106

Slide 106 text

Get it literally every two weeks.

Slide 107

Slide 107 text

Tools

Slide 108

Slide 108 text

Trello

Slide 109

Slide 109 text

Backlog Next up In Progress Done

Slide 110

Slide 110 text

GitHub

Slide 111

Slide 111 text

Do pull requests

Slide 112

Slide 112 text

Don’t merge master unless you’re sure stuff works

Slide 113

Slide 113 text

Two final suggestions

Slide 114

Slide 114 text

Use Java

Slide 115

Slide 115 text

Steer the fuck away from C++

Slide 116

Slide 116 text

Let’s have some questions a!/samphippen [email protected]