#MPLSJRDEVS
SHINY OBJECTS ARE COOL BUT SO IS BUILDING PRODUCTS PEOPLE USE @jennapederson
Slide 2
What is shiny?
#MPLSJRDEVS | @jennapederson
Slide 3
Accidental vs. Essential Complexities Fred Brooks, 1986
#MPLSJRDEVS | @jennapederson
Slide 4
Accidental Complexities Not essential to the problem being solved
Problems engineers create and can fix
languages, tools, processes, techniques, bells and whistles
#MPLSJRDEVS | @jennapederson
Slide 5
Essential Complexities Directly related to the problem being solved Very little can fix or remove this complexity
deciding what to build, the humans, design and testing, the complexity of hardware/software
#MPLSJRDEVS | @jennapederson
Slide 6
Doesn’t solve the problem you know, that one our customer has
Has less impact
What’s the problem with shiny?
a focus only on the shiny is not nearly as impactful to the problem our customer has as focusing on the nonshiny
Always starting but never finishing
And more… unknown, unsupported, unmaintained, risky, distracting #MPLSJRDEVS | @jennapederson
Slide 7
Starting vs. Finishing starting is orders of magnitude easier than finishing
Why do we choose shiny?
New is better obviously, if it’s new and improved it’s better, right? maybe. maybe not.
We like to learn and maybe it’s just for our resume or to scratch an itch
#MPLSJRDEVS | @jennapederson
Slide 8
Focus on the actual problem not just the ones we think our customers have or the ones we’ve manufactured for ourselves
How do we build products people use?
Stop focusing on the solution focus on the actual problem!
Focus on the customer get out of the office and talk to them
Focus on the value add value to someone’s life
#MPLSJRDEVS | @jennapederson
Slide 9
Code vs No Code Why write code when you don’t need to? What if you don’t even fully know what the problem is and then write a bunch of code? example 1: a React app vs. a Squarespace site example 2: a React app vs. a Google form + Zapier to send an email or a text #MPLSJRDEVS | @jennapederson
Slide 10
Library vs Roll Your Own Does the library do what you need to do? Is it actively maintained? Does a library make it more complicated or does using someone else’s library make it easier on me? example: the Recaptcha gem vs roll your own
#MPLSJRDEVS | @jennapederson
Slide 11
AWS All the Things vs. Heroku Can you do All the Things? Do you have time to learn All the Things? Can you afford to hire someone to do All the Things and maintain/support it? Can you think critically about the security, scalability, and reliability of All the Things? Do you even need All the Things? example: startup day 1 vs. Big Mega Corp #MPLSJRDEVS | @jennapederson
Slide 12
Use it to our advantage
How do we innovate?
chase shiny objects but with a goal in mind. have a strategy. embrace failure without consequences. let these shiny objects drive us to learn more about our craft, how to solve real world problems with new tech, how to experiment, how to fail, and how to discover what problems we should be solving
#MPLSJRDEVS | @jennapederson
Slide 13
One Last Bit AN INSPIRATIONAL BIT The good devs won’t just be chasing shiny objects. They will have a fine balance of finding, evaluating, and using new or bleeding edge tech vs. using the tried and true tech.
#MPLSJRDEVS | @jennapederson
Slide 14
The End Thanks!
find me on the tweeter: @jennapederson
feedback welcome!
#MPLSJRDEVS | @jennapederson