Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Agile, etc.
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Penelope Phippen
October 21, 2015
Technology
270
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Agile, etc.
Penelope Phippen
October 21, 2015
More Decks by Penelope Phippen
See All by Penelope Phippen
Introducing Rubyfmt
penelope_zone
0
630
How RSpec Works
penelope_zone
0
6.9k
Quick and easy browser testing using RSpec and Rails 5.1
penelope_zone
1
120
Teaching RSpec to play nice with Rails
penelope_zone
2
190
Little machines that eat strings
penelope_zone
1
150
What is processor (brighton ruby edition)
penelope_zone
0
150
What is processor?
penelope_zone
1
390
extremely defensive coding - rubyconf edition
penelope_zone
0
300
Extremely Defensive Coding
penelope_zone
0
150
Other Decks in Technology
See All in Technology
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
390
キヨさん67歳 AIコーディングエージェント物語
happysamurai294
0
140
AI Search (Foundry IQ) におけるRAGデータの準備と配置
ryomaru0825
1
100
日本AIベンチャーレポート2026
kentarofujii
0
260
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
110
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
240
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
180
新卒エンジニア、 介護士になる
ryu1013
1
590
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
100
アクセラレーターで実現するServiceNow活用の高速化 / ServiceNow World Forum 2026
visional_engineering_and_design
0
110
AIテスト自動化と評価駆動開発EDD
happysamurai294
0
110
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
1
520
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
エンジニアに許された特別な時間の終わり
watany
109
250k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Between Models and Reality
mayunak
4
530
Building the Perfect Custom Keyboard
takai
2
930
Building AI with AI
inesmontani
PRO
1
1.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
660
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Transcript
Agile, etc
a!/samphippen
None
None
This is not a Judgement
Everyone always screws up all of their software projects
All software projects are always late
No customer ever gets everything they want
No software is ever done
Your primary objective should be to still like everyone
Let’s have some questions !!/samphippen
[email protected]
Let’s have some questions !!/samphippen
[email protected]
Let’s have some questions !!/samphippen
[email protected]
None
The most important lesson
If you pay attention to nothing else
All computer problems are people problems
All computer problems are people problems
No software project ever failed for technical reasons
Not one
“They made us use the wrong database!”
Communication is of dire importance
Communicate with your clients
Communicating with clients
You are already commercially proficient as a developer
Make your clients believe it
Managing clients is its own, separate, complex, skill
In the client’s mind the scope is always changing
In the client’s mind the scope is infinite
You cannot deliver infinite software
You cannot deliver to wildly changing goals
Establish clear scopes with your client
Adjust scopes over time
You are allowed to say no to features
You are allowed to say no to platforms
Hands up time
Mobile apps?
Both android and iOS?
That expectation is unreasonable
Strike it now
Aim for small, working, and complete
Aim for one platform, technology, and framework
Explain that aim to your client
Be reasonable about what you can achieve
Explain what you can achieve reasonably
No client can fault you for that
Technicals
How to not fuck up your project
Do not adopt an “Agile” methodology
Fixed practises
Fixed practises
Agile is a toolbox
Use the tools that work for you, don’t use the
ones that don’t
“Works for you” has multiple definitions
I find you can intuit when process is slowing you
down
Watch how much you ship
Your process is allowed to change over time
Aggressively limit scope
Iterate towards client’s goals
Minimum viable product?
Sign up Login 1 feature
Build this to an absolutely rock solid standard
Give the client something they can show
It is reasonable to assume you will produce an MVP
in this project
More is bonus points!
How to get there?
Work with clients to get high level tasks
You all have an intuition about how to go from
zero to a client’s goals
Communicate with your team
Form a plan
Work out the big tasks
Break tasks down
Break tasks down to really small units
Break tasks down to really small units like really hilariously
small
Gather the team
Turn everything into tasks that will take at most one
person day
That everyone thinks won’t take more than a day
Then take a week to do them
Do two if you’re feeling adventurous
Show work at the end of two weeks
If you can’t break down a task it means two
things
Client hasn’t explained it well enough
Your project isn’t in a state where it can be
done yet
Focus on things that can immediately be done
Two week cycle
Meeting with client on monday
Read the Backlog
Pull items from backlog to be done this cycle
Work out if that’s too much work
Work out if that’s too much work (it is)
Assign work
Aim to have work done by end of week
Team meeting at end of week
Test Find Bugs Refactor
Finish features if they’re not done
Meeting on friday with client
Show work done
Reprioritise backlog
Repeat
You get enough of these cycles to ship something
Progress is measurable
Client can adjust
No “mega features”
“Client acceptance”
Don’t wait until the end of the project
Get it literally every two weeks.
Tools
Trello
Backlog Next up In Progress Done
GitHub
Do pull requests
Don’t merge master unless you’re sure stuff works
Two final suggestions
Use Java
Steer the fuck away from C++
Let’s have some questions a!/samphippen
[email protected]