SlideShare a Scribd company logo
@jammycakes
Keeping lab notes as a software
developer
James McKay
“Prefer working software over comprehensive documentation”
The Agile Manifesto
“If it hurts, do it
more often”
Martin Fowler
Layered architecture
aka “baklava code”
How many places do I
have to change to add a
column to the database?
✤ Entity Framework models
✤ Repository
✤ Service
✤ Business models
✤ DTOs
✤ ViewModels
✤ Views
✤ Tests
✤ Angular.js services, factories,
providers
✤ ServiceFactoryProviderProviders
✤ You have ruined JavaScript!
“What did I do
last time?”
You may also have asked…
✤ I’ve had this problem before, what did I do to solve it?
✤ What have I already tried attempting to fix this?
✤ I’ve just been brought onto this project, what does it
do and how is it structured?
✤ Why is this code designed the way that it is?
My approach
Treat it likeTDD
✤ Think about what you’re going
to do
✤ Write down what you’re going
to do
✤ Then do it
✤ Then write down the outcome
✤ Lather, rinse, repeat!
Example
✤ https://github.com/jammycakes/terraform/wiki/
issue_9589
Benefits
✤ Documentation becomes easier
✤ Clarity of thought to your work
✤ Easier to come back to a task that’s been on hold for a
few days
✤ Easier to hand over to other team members
✤ An audit trail if things go wrong
Keeping lab notes as a software developer
Tips
✤ Use the most low friction
solution that you can
✤ Write down what you’re going
to do before you do it
✤ Phrase it as “I did this…”
✤ Make your notes append-only
✤ Refer back to them!
You cannot be
too detailed
✤ Record all command line
instructions that you run
✤ Record the output, but edit for
clarity if appropriate
✤ Learn from your mistakes!
Teamwork
✤ When pair programming, one
of you writes code, the other
writes notes
✤ Share your notes with the
whole team
✤ DON’T make them public.
They may contain security
sensitive information.
For further information
✤ https://jamesmckay.net/tag/lab-notes
✤ http://www.phy.cam.ac.uk/students/teaching/
teachingles/keepnotes-08.pdf
✤ Or search Google for “how to keep lab notes”

More Related Content

PDF
Five ways to be a happier JavaScript developer
PPT
Unobtrusive javascript
PPT
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
PPTX
Debugging WordPress for Site Owners
PDF
Baawjsajq109
KEY
(For non-developers) HTML5: A richer web for everyone
PDF
Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"
PDF
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Five ways to be a happier JavaScript developer
Unobtrusive javascript
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Debugging WordPress for Site Owners
Baawjsajq109
(For non-developers) HTML5: A richer web for everyone
Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...

What's hot (20)

PPTX
BSides 2015 Intro to Web App Pen Testing with Mutillidae
PPTX
Building Responsible Wordpress Sites
PDF
JavaScript is a buffet - Scriptconf 2017 keynote
PPT
Scrum introduction
PPTX
Real World Windows 8 Apps in JavaScript
PPTX
Unit testing JS = SQLSat 324
PDF
Modern Messaging for Distributed Systems
PDF
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252-450
PPTX
What Visual Studio Code can do for Java Development
PDF
רועי פלד
PDF
Lessons learned from Node.js - Callbacks / Promises
PDF
Empathetc Development
PDF
Build an App with JavaScript & jQuery
PPTX
Resources and lessons for using WordPress in your business
PDF
Rapid Prototyping With J Query
PPTX
Robot Framework - Acceptance tests
PDF
Staying Connected: Securing Your WordPress Website
PPTX
Word press plugin development
PPTX
The JAMStack (Javascript, APIs, Markup).
PPT
Linux Users are People, Too!
BSides 2015 Intro to Web App Pen Testing with Mutillidae
Building Responsible Wordpress Sites
JavaScript is a buffet - Scriptconf 2017 keynote
Scrum introduction
Real World Windows 8 Apps in JavaScript
Unit testing JS = SQLSat 324
Modern Messaging for Distributed Systems
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252-450
What Visual Studio Code can do for Java Development
רועי פלד
Lessons learned from Node.js - Callbacks / Promises
Empathetc Development
Build an App with JavaScript & jQuery
Resources and lessons for using WordPress in your business
Rapid Prototyping With J Query
Robot Framework - Acceptance tests
Staying Connected: Securing Your WordPress Website
Word press plugin development
The JAMStack (Javascript, APIs, Markup).
Linux Users are People, Too!
Ad

Similar to Keeping lab notes as a software developer (20)

ODP
Debugging
PDF
Evolving Software Patterns
PPTX
Shut Up And Eat Your Veg
ODP
Writting Better Software
PPTX
Eric Ries Lean Startup Presentation For Web 2.0 Expo April 1 2009 A Disciplin...
PDF
Guidelines to clean coding
PPT
Agile Development From A Developers Perspective
PPT
Arch factory - Agile Design: Best Practices
PDF
Back to basics simple, elegant, beautiful code
PPTX
2009 05 21 The Lean Startup At SIPA
PDF
Writing Readable Code
PDF
Deliver Fast with Confidence
PDF
Patterns, Code Smells, and The Pragmattic Programmer
PDF
Good Coding Practices with JavaScript
PDF
The View - The top 30 Development tips
KEY
Becoming a more productive Rails Developer
PDF
Clean Code
PDF
ďżźThe Challenge of Continuously Delivering
 
PDF
ChannelStream: The challenges of continuously delivering
PDF
The View - Lotusscript coding best practices
Debugging
Evolving Software Patterns
Shut Up And Eat Your Veg
Writting Better Software
Eric Ries Lean Startup Presentation For Web 2.0 Expo April 1 2009 A Disciplin...
Guidelines to clean coding
Agile Development From A Developers Perspective
Arch factory - Agile Design: Best Practices
Back to basics simple, elegant, beautiful code
2009 05 21 The Lean Startup At SIPA
Writing Readable Code
Deliver Fast with Confidence
Patterns, Code Smells, and The Pragmattic Programmer
Good Coding Practices with JavaScript
The View - The top 30 Development tips
Becoming a more productive Rails Developer
Clean Code
ďżźThe Challenge of Continuously Delivering
 
ChannelStream: The challenges of continuously delivering
The View - Lotusscript coding best practices
Ad

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
 
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Modernizing your data center with Dell and AMD
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
“AI and Expert System Decision Support & Business Intelligence Systems”
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
CIFDAQ's Market Insight: SEC Turns Pro Crypto
 
Building Integrated photovoltaic BIPV_UPV.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
Modernizing your data center with Dell and AMD
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Keeping lab notes as a software developer

  • 1. @jammycakes Keeping lab notes as a software developer James McKay
  • 2. “Prefer working software over comprehensive documentation” The Agile Manifesto
  • 3. “If it hurts, do it more often” Martin Fowler
  • 5. How many places do I have to change to add a column to the database? ✤ Entity Framework models ✤ Repository ✤ Service ✤ Business models ✤ DTOs ✤ ViewModels ✤ Views ✤ Tests ✤ Angular.js services, factories, providers ✤ ServiceFactoryProviderProviders ✤ You have ruined JavaScript!
  • 6. “What did I do last time?”
  • 7. You may also have asked… ✤ I’ve had this problem before, what did I do to solve it? ✤ What have I already tried attempting to x this? ✤ I’ve just been brought onto this project, what does it do and how is it structured? ✤ Why is this code designed the way that it is?
  • 9. Treat it likeTDD ✤ Think about what you’re going to do ✤ Write down what you’re going to do ✤ Then do it ✤ Then write down the outcome ✤ Lather, rinse, repeat!
  • 11. Benefits ✤ Documentation becomes easier ✤ Clarity of thought to your work ✤ Easier to come back to a task that’s been on hold for a few days ✤ Easier to hand over to other team members ✤ An audit trail if things go wrong
  • 13. Tips ✤ Use the most low friction solution that you can ✤ Write down what you’re going to do before you do it ✤ Phrase it as “I did this…” ✤ Make your notes append-only ✤ Refer back to them!
  • 14. You cannot be too detailed ✤ Record all command line instructions that you run ✤ Record the output, but edit for clarity if appropriate ✤ Learn from your mistakes!
  • 15. Teamwork ✤ When pair programming, one of you writes code, the other writes notes ✤ Share your notes with the whole team ✤ DON’T make them public. They may contain security sensitive information.
  • 16. For further information ✤ https://jamesmckay.net/tag/lab-notes ✤ http://www.phy.cam.ac.uk/students/teaching/ teachingles/keepnotes-08.pdf ✤ Or search Google for “how to keep lab notes”