This presentation is about fear, and how fear can effect how I make decisions in my career as a programmer. My hope is to challenge you, and that you would challenge me with ideas on how we can conquer fear, how we can make our projects better, our teams stronger, our industry more valuable, and encourage each other to become better people.
Ever experienced the pain of a God class? I have some theories on how you can, among many things, conquer even the God class.
14. MATT SIMPSON
Work
Github /
Twitter /
Coderwall
Blog
Senior Software Engineer
@asynchrony
@coffeencoke
coffeencoke.com
Saturday, September 7, 13
15. YES, I LOVE
COFFEE & COKE
TOGETHER.
2 parts
1 part
1 part
Sugar
Coke
Coffee Espresso
Cream or Milk
To taste
Saturday, September 7, 13
16. R A I L S E N V Y - C O N T R O L L E R O B E S I T Y
Saturday, September 7, 13
17. R A I L S E N V Y - C O N T R O L L E R O B E S I T Y
Saturday, September 7, 13
18. "good god!!"
THE GOD CLASS
a god object is an object that knows
too much or does too much - wikipedia
"git blame
that!"
WE ARE ALL TO BLAME
Saturday, September 7, 13
19. "good god!!"
THE GOD CLASS
a god object is an object that knows
too much or does too much - wikipedia
"git blame
that!"
WE ARE ALL TO BLAME
Saturday, September 7, 13
20. "good god!!"
THE GOD CLASS
a god object is an object that knows
too much or does too much - wikipedia
"git blame
that!"
WE ARE ALL TO BLAME
Saturday, September 7, 13
21. "good god!!"
THE GOD CLASS
a god object is an object that knows
too much or does too much - wikipedia
"git blame
that!"
WE ARE ALL TO BLAME
Saturday, September 7, 13
24. THE GOD CLASS
Never starts out as a God class
Sneaky
Saturday, September 7, 13
25. THE GOD CLASS
Never starts out as a God class
Sneaky
Black hole for productivity
Saturday, September 7, 13
26. THE GOD CLASS
Never starts out as a God class
Sneaky
Black hole for productivity
Technical debt
Saturday, September 7, 13
27. THE GOD CLASS
Never starts out as a God class
Sneaky
Black hole for productivity
Technical debt
So... prevent god classes!
Saturday, September 7, 13
30. MY OBSERVATIONS
Single responsibility principle
"every class should have a single responsibility, and
that responsibility should be entirely encapsulated by
the class. All its services should be narrowly aligned
with that responsibility." - also wikipedia
Saturday, September 7, 13
31. MY OBSERVATIONS
Single responsibility principle
"every class should have a single responsibility, and
that responsibility should be entirely encapsulated by
the class. All its services should be narrowly aligned
with that responsibility." - also wikipedia
Very apparent in rails applications.
Saturday, September 7, 13
32. MY OBSERVATIONS
Single responsibility principle
"every class should have a single responsibility, and
that responsibility should be entirely encapsulated by
the class. All its services should be narrowly aligned
with that responsibility." - also wikipedia
Very apparent in rails applications.
Not “THE” answer, but “an” answer.
Saturday, September 7, 13
33. MY OBSERVATIONS
User Model
Data querying
Data mapping
Validations
Persistence
Relationships
Url helpers
Business
Business
Business
Business
WHY?!?!?
God class
Saturday, September 7, 13
34. MY OBSERVATIONS
Typical Model Responsibilities
User Model
Data querying
Data mapping
Validations
Persistence
Relationships
Url helpers
Business
Business
Business
Business
WHY?!?!?
God class
Saturday, September 7, 13
35. WHY?
Because it was easy and;
I was anxious
I wasn't confident
I didn't have faith
I was lazy
Saturday, September 7, 13
36. WHY?
Because it was easy and;
I was anxious
I wasn't confident
I didn't have faith
I was lazy
Saturday, September 7, 13
37. WHY?
I was scared and all of my
excuses were rooted in fear.
Saturday, September 7, 13
38. FEAR
Why do we fear?
Bad experiences
Pain
Saturday, September 7, 13
39. PHOBIAS
Ablutophobia - Fear of washing or bathing
Acerophobia - Fear of sourness
Symmetrophobia - Fear of symmetry
Syngenesophobia - Fear of relatives
Saturday, September 7, 13
40. PHOBIAS
Achluophobia- Fear of darkness
Acrophobia- Fear of heights
Social phobia - Fear of social/performance situations
Saturday, September 7, 13
42. PRACTICAL PHOBIAS
Being evaluated in social situations
Asking questions at a conference
Talking to strangers at a happy hour
Pushing back on your customer during a meeting
Speaking against something you disagree with
Saturday, September 7, 13
43. PRACTICAL PHOBIAS
Fear of dependence on others
Team situations, nobody likes cowboy programmers
Saturday, September 7, 13
44. PRACTICAL PHOBIAS
Scared of Time
We are the experts, we only have time expectations
because we allow those expectations to be set. We are
able to get things done more quickly than ever, the
reason we are afraid of deadlines is because we lack
discipline of setting the right expectation.
Saturday, September 7, 13
45. PRACTICAL PHOBIAS
Scared of abilities
Everyday is an opportunity to learn new things,
so improve your abilities!
Saturday, September 7, 13
46. PRACTICAL PHOBIAS
Scared due to lack of faith
Not believing that you will be able to do it
You are capable of doing more than you think you are
Community
Trust your intuition
Saturday, September 7, 13
47. PRACTICAL PHOBIAS
This effects us, right?
our code
where we work
what we work on
who we talk to
how we talk to them
Saturday, September 7, 13
49. PHOBIAS
By conquering our fears, we are empowered to use,
or even create, greater things.
Saturday, September 7, 13
50. CONQUERING
So what can we do to conquer our fears?
Ask more questions.
Learn from bad things
Learn from good things
Trust your intuition
Saturday, September 7, 13
51. FLINCH
Asking a question at a Tech Conference
Talking to strangers at an after party
Saturday, September 7, 13
52. FLINCH
act on those desires so quickly before your phobias
cause you to take the safe route
Saturday, September 7, 13
53. FLINCH
METAPHOR TIME
Ocean = Society
Big rock = Awkward moment
Ocean << Big rock
Ocean Normalizes immediately
Saturday, September 7, 13
54. F L I N C H
By Julien Smith
free for Kindle devices
Saturday, September 7, 13
55. SO WHAT ARE YOU
AFRAID OF?
This is very apparent with developing software:
Our craft requires conquering fears from bad
experiences
Make an impact
Start now
Life outside of programming
Saturday, September 7, 13
59. PICK ONE
Ask more questions
Learn from bad
Learn from good things
Trust your intuition
Leverage your community
Trust your flinch
Saturday, September 7, 13
65. THE GOD CLASS
Okay?
Take chances
Learn new things
Talk to new people
Push back on bad ideas and decisions
Saturday, September 7, 13
66. THE GOD CLASS
Okay?
Take chances
Learn new things
Talk to new people
Push back on bad ideas and decisions
People problems
Saturday, September 7, 13
67. THA NK S FOR L IST E NING
@coffeencoke
O PEN FL O O R F O R S HA R I NG
Y OU R E XPERI EN CE S A NY QU E S T I ONS
Pick One
Ask more questions
Learn from bad
Learn from good things
Trust your intuition
Leverage your community
Trust your flinch
Find me after for comments about this presentation please.
Saturday, September 7, 13