GENERATIVE AI ALONE WON’T MAKE YOU A SOFTWARE ENGINEER JENNA PEDERSON
@JENNAPEDERSON
Slide 2
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
Slide 3
WHAT ARE YOUR FAVORITE AND LEAST FAVORITE PARTS OF BEING A SOFTWARE ENGINEER?
@JENNAPEDERSON
Slide 4
52 MINUTES The median time that developers spend writing or editing code in their IDE
https://xkcd.com/303/
Slide 5
COLLABORATING
DESIGNING
LEARNING
PROBLEM SOLVING
SO WHAT ARE WE ACTUALLY DOING? DOCUMENTING
CODING
MAINTAINING
TESTING
Slide 6
HUMANS ARE HARD
@JENNAPEDERSON
Slide 7
EMPATHY
Allows us to deeply understand our end users and their needs, experiences, and painpoints
@JENNAPEDERSON
Slide 8
ETHICAL RESPONSIBILITY
We consider broader impact on society and look at the consequences of what we build and how people will use it
@JENNAPEDERSON
Slide 9
COLLABORATION
We collaborate with our team, engineers, stakeholders, end users, designers, and more
@JENNAPEDERSON
Slide 10
COMMUNICATION
We collaborate with our team, engineers, stakeholders, end users, designers, and more https://x.com/milan_milanovic/status/1622127889108926466
@JENNAPEDERSON
Slide 11
CRITICAL THINKING IS HARD
@JENNAPEDERSON
Slide 12
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
Slide 13
DEVELOPER VELOCITY
INTERPRETED LANGUAGES
COMPILED LANGUAGES
ASSEMBLY LANGUAGE
MACHINE CODE
PUNCH CARDS
LEVELS OF ABSTRACTION @JENNAPEDERSON
Slide 14
DEVELOPER VELOCITY
LOW CODE
DOMAIN SPECIFIC LANGUAGES
FRAMEWORKS
INTELLISENSE
AUTOCOMPLETE
IDE
SOPHISTICATION OF TOOLING @JENNAPEDERSON
Slide 15
DEVELOPER VELOCITY
COMMUNITY KNOWLEDGE BASEES
SEARCH ENGINES PRE-INTERNET
SUPPORTING INFRASTRUCTURE AND SYSTEMS @JENNAPEDERSON
Slide 16
COPY/PASTE DEVELOPER
@JENNAPEDERSON
Slide 17
CODE IS LANGUAGE
@JENNAPEDERSON
Slide 18
DEVELOPER VELOCITY
GENERATIVE AI
COMMUNITY KNOWLEDGE BASEES
SEARCH ENGINES PRE-INTERNET
SUPPORTING INFRASTRUCTURE AND SYSTEMS @JENNAPEDERSON
Slide 19
DO YOU USE GENERATIVE AI DEVELOPER TOOLS?
@JENNAPEDERSON
Slide 20
REIMAGINING THE CRAFT OF THE SOFTWARE ENGINEER @JENNAPEDERSON
Slide 21
It relies on context
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
@JENNAPEDERSON
Slide 22
It relies on context
We need to know what it’s optimized for
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
@JENNAPEDERSON
Slide 23
It relies on context
We need to know what it’s optimized for
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
We need to know that it hallucinates
@JENNAPEDERSON
Slide 24
It relies on context
We need to know what it’s optimized for
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
We need to know that it hallucinates
It can help with the hard parts of software engineering
@JENNAPEDERSON
Slide 25
It relies on context
We need to know what it’s optimized for
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
We need to know that it hallucinates
It can help with the hard parts of software engineering
It can help in every phase of the SDLC
@JENNAPEDERSON
Slide 26
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?
Slide 27
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?
Slide 28
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.
Slide 29
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?
Slide 30
TESTING
Prompt: I want to create a unit test for the “/recipes” route. What are the steps and example code to do that?
Slide 31
DEPLOYMENT
Prompt: What are the steps to deploy this Flask app as a container to ECS using Fargate?
Slide 32
MAINTENANCE
Send to Amazon Q Explain the following part of my code
Slide 33
WHAT USE CASES ARE MOST USEFUL TO YOU WHEN USING GENERATIVE AI TOOLS?
@JENNAPEDERSON
Slide 34
It relies on context
We need to know what it’s optimized for
OUR EXPECTATIONS OF GENERATIVE AI TOOLS
We need to know that it hallucinates
It can help with the hard parts of software engineering
It helps in every phase of the SDLC
The tech is rapidly changing @JENNAPEDERSON
Slide 35
GENERATIVE AI IS A TOOL IN YOUR TOOLBOX
@JENNAPEDERSON
Slide 36
CRAFTING PROMPTS
@JENNAPEDERSON
Slide 37
Clarity
BE SPECIFIC AND CLEAR
Intent
Context
Constraints
@JENNAPEDERSON
Slide 38
USE EXAMPLES
@JENNAPEDERSON
Slide 39
USE AN ITERATIVE APPROACH
Slide 40
BREAK DOWN COMPLEX QUERIES
Slide 41
UNDERSTAND THE NON-DETERMINISTIC NATURE Suggestions are guidance rather than definitive answers
@JENNAPEDERSON
Slide 42
UNDERSTAND THE NON-DETERMINISTIC NATURE Suggestions are guidance rather than definitive answers
@JENNAPEDERSON
Slide 43
COMPUTERS DON’T GO TO JAIL. PEOPLE DO.
@JENNAPEDERSON
Slide 44
RECALIBRATING THE CRAFT OF THE SOFTWARE ENGINEER @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
Slide 49
THANK YOU! Please share your feedback!
/in/jennapederson @jennanerdsout @jennapederson