(Please hold questions until the end)
DISCLAIMER
There are things that matter more than coding fast
What is “Coding Fast”?
Coding Fast
Continuously adding business value
over an indefinite period of time
while maintaining high quality code
at a ...
Typical Mentalities
http://xkcd.com/844/
“The thing is, Bob, it's not that I'm lazy.
It's just that I just don't care. It's a
problem of motivation, all right? Now...
Yeah….I’m going to need
to see your estimates in
Jira…m’kay?
Your Motivation to Code Fast
How to Code Fast
Get in the Right Mindset
Eliminate Distractions
http://theoatmeal.com/pl/working_home/piggers
Get Comfortable
http://www.nismat.org/
http://theoatmeal.com/comics/coffee
Touch Type
In 100 years, I know
they’ll invent a better
way to do this…
Sub-Second Builds
http://xkcd.com/303/
Use an IDE
Master Keyboard Shortcuts
Ctrl+Tab+1 Alt+Ctrl+Insert
Ctrl+Shift+F Down Arrow Enter Ctrl+F4
Ctrl-C Ctrl-Tab Ctrl-V Alt+Tab
F5!!!!!
Be Extremely Knowledgeable
I like turtles
Somewhere between
reading the API spec
and building a TODO’s
app on my own time
Whoa! How did
you know that?
I like turtles
var args can only be the
first argument, no the
last, no the first…but
only if they’re the only
argument…ri...
Don’t Work in Crappy Code
Aggressively Pay Down Tech Debt
We are so getting spot
bonus’ for getting this
thing to market a month
ahead of schedule!
Extract
Method!
Push
Down!Extract Local
Variable!
Inline!
Extract
Class!
I told them we needed to
better encapsulate the
concept of order refunds
before we tried to support
different currencies!
Find Creative Solutions
She’s just not
ready captain!
Must have
more…features…
I like turtles
OK, if we introduce a
message queue and
filter by last order
date that might work!
ManagerUtilFactoryHelper???
Re-Compose into New Features
http://martinfowler.com/bliki/DesignStaminaHypothesis.html
Work From Visual Requirements
OMNIGRAFFLE
Estimate Wisely
What you give as your
estimate will set my
expectations for delivery
date, and therefore my
perception of you coding
fast ...
What happens to me if
I’m late? Nothing?
Cool! Then it’s
whenever you want it
to be plus 50%
contingency
It shall take 5 days,
based on my vast
theoretical knowledge
of enterprise systems
All we need is a
LatePayment sub-
class. I could do it in
less time than it takes
to estimate it
Pair with someone fast
Totally! I bet we’ll go
twice as fast with 3 times
better code quality and
zero bugs! Management
will love us!
I read that...
I’m totally over
being preached to
about this Bob
Fowler guy.
I’m totally over having
to explain every design
decision I m...
I still say Fluent
Interfaces are
Train Wrecks
Shut up and
Pass me the
Keyboard
The presentation
layer should have
no knowledge of
our persistence
model
But why add
an extra layer
of indirection?
Adapt
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Nothing matters more than coding fast
Upcoming SlideShare
Loading in …5
×

Nothing matters more than coding fast

1,249 views

Published on

This is not a talk about speed coding, or writing thousands of lines of crappy code in a weekend. This is a talk for software craftsman who test drive clean code, but who also have a nagging feeling: “Man, I know I could be doing this faster.” We’re going to discuss everything from touch typing, to keyboard shortcuts, to faster pair programming techniques, to hardware, to build automation, to staying in the zone, to caffeine consumption, to ergonomics, to music and headphone selection, refactoring, language and framework selection, tech debt management, rapid prototyping, whiteboard design sessions, back of napkin mockups, guerilla tactics for getting in front of requirements and staying there, and what to do when you’re 30 lines down a stack trace and someone wants to tell you about something funny their kid did over the weekend.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,249
On SlideShare
0
From Embeds
0
Number of Embeds
144
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Nothing matters more than coding fast

  1. 1. (Please hold questions until the end)
  2. 2. DISCLAIMER There are things that matter more than coding fast
  3. 3. What is “Coding Fast”?
  4. 4. Coding Fast Continuously adding business value over an indefinite period of time while maintaining high quality code at a pace that exceeds expectations
  5. 5. Typical Mentalities
  6. 6. http://xkcd.com/844/
  7. 7. “The thing is, Bob, it's not that I'm lazy. It's just that I just don't care. It's a problem of motivation, all right? Now, if I work my ass off and Initech ships a few extra units, I don't see another dime. So where's the motivation? ”
  8. 8. Yeah….I’m going to need to see your estimates in Jira…m’kay?
  9. 9. Your Motivation to Code Fast
  10. 10. How to Code Fast
  11. 11. Get in the Right Mindset
  12. 12. Eliminate Distractions
  13. 13. http://theoatmeal.com/pl/working_home/piggers
  14. 14. Get Comfortable
  15. 15. http://www.nismat.org/
  16. 16. http://theoatmeal.com/comics/coffee
  17. 17. Touch Type
  18. 18. In 100 years, I know they’ll invent a better way to do this…
  19. 19. Sub-Second Builds
  20. 20. http://xkcd.com/303/
  21. 21. Use an IDE
  22. 22. Master Keyboard Shortcuts
  23. 23. Ctrl+Tab+1 Alt+Ctrl+Insert Ctrl+Shift+F Down Arrow Enter Ctrl+F4 Ctrl-C Ctrl-Tab Ctrl-V Alt+Tab F5!!!!!
  24. 24. Be Extremely Knowledgeable
  25. 25. I like turtles Somewhere between reading the API spec and building a TODO’s app on my own time Whoa! How did you know that?
  26. 26. I like turtles var args can only be the first argument, no the last, no the first…but only if they’re the only argument…right? OMG JFGI
  27. 27. Don’t Work in Crappy Code
  28. 28. Aggressively Pay Down Tech Debt
  29. 29. We are so getting spot bonus’ for getting this thing to market a month ahead of schedule!
  30. 30. Extract Method! Push Down!Extract Local Variable! Inline! Extract Class!
  31. 31. I told them we needed to better encapsulate the concept of order refunds before we tried to support different currencies!
  32. 32. Find Creative Solutions
  33. 33. She’s just not ready captain! Must have more…features… I like turtles
  34. 34. OK, if we introduce a message queue and filter by last order date that might work!
  35. 35. ManagerUtilFactoryHelper???
  36. 36. Re-Compose into New Features
  37. 37. http://martinfowler.com/bliki/DesignStaminaHypothesis.html
  38. 38. Work From Visual Requirements
  39. 39. OMNIGRAFFLE
  40. 40. Estimate Wisely
  41. 41. What you give as your estimate will set my expectations for delivery date, and therefore my perception of you coding fast or not.
  42. 42. What happens to me if I’m late? Nothing? Cool! Then it’s whenever you want it to be plus 50% contingency
  43. 43. It shall take 5 days, based on my vast theoretical knowledge of enterprise systems
  44. 44. All we need is a LatePayment sub- class. I could do it in less time than it takes to estimate it
  45. 45. Pair with someone fast
  46. 46. Totally! I bet we’ll go twice as fast with 3 times better code quality and zero bugs! Management will love us! I read that pairing is better than coding on your own in every situation! Let’s try it!
  47. 47. I’m totally over being preached to about this Bob Fowler guy. I’m totally over having to explain every design decision I make to someone who’s never architected a system.
  48. 48. I still say Fluent Interfaces are Train Wrecks Shut up and Pass me the Keyboard
  49. 49. The presentation layer should have no knowledge of our persistence model But why add an extra layer of indirection?
  50. 50. Adapt

×