Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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]