SlideShare a Scribd company logo
If Hemingway Wrote Javadoc
September 2–3, 2020
springone.io
Jay Bryant – Spring Technical Writer – @jbryant
Josh Cummings – Spring Security Maintainer – @jzheaux
Safe Harbor Statement
ThefollowingisintendedtooutlinethegeneraldirectionofVMware'sofferings.Itisintendedforinformationpurposesonlyandmay notbeincorporated
intoanycontract. Anyinformationregardingpre-releaseofVMwareofferings,futureupdatesorotherplannedmodificationsis subjecttoongoing
evaluationbyVMwareandissubjecttochange.Thisinformationisprovidedwithoutwarrantyoranykind, expressorimplied, and isnotacommitmentto
deliveranymaterial,code,orfunctionality,and shouldnotberelieduponin makingpurchasingdecisionsregardingVMware's offerings.Thesepurchasing
decisionsshould onlybebasedon featurescurrentlyavailable. Thedevelopment,release,and timingofanyfeaturesorfunctionalitydescribedfor
VMware'sofferingsin thispresentationremainatthesolediscretionofPivotal. Pivotalhasnoobligationtoupdateforwardlookinginformationin this
presentation.
2
If you are a VMware employee and your
talk contains forward facing information,
please include this slide at the beginning or
conclusion of the presentation.
Remove this text box before presenting.
/**
* Blackhats were <i>furious</i> when they saw us
* using <a href=“https://doc.example.org”>
* this best practice</a>.
**/
public void grantPermission(String permission) {
/**
* My CTO doubled my salary after
* <a href=“https://doc.example.org”>this simple
* trick</a> saved the company millions.
**/
public Risk computeRisk(Factors factors) {
Idea #1 - Clickbait
I think you should just #RTFM!
11:32 AM · 28 Feb 2020
22 43 people are Tweeting about this
Disgruntled Documenter
@iamdisgruntled
Idea #2 - Chastisement
Idea #3 – Reverse Psychology
You’re the 1-millionth visitor to our documentation.
You were evaluated as the winner of today’s 1-millionth visitor a few minutes ago by our
system. As your reward, you may choose one exclusive part of our documentation to visit!
Which will it be?
CHOOSE DOCS CHOOSE DOCS CHOOSE DOCS
1. Know Your Audience
2. Be Minimal and Direct
3. Make It Stick
4. Write For Everyone
5. Test
Know Your
Audience
Skill Level
Users
Beginners Intermediates Experts
How Skilled Are Your
Users?
Focus on your Intermediates
AND
Your Beginners trying to become
Intermediates
Based on data published at https://vark-learn.com/introduction-to-vark/research-statist
Visual Audio
Reading Kinesthetics
30%
22%
24% 24%
How Do
Your
Users
Learn?
Many engineers learn in a way
other than Reading
/**
* Get the entity id
*
* @return the entity id
*/
public String getEntityId() {
return this.entityId;
}
/**
* Set the entity id
*
* @param entityId the entity id
*/
public void setEntityId(String entityId)
{
this.entityId = entityId;
}
/**
* Get the relying party’s
* <a href="https://wiki.shibboleth.net/CONCEPT/EntityNaming">EntityID</a>.
*
* <p>
* Equivalent to the value found in the relying party's
* {@code <EntityDescriptor EntityID="..."/>}.
*
* <p>
* This value may contain several placeholders, which should be
* {@link DefaultRelyingPartyRegistrationResolver resolved}
* before use. They are {@code baseUrl}, {@code registrationId},
* {@code baseScheme}, {@code baseHost}, and {@code basePort}.
*
* @see DefaultRelyingPartyRegistrationResolver
* @return the relying party’s EntityID
*/
1
2
3
1 Beginner -> Intermediate: Show a link for terminology that a beginner might not understand
2 Intermediate: Explain a more advanced feature, including a link regarding its usage
3 VARK: Using paragraphs and markup to highlight important details
What was it like
when I didn’t
know this?
Am I writing to be
heard or to help?
Harder
Questions
Be a Minimalist
Use no more words than necessary
Before: “The fact that Java is used to implement the web service is an
implementation detail -- an important detail, but a detail nonetheless.”
(Source: Spring Web Service Reference Guide)
1
6
After: “Using Java to implement the web service is an implementation detail.”
Use Present Tense
Before: “In this tutorial, we will define a Web service that is created by a Human
Resources department.”
(Source: Spring Web Service Reference Guide)
1
7
After: “In this tutorial, we define a Web service that is created by a Human
Resources department.”
Called Simple Present or the Indefinite Present
Prefer Shorter Words
1
8
”utilize” => “use”
“allows you to” => “lets you”
“Don't use a five-dollar word when a fifty-cent word will do.” - Mark Twain
Be Direct
How to Be Direct
Avoid passive voice.
2
0
Talk directly to the audience. Use second person: “you”.
Before: “Note that, in Spring-WS, writing the WSDL by hand is not required”.
After: “Note that, in Spring-WS, you need not write the WSDL by hand.”
Make It Stick
Visu
al
Whitespac
e
Clean
1 of 6
Whitespac
e
Visu
al
Links
And remember to always use https://!
Credible
2 of 6
Links
Visu
al
Format
Clear
3 of 6
Format
Visu
al
Diagrams
Concrete
4 of 6
Diagrams
Kinestheti
cs
Use
Cases
Consistent
5 of 6
Use Cases
Kinestheti
cs
Usage
Complete
6 of 6
Usage
Another C to Remember
Correct
Write for Everyone
How to Write for Everyone (1)
3
6
Avoid cultural references.
If you must use them, choose wide-reaching references
Watch out for offensive references.
How to Write for Everyone (2)
3
7
Avoid Latin.
”e.g” => “for example”. “i.e” => “that is”.
Use present tense.
How to Write for Everyone (3)
3
8
Do not use contractions.
Avoid humor.
Use consistent terminology.
How to Write for Everyone (4)
3
9
Do not try to write literature.
Write to help.
Test
Use Tools
Read Aloud
Peer Review Rewrite
“The only kindof writingis
rewriting.”
- Ernest Hemingway
Be helpful
Stay Connected.
Be Helpful.
Spring Security Patterns, Day 2 @ 1:05 ET, Beginner Track
#springone@s1p

More Related Content

PDF
Spring Up Your Graph
PPTX
Bulletproof Microservices with Spring and Kubernetes
PDF
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
PDF
What’s New in Spring Data MongoDB
PDF
Security Patterns for Microservice Architectures - SpringOne 2020
PDF
Introduction to WebMvc.fn
PDF
Spring Boot Observability
PDF
Walking Through Spring Cloud Data Flow
Spring Up Your Graph
Bulletproof Microservices with Spring and Kubernetes
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
What’s New in Spring Data MongoDB
Security Patterns for Microservice Architectures - SpringOne 2020
Introduction to WebMvc.fn
Spring Boot Observability
Walking Through Spring Cloud Data Flow

What's hot (20)

PPTX
The Past Year in Spring for Apache Geode
PDF
Game of Streams: How to Tame and Get the Most from Your Messaging Platforms
PDF
Microservices with Java, Spring Boot and Spring Cloud
PDF
Building Distributed Systems with Netflix OSS and Spring Cloud
PDF
Spring Boot Whirlwind Tour
PDF
Resilient Microservices with Spring Cloud
PDF
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
PDF
Welcome to the Metrics
PDF
Going Serverless Using the Spring Framework Ecosystem
PPTX
State of Steeltoe 2020
PDF
Cloud-Native Streaming and Event-Driven Microservices
PDF
Introducing Spring Framework 5.3
PDF
A Series of Fortunate Events: Building an Operator in Java
PDF
What Is Spring?
PDF
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
PDF
Accelerate Spring Apps to Cloud at Scale
PDF
Observability Enhancements in Steeltoe
PDF
Microservices - java ee vs spring boot and spring cloud
PDF
Spring: Your Next Java Micro-Framework
PDF
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
The Past Year in Spring for Apache Geode
Game of Streams: How to Tame and Get the Most from Your Messaging Platforms
Microservices with Java, Spring Boot and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring Cloud
Spring Boot Whirlwind Tour
Resilient Microservices with Spring Cloud
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Welcome to the Metrics
Going Serverless Using the Spring Framework Ecosystem
State of Steeltoe 2020
Cloud-Native Streaming and Event-Driven Microservices
Introducing Spring Framework 5.3
A Series of Fortunate Events: Building an Operator in Java
What Is Spring?
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Accelerate Spring Apps to Cloud at Scale
Observability Enhancements in Steeltoe
Microservices - java ee vs spring boot and spring cloud
Spring: Your Next Java Micro-Framework
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
Ad

Similar to If Hemingway Wrote JavaDocs (20)

PDF
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
PPT
(In)Security Implication in the JS Universe
PDF
Building Mobile Friendly APIs in Rails
PDF
Securing a Cloud Migration
PDF
Securing a Cloud Migration
PDF
Progressive Web Apps by Millicent Convento
PDF
SDLC for Pivotal Platform powered by Spring Initializr and Concourse
PPTX
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
PPT
Spring training
PPT
Advanced Web Development
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
PDF
Drupal Security Seminar
PDF
Refactor Large applications with Backbone
PDF
Refactor Large apps with Backbone
PDF
Refactoring Large Web Applications with Backbone.js
PDF
Web app and more
PDF
Web Apps and more
PPTX
MongoDB.local Atlanta: Introduction to Serverless MongoDB
PDF
Spring Framework - III
PDF
Mobile Penetration Testing: Episode III - Attack of the Code
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
(In)Security Implication in the JS Universe
Building Mobile Friendly APIs in Rails
Securing a Cloud Migration
Securing a Cloud Migration
Progressive Web Apps by Millicent Convento
SDLC for Pivotal Platform powered by Spring Initializr and Concourse
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
Spring training
Advanced Web Development
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Drupal Security Seminar
Refactor Large applications with Backbone
Refactor Large apps with Backbone
Refactoring Large Web Applications with Backbone.js
Web app and more
Web Apps and more
MongoDB.local Atlanta: Introduction to Serverless MongoDB
Spring Framework - III
Mobile Penetration Testing: Episode III - Attack of the Code
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
AI in Product Development-omnex systems
PDF
Digital Strategies for Manufacturing Companies
PPTX
Online Work Permit System for Fast Permit Processing
PDF
System and Network Administraation Chapter 3
PPTX
history of c programming in notes for students .pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Nekopoi APK 2025 free lastest update
PPT
Introduction Database Management System for Course Database
PDF
medical staffing services at VALiNTRY
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Introduction to Artificial Intelligence
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
Transform Your Business with a Software ERP System
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
AI in Product Development-omnex systems
Digital Strategies for Manufacturing Companies
Online Work Permit System for Fast Permit Processing
System and Network Administraation Chapter 3
history of c programming in notes for students .pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Navsoft: AI-Powered Business Solutions & Custom Software Development
Nekopoi APK 2025 free lastest update
Introduction Database Management System for Course Database
medical staffing services at VALiNTRY
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Introduction to Artificial Intelligence
How to Choose the Right IT Partner for Your Business in Malaysia

If Hemingway Wrote JavaDocs

  • 1. If Hemingway Wrote Javadoc September 2–3, 2020 springone.io Jay Bryant – Spring Technical Writer – @jbryant Josh Cummings – Spring Security Maintainer – @jzheaux
  • 2. Safe Harbor Statement ThefollowingisintendedtooutlinethegeneraldirectionofVMware'sofferings.Itisintendedforinformationpurposesonlyandmay notbeincorporated intoanycontract. Anyinformationregardingpre-releaseofVMwareofferings,futureupdatesorotherplannedmodificationsis subjecttoongoing evaluationbyVMwareandissubjecttochange.Thisinformationisprovidedwithoutwarrantyoranykind, expressorimplied, and isnotacommitmentto deliveranymaterial,code,orfunctionality,and shouldnotberelieduponin makingpurchasingdecisionsregardingVMware's offerings.Thesepurchasing decisionsshould onlybebasedon featurescurrentlyavailable. Thedevelopment,release,and timingofanyfeaturesorfunctionalitydescribedfor VMware'sofferingsin thispresentationremainatthesolediscretionofPivotal. Pivotalhasnoobligationtoupdateforwardlookinginformationin this presentation. 2 If you are a VMware employee and your talk contains forward facing information, please include this slide at the beginning or conclusion of the presentation. Remove this text box before presenting.
  • 3. /** * Blackhats were <i>furious</i> when they saw us * using <a href=“https://doc.example.org”> * this best practice</a>. **/ public void grantPermission(String permission) { /** * My CTO doubled my salary after * <a href=“https://doc.example.org”>this simple * trick</a> saved the company millions. **/ public Risk computeRisk(Factors factors) { Idea #1 - Clickbait
  • 4. I think you should just #RTFM! 11:32 AM · 28 Feb 2020 22 43 people are Tweeting about this Disgruntled Documenter @iamdisgruntled Idea #2 - Chastisement
  • 5. Idea #3 – Reverse Psychology You’re the 1-millionth visitor to our documentation. You were evaluated as the winner of today’s 1-millionth visitor a few minutes ago by our system. As your reward, you may choose one exclusive part of our documentation to visit! Which will it be? CHOOSE DOCS CHOOSE DOCS CHOOSE DOCS
  • 6. 1. Know Your Audience 2. Be Minimal and Direct 3. Make It Stick 4. Write For Everyone 5. Test
  • 8. Skill Level Users Beginners Intermediates Experts How Skilled Are Your Users?
  • 9. Focus on your Intermediates AND Your Beginners trying to become Intermediates
  • 10. Based on data published at https://vark-learn.com/introduction-to-vark/research-statist Visual Audio Reading Kinesthetics 30% 22% 24% 24% How Do Your Users Learn?
  • 11. Many engineers learn in a way other than Reading
  • 12. /** * Get the entity id * * @return the entity id */ public String getEntityId() { return this.entityId; } /** * Set the entity id * * @param entityId the entity id */ public void setEntityId(String entityId) { this.entityId = entityId; }
  • 13. /** * Get the relying party’s * <a href="https://wiki.shibboleth.net/CONCEPT/EntityNaming">EntityID</a>. * * <p> * Equivalent to the value found in the relying party's * {@code <EntityDescriptor EntityID="..."/>}. * * <p> * This value may contain several placeholders, which should be * {@link DefaultRelyingPartyRegistrationResolver resolved} * before use. They are {@code baseUrl}, {@code registrationId}, * {@code baseScheme}, {@code baseHost}, and {@code basePort}. * * @see DefaultRelyingPartyRegistrationResolver * @return the relying party’s EntityID */ 1 2 3 1 Beginner -> Intermediate: Show a link for terminology that a beginner might not understand 2 Intermediate: Explain a more advanced feature, including a link regarding its usage 3 VARK: Using paragraphs and markup to highlight important details
  • 14. What was it like when I didn’t know this? Am I writing to be heard or to help? Harder Questions
  • 16. Use no more words than necessary Before: “The fact that Java is used to implement the web service is an implementation detail -- an important detail, but a detail nonetheless.” (Source: Spring Web Service Reference Guide) 1 6 After: “Using Java to implement the web service is an implementation detail.”
  • 17. Use Present Tense Before: “In this tutorial, we will define a Web service that is created by a Human Resources department.” (Source: Spring Web Service Reference Guide) 1 7 After: “In this tutorial, we define a Web service that is created by a Human Resources department.” Called Simple Present or the Indefinite Present
  • 18. Prefer Shorter Words 1 8 ”utilize” => “use” “allows you to” => “lets you” “Don't use a five-dollar word when a fifty-cent word will do.” - Mark Twain
  • 20. How to Be Direct Avoid passive voice. 2 0 Talk directly to the audience. Use second person: “you”. Before: “Note that, in Spring-WS, writing the WSDL by hand is not required”. After: “Note that, in Spring-WS, you need not write the WSDL by hand.”
  • 24. Visu al Links And remember to always use https://! Credible 2 of 6
  • 25. Links
  • 33. Usage
  • 34. Another C to Remember Correct
  • 36. How to Write for Everyone (1) 3 6 Avoid cultural references. If you must use them, choose wide-reaching references Watch out for offensive references.
  • 37. How to Write for Everyone (2) 3 7 Avoid Latin. ”e.g” => “for example”. “i.e” => “that is”. Use present tense.
  • 38. How to Write for Everyone (3) 3 8 Do not use contractions. Avoid humor. Use consistent terminology.
  • 39. How to Write for Everyone (4) 3 9 Do not try to write literature. Write to help.
  • 40. Test
  • 41. Use Tools Read Aloud Peer Review Rewrite
  • 42. “The only kindof writingis rewriting.” - Ernest Hemingway
  • 44. Stay Connected. Be Helpful. Spring Security Patterns, Day 2 @ 1:05 ET, Beginner Track #springone@s1p

Editor's Notes

  • #2: Hemingway was famous for his writing style, which was powerfully descriptive while being economical with the language.
  • #37: Examples of wide-reaching references: Cooking, football (even though it means different things in different countries), other sports. Example of a possibly offensive reference: Beer. Many cultures have beer, but many others do not consume alcohol. Try bread. Almost every culture has some form of bread.
  • #38: Using present tense applies to making things easier to understand, too.
  • #39: Formal writing, including all technical writing, does not use contractions. Also, they can be more readily misunderstood. Humor is always culturally bound and often does not travel well into other cultures. Use the same word for the same idea in all cases. Trying to vary the terminology can cause confusion.
  • #40: It may seem boring to never vary your terminology or your sentence structure and to avoid all humor, but think of the audience. Their goal is to learn what they need to know as quickly as possible. Consistency in terminology and sentence structure and even document structure (the arrangement of heading) helps readers find what they need and learn it quickly.