A presentation at Open Source North in in St Paul, MN, USA by Jenna Pederson
GENERATIVE AI ALONE WON’T MAKE YOU A SOFTWARE ENGINEER JENNA PEDERSON @JENNAPEDERSON
WE’LL COVER The good, the bad, and the hard (parts of being a software engineer) The craft of the software engineer reimagined Generative AI as a tool in your toolbox @JENNAPEDERSON
WHAT ARE YOUR FAVORITE AND LEAST FAVORITE PARTS OF BEING A SOFTWARE ENGINEER? @JENNAPEDERSON
52 MINUTES The median time that developers spend writing or editing code in their IDE https://xkcd.com/303/
COLLABORATING DESIGNING LEARNING PROBLEM SOLVING SO WHAT ARE WE ACTUALLY DOING? DOCUMENTING CODING MAINTAINING TESTING
HUMANS ARE HARD @JENNAPEDERSON
EMPATHY Allows us to deeply understand our end users and their needs, experiences, and painpoints @JENNAPEDERSON
ETHICAL RESPONSIBILITY We consider broader impact on society and look at the consequences of what we build and how people will use it @JENNAPEDERSON
COLLABORATION We collaborate with our team, engineers, stakeholders, end users, designers, and more @JENNAPEDERSON
COMMUNICATION We collaborate with our team, engineers, stakeholders, end users, designers, and more https://x.com/milan_milanovic/status/1622127889108926466 @JENNAPEDERSON
CRITICAL THINKING IS HARD @JENNAPEDERSON
We gather up knowledge about a problem/problem space, then analyze, synthesize, and evaluate the info we’ve gathered so we can make reasoned judgements and take action. DIVE DEEP 5 Whys 7 So Whats First Principles @JENNAPEDERSON Pareto Principle
DEVELOPER VELOCITY INTERPRETED LANGUAGES COMPILED LANGUAGES ASSEMBLY LANGUAGE MACHINE CODE PUNCH CARDS LEVELS OF ABSTRACTION @JENNAPEDERSON
DEVELOPER VELOCITY LOW CODE DOMAIN SPECIFIC LANGUAGES FRAMEWORKS INTELLISENSE AUTOCOMPLETE IDE SOPHISTICATION OF TOOLING @JENNAPEDERSON
DEVELOPER VELOCITY COMMUNITY KNOWLEDGE BASEES SEARCH ENGINES PRE-INTERNET SUPPORTING INFRASTRUCTURE AND SYSTEMS @JENNAPEDERSON
COPY/PASTE DEVELOPER @JENNAPEDERSON
CODE IS LANGUAGE @JENNAPEDERSON
DEVELOPER VELOCITY GENERATIVE AI COMMUNITY KNOWLEDGE BASEES SEARCH ENGINES PRE-INTERNET SUPPORTING INFRASTRUCTURE AND SYSTEMS @JENNAPEDERSON
DO YOU USE GENERATIVE AI DEVELOPER TOOLS? @JENNAPEDERSON
REIMAGINING THE CRAFT OF THE SOFTWARE ENGINEER @JENNAPEDERSON
ANALYSIS, REQUIREMENTS, & PLANNING Prompt: I’m creating a platform for users to share and discover recipes, including ingredients, steps, and images. What sort of functional and non-functional requirements should I be thinking about?
DESIGN & ARCHITECTURE Prompt: I would like to use AWS to deploy this web app. My team is made up of mostly Python engineers. We’ll use Flask to build the app. What options do I have to deploy this app on AWS that include using infrastructure as code?
DEVELOPMENT Prompt: What are the steps to bootstrap a simple Flask app that has one route “/recipes” that outputs “My Recipes” text? I need to set up a python virtual environment and requirements.txt as part of this.
DEBUGGING Prompt: When I run “python app.py” my Flask app does not start. There is no output when the command completes. Where should I investigate?
TESTING Prompt: I want to create a unit test for the “/recipes” route. What are the steps and example code to do that?
DEPLOYMENT Prompt: What are the steps to deploy this Flask app as a container to ECS using Fargate?
MAINTENANCE Send to Amazon Q Explain the following part of my code
WHAT USE CASES ARE MOST USEFUL TO YOU WHEN USING GENERATIVE AI TOOLS? @JENNAPEDERSON
GENERATIVE AI IS A TOOL IN YOUR TOOLBOX @JENNAPEDERSON
CRAFTING PROMPTS @JENNAPEDERSON
USE EXAMPLES @JENNAPEDERSON
USE AN ITERATIVE APPROACH
BREAK DOWN COMPLEX QUERIES
UNDERSTAND THE NON-DETERMINISTIC NATURE Suggestions are guidance rather than definitive answers @JENNAPEDERSON
UNDERSTAND THE NON-DETERMINISTIC NATURE Suggestions are guidance rather than definitive answers @JENNAPEDERSON
COMPUTERS DON’T GO TO JAIL. PEOPLE DO. @JENNAPEDERSON
RECALIBRATING THE CRAFT OF THE SOFTWARE ENGINEER @JENNAPEDERSON
A NEW TOOL IN YOUR TOOLBOX @JENNAPEDERSON
WITH EMPHASIS ON CRITICAL THINKING @JENNAPEDERSON
https://x.com/KentBeck/status/1648413998025707520 @JENNAPEDERSON
Stuff that generative AI developer tools can do better than me Things that generative AI developer tools will help me do better @JENNAPEDERSON Things that developers will always do best
THANK YOU! Please share your feedback! /in/jennapederson @jennanerdsout @jennapederson
Watching Grey’s Anatomy doesn’t make me a doctor and using generative AI doesn’t make me a software engineer. Our work as software engineers requires critical thinking, problem solving, and empathy in a way that AI isn’t capable of. In this talk, we’ll look at generative AI as an amplifier of our work, one tool in our toolbox and how important it is to know how to use our tools. Paired with skills to decipher what’s real and what’s not, beginners can learn the craft of software engineering, those more experienced can get back to building software, and generative AI can empower our software engineering work.