Shiny objects are cool, but so is building products people use

A presentation at MPLS Junior Devs in May 2019 in Minneapolis, MN, USA by Jenna Pederson

Slide 1

Slide 1

#MPLSJRDEVS SHINY OBJECTS ARE COOL BUT SO IS BUILDING PRODUCTS PEOPLE USE @jennapederson

Slide 2

Slide 2

What is shiny? #MPLSJRDEVS | @jennapederson

Slide 3

Slide 3

Accidental vs. Essential Complexities Fred Brooks, 1986 #MPLSJRDEVS | @jennapederson

Slide 4

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

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

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

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

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

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

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

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

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

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

Slide 14

The End Thanks! find me on the tweeter: @jennapederson feedback welcome! #MPLSJRDEVS | @jennapederson