GENERATIVE AI ALONE WON'T MAKEYOU A SOFTWARE ENGINEERJENNA PEDERSON@JENNAPEDERSON

WE’LL COVER

The good, the bad, and the hard (parts of being a softwareengineer)

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 thatdevelopers spend writing or
editing code in their IDE

https://xkcd.com/303/

COLLABORATINGDESIGNING

LEARNING

PROBLEM SOLVINGSO WHAT ARE WE
ACTUALLY DOING?
DOCUMENTING

CODING

MAINTAININGTESTINGHUMANS ARE HARD@JENNAPEDERSONEMPATHY

Allows us to deeply understandour end users and their needs,
experiences, and painpoints@JENNAPEDERSONETHICAL RESPONSIBILITY

We consider broader impact onsociety and look at theconsequences 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, endusers, designers, and morehttps://x.com/milan_milanovic/status/1622127889108926466@JENNAPEDERSONCRITICAL THINKING IS HARD@JENNAPEDERSONWe gather up knowledge about aproblem/problem space, then analyze,
synthesize, and evaluate the info we've
gathered so we can make reasoned
judgements and take action.

DIVE DEEP

5 Whys7 So WhatsFirst Principles@JENNAPEDERSON

Pareto Principle

DEVELOPER VELOCITYINTERPRETED LANGUAGESCOMPILED LANGUAGESASSEMBLY LANGUAGE

MACHINE CODEPUNCH CARDSLEVELS OF ABSTRACTION@JENNAPEDERSONDEVELOPER VELOCITY

LOW CODEDOMAIN SPECIFIC LANGUAGESFRAMEWORKSINTELLISENSEAUTOCOMPLETEIDESOPHISTICATION OF TOOLING@JENNAPEDERSONDEVELOPER VELOCITYCOMMUNITY KNOWLEDGE BASEESSEARCH ENGINESPRE-INTERNETSUPPORTING INFRASTRUCTURE AND SYSTEMS@JENNAPEDERSONCOPY/PASTEDEVELOPER@JENNAPEDERSONCODE IS LANGUAGE@JENNAPEDERSONDEVELOPER VELOCITY

GENERATIVE AICOMMUNITY KNOWLEDGE BASEESSEARCH ENGINESPRE-INTERNETSUPPORTING INFRASTRUCTURE AND SYSTEMS@JENNAPEDERSONDO YOU USE GENERATIVEAI DEVELOPER TOOLS?

@JENNAPEDERSONREIMAGINING THE CRAFTOF THE
SOFTWARE ENGINEER@JENNAPEDERSON

1. It relies on context

OUR EXPECTATIONSOF GENERATIVE AITOOLS@JENNAPEDERSON

1. It relies on context

2. We need to know what it’s optimized for

OUR EXPECTATIONSOF GENERATIVE AITOOLS@JENNAPEDERSON

1. It relies on context

2. We need to know what it’s optimized for

OUR EXPECTATIONSOF 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 EXPECTATIONSOF 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 forOUR EXPECTATIONSOF 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 toshare and discover recipes, including
ingredients, steps, and images. Whatsort of functional and non-functional
requirements should I be thinking
about?

DESIGN &ARCHITECTURE
Prompt:I would like to use AWS to deploy thisweb 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 asimple Flask app that has one route"/recipes" that outputs "My Recipes"
text? I need to set up a python virtualenvironment and requirements.txt aspart of this.

DEBUGGING

Prompt:When I run "python app.py" my Flask
app does not start. There is no output
when the command completes. Whereshould 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 MOSTUSEFUL TO YOU WHEN USING
GENERATIVE AI TOOLS?

@JENNAPEDERSON1. It relies on context

2. We need to know what it’s optimized for

OUR EXPECTATIONSOF 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 TOOLIN YOUR TOOLBOX@JENNAPEDERSONCRAFTING PROMPTS@JENNAPEDERSON

1. Clarity

BE SPECIFIC AND
CLEAR

2. Intent

3. Context

4. Constraints@JENNAPEDERSONUSEEXAMPLES@JENNAPEDERSONUSE ANITERATIVE
APPROACHBREAK DOWNCOMPLEXQUERIES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 CRAFTOF 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 dobetter 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