Productivity
"Based on data from 250K+ developers in our global community,
developers code 52 minutes per day — about 4 hours and 21
minutes during a normal workweek from Monday to Friday."
"Code time is de
fi
ned as time spent actively writing or editing code
in an editor or IDE."
https://www.software.com/reports/code-time-report
Slide 24
Slide 24 text
Understanding code
"developers on average spend as much as 58% of their time
comprehending existing source code"
~ Felienne Hermans, The Programmer's Brain
Slide 25
Slide 25 text
Understanding and maintaining
“The majority of a developer’s time isn't writing but understanding and
maintaining existing code.“
https://codescene.com/hubfs/whitepapers/Refactoring-vs-Refuctoring-Advancing-the-state-of-AI-automated-code-improvements.pdf
Productivity
Note:
Does not include
generating code!
https://blog.jetbrains.com/ai/2024/04/developers-save-up-to-8-hours-per-week-with-jetbrains-ai-assistant/
Slide 32
Slide 32 text
Demo
• Let's look at what it can do
Slide 33
Slide 33 text
LLM demo
Slide 34
Slide 34 text
AI Chats
Generate, improve
and explain commit
messages
View
context
Explain
errors
Continue
prompting
Generate code, explain, find
problems, and refactor code,
generate tests and documentation
Slide 35
Slide 35 text
Chat
• LLMs are good at chat 😁
• We can
• Ask how to do things
• Ask follow up questions
Slide 36
Slide 36 text
Chat
• Integrated into the IDE
• Context aware
• Can call back to IDE for more info
Slide 37
Slide 37 text
Code from chat
• Use code from chat:
• Copy to Clipboard
• Insert Snippet at Caret
• Create File from Snippet
Slide 38
Slide 38 text
AI Actions
• Prede
fi
ned prompts
Slide 39
Slide 39 text
Explain code
We spend more time reading code
than writing code
Slide 40
Slide 40 text
Find Problems
Slide 41
Slide 41 text
Suggest Refactoring
Slide 42
Slide 42 text
Suggest Refactoring
See Diff and Apply
Slide 43
Slide 43 text
AI Actions
• Prede
fi
ned prompts
• Add your own!
Slide 44
Slide 44 text
Custom prompts
Add custom prompts to:
• Show in AI Actions
• Use from Chat
Slide 45
Slide 45 text
Code generation is important
• Autocompletion while typing
•
Slide 46
Slide 46 text
Code generation is important
• Shortcut for autocompletion
Slide 47
Slide 47 text
Code generation is important
Generate code...
from the AI Actions menu
Slide 48
Slide 48 text
Code generation is important
Generate code... using a shortcut
Slide 49
Slide 49 text
Code generation is important
Generate code... using a shortcut
Slide 50
Slide 50 text
Code generation is important
Diff view
Slide 51
Slide 51 text
Code generation is important
Continue prompt
Slide 52
Slide 52 text
Code generation is important
Might need small
fi
xes
(Alt+Enter is your friend)
Note: we are working on generating the imports too!
Slide 53
Slide 53 text
Generate Unit Tests
Slide 54
Slide 54 text
Generate Unit Tests
Slide 55
Slide 55 text
Generate commit message
Slide 56
Slide 56 text
Customise commit message
Customize commit
message prompt to
your preferred style
Slide 57
Slide 57 text
Customise commit message
... or from Settings
Slide 58
Slide 58 text
Improve commit message
Slide 59
Slide 59 text
Explain commit message(s)
Slide 60
Slide 60 text
Explain commit message(s)
Slide 61
Slide 61 text
Refactor | Rename
Slide 62
Slide 62 text
Explain regexp
Slide 63
Slide 63 text
Explain runtime error
Slide 64
Slide 64 text
Explain runtime error
Slide 65
Slide 65 text
Convert to different language
Slide 66
Slide 66 text
Overall
• Useful features
• Can save time
• Boilerplate code
• Typing
• Tasks we don't like to do
• Help you work with existing code
Slide 67
Slide 67 text
Real world use case
https://blog.jetbrains.com/idea/2023/12/java-inspection-with-ai-assistant/
Slide 68
Slide 68 text
Real world use case
"I de
fi
nitely saved some time here, probably 10–20 minutes."
"The whole task took about 35 minutes, including creating a
YouTrack issue and taking the screenshots for this blogpost. Not bad!"
https://blog.jetbrains.com/idea/2023/12/java-inspection-with-ai-assistant/
Slide 69
Slide 69 text
Some caveats
"The main problem I see for these kinds of tasks is that AI cannot
learn (yet)."
"When AI is able to accumulate and use project-speci
fi
c knowledge, it
will become way more useful."
https://blog.jetbrains.com/idea/2023/12/java-inspection-with-ai-assistant/
Challenges: Maths
• Computers are good at maths
• LLMs are good at language
Slide 73
Slide 73 text
Challenge: Timeliness
• Cutoff date
• Suggestions may be (out)dated
• Be mindful when using latest tech!
Slide 74
Slide 74 text
Secure code
Slide 75
Slide 75 text
Secure code
• Be critical in evaluating the AI assistants suggestions
• Use additional tools and techniques to verify the code
Slide 76
Slide 76 text
Code quality
• Code churn
• Code smells
Slide 77
Slide 77 text
Automation bias
"Automation bias is the propensity for humans to favor
suggestions from automated decision-making systems and
to ignore contradictory information made without automation,
even if it is correct."
https://en.wikipedia.org/wiki/Automation_bias
Preventing hallucinations
"removes hallucinations from the candidates suggested by LLMs,
then further enhances and ranks suggestions based on static
analysis techniques from program slicing, and
fi
nally leverages the
IDE to execute refactorings correctly."
https://arxiv.org/pdf/2401.15298
Slide 80
Slide 80 text
Privacy
"But we can't send data to the cloud"
Slide 81
Slide 81 text
https://www.jetbrains.com/ai/enterprise/
JetBrains AI Enterprise
Slide 82
Slide 82 text
Full line code completion
Runs locally!
https://www.youtube.com/watch?v=DLBiJ5kYUFg
Slide 83
Slide 83 text
Does it make us more productive?
Slide 84
Slide 84 text
Jobs will change
Slide 85
Slide 85 text
Changes
Slide 86
Slide 86 text
To reiterate
Make sure you understand the code (an) AI Assistant gives you
Slide 87
Slide 87 text
Does AI replace developers?
• Produce more code faster -> more code to maintain
Slide 88
Slide 88 text
No content
Slide 89
Slide 89 text
Does AI replace developers?
• Produce more code faster -> more code to maintain
• Scanning tools / dev practices more important than ever!
• Our skillset might change; we need to adapt
Slide 90
Slide 90 text
Does AI replace developers?
• TL;DR: No
Slide 91
Slide 91 text
Does AI replace developers?
• TL;DR: No
• or at least, not yet (?)
Slide 92
Slide 92 text
Slides & more
https://maritvandijk.com/presentations/ai-assistant-developers/