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

  1. It relies on context OUR EXPECTATIONS OF GENERATIVE AI TOOLS @JENNAPEDERSON

  1. It relies on context
  2. We need to know what it’s optimized for OUR EXPECTATIONS OF GENERATIVE AI TOOLS @JENNAPEDERSON

  1. It relies on context
  2. We need to know what it’s optimized for OUR EXPECTATIONS OF GENERATIVE AI TOOLS
  3. We need to know that it hallucinates @JENNAPEDERSON

  1. It relies on context
  2. We need to know what it’s optimized for OUR EXPECTATIONS OF GENERATIVE AI TOOLS
  3. We need to know that it hallucinates
  4. It can help with the hard parts of software engineering @JENNAPEDERSON

  1. It relies on context
  2. We need to know what it’s optimized for OUR EXPECTATIONS OF GENERATIVE AI TOOLS
  3. We need to know that it hallucinates
  4. It can help with the hard parts of software engineering
  5. It can help in every phase of the SDLC @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

  1. It relies on context
  2. We need to know what it’s optimized for OUR EXPECTATIONS OF GENERATIVE AI TOOLS
  3. We need to know that it hallucinates
  4. It can help with the hard parts of software engineering
  5. It helps in every phase of the SDLC
  6. The tech is rapidly changing @JENNAPEDERSON

GENERATIVE AI IS A TOOL IN YOUR TOOLBOX @JENNAPEDERSON

CRAFTING PROMPTS @JENNAPEDERSON

  1. Clarity BE SPECIFIC AND CLEAR
  2. Intent
  3. Context
  4. Constraints @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