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

A presentation at Cream City Code in October 2019 in Milwaukee, WI, USA by Jenna Pederson

Slide 1

Slide 1

SHINY OBJECTS ARE COOL BUT SO IS BUILDING PRODUCTS PEOPLE USE @jennapederson | #creamcitycode | #fallx

Slide 2

Slide 2

What is shiny? @jennapederson | #creamcitycode | #fallx

Slide 3

Slide 3

Accidental vs. Essential Complexities FRED BROOKS, 1986 @jennapederson | #creamcitycode | #fallx

Slide 4

Slide 4

Accidental Complexities NOT ESSENTIAL TO THE PROBLEM BEING SOLVED PROBLEMS ENGINEERS CREATE AND CAN FIX EXAMPLES: languages, tools, processes, techniques, bells and whistles @jennapederson | #creamcitycode | #fallx

Slide 5

Slide 5

Essential Complexities DIRECTLY RELATED TO THE PROBLEM BEING SOLVED INDEPENDENT OF HOW MUCH EXPERIENCE YOU HAVE OR THE TOOLS YOU HAVE IN YOUR TOOLBOX EXAMPLES: deciding what to build, the humans, design and testing, the complexity of hardware/software @jennapederson | #creamcitycode | #fallx

Slide 6

Slide 6

HELLO WORLD EXAMPLE RUBY $ ruby -e “puts ‘Hello, World!’” @jennapederson | #creamcitycode | #fallx

Slide 7

Slide 7

HELLO WORLD EXAMPLE RUBY PYTHON $ ruby -e “puts ‘Hello, World!’” $ python -c “print(‘Hello, World!’)” @jennapederson | #creamcitycode | #fallx

Slide 8

Slide 8

HELLO WORLD EXAMPLE REACT NATIVE RUBY PYTHON $ ruby -e “puts ‘Hello, World!’” $ python -c “print(‘Hello, World!’)” $ react-native init HelloWorld $ cd HelloWorld Open up App.js and type out “Hello, World!” $ react-native run-ios Wait. Cross fingers. @jennapederson | #creamcitycode | #fallx

Slide 9

Slide 9

What’s the problem with shiny? DOESN’T SOLVE THE PROBLEM you know, the one our customer has HAS LESS IMPACT a focus only on the shiny is not nearly as impactful to the problem as focusing on the non-shiny ALWAYS STARTING but never finishing AND MORE… unknown, unsupported, unmaintained, risky, distracting @jennapederson | #creamcitycode | #fallx

Slide 10

Slide 10

Why do we choose shiny? STARTING VS. FINISHING starting is orders of magnitude easier than finishing 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 @jennapederson | #creamcitycode | #fallx

Slide 11

Slide 11

How do we build products people use? FOCUS ON THE PROBLEM (NOT THE SOLUTION) not just the problems we think our customers have or the ones we’ve manufactured for ourselves - the ones they actually have FOCUS ON THE CUSTOMER get out of the office and talk to them FOCUS ON THE VALUE add value to someone’s life @jennapederson | #creamcitycode | #fallx

Slide 12

Slide 12

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 @jennapederson | #creamcitycode | #fallx

Slide 13

Slide 13

Library vs Roll Your Own DOES THE LIBRARY DO WHAT YOU NEED TO DO AND REDUCE COMPLEXITY? IS IT ACTIVELY MAINTAINED? WOULD YOU BE THE LARGEST USER OF THE LIBRARY? example: the Recaptcha gem vs roll your own example: Circle CI + ClojureScript frontend @jennapederson | #creamcitycode | #fallx

Slide 14

Slide 14

IaaS vs. PaaS DO YOU NEED TO MANAGE INFRASTRUCTURE OR COULD SOMEONE DO THAT FOR YOU? DO YOU HAVE TIME TO LEARN HOW TO MANAGE INFRASTRUCTURE? CAN YOU THINK CRITICALLY ABOUT THE SECURITY, SCALABILITY, AND RELIABILITY OF ALL OF IT? example: startup day 1 vs. Big Mega Corp @jennapederson | #creamcitycode | #fallx

Slide 15

Slide 15

How do we innovate? USE IT TO OUR ADVANTAGE 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. @jennapederson | #creamcitycode | #fallx

Slide 16

Slide 16

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. @jennapederson | #creamcitycode | #fallx

Slide 17

Slide 17

The End. THANKS! FIND ME ON THE INTERNET: @jennapederson