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

A presentation at NDC Oslo in June 2019 in Oslo, Norway by Jenna Pederson

Slide 1

Slide 1

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

Slide 2

Slide 2

What is shiny? #NDCOSLO | @jennapederson

Slide 3

Slide 3

Accidental vs. Essential Complexities Fred Brooks, 1986 #NDCOSLO | @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 #NDCOSLO | @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 #NDCOSLO | @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 #NDCOSLO | @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 #NDCOSLO | @jennapederson

Slide 8

Slide 8

Stop focusing on the solution and focus on the actual problem How do we build products people use? not just the ones we think our customers have or the ones we’ve manufactured for ourselves Focus on the customer get out of the office and talk to them Focus on the value add value to someone’s life #NDCOSLO | @jennapederson

Slide 9

Slide 9

Code vs No Code Why write code when you don’t need to? What if you don’t 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 #NDCOSLO | @jennapederson

Slide 10

Slide 10

Library vs Roll Your Own Does the library do what you need to do? Is it actively maintained? Would you be the largest user of the library? Does using the library and having a dependency on it make it more complicated? example: the Recaptcha gem vs roll your own example: Circle CI + ClojureScript frontend #NDCOSLO | @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 #NDCOSLO | @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. #NDCOSLO | @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. #NDCOSLO | @jennapederson

Slide 14

Slide 14

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