SlideShare a Scribd company logo
Let's Go to the Whiteboard: How and Why
                             Software Developers Use Drawings




                                                                            Picture credit: D. Rigaud
“The cobbler's children
are the last to get shoes”




                                                         M. Cherubini -EPFL
                                                          G. Venolia -MSR
                                                          R. DeLine -MSR
                                                           A. J. Ko -CMU
Which of these two diagrams is more useful
                     to software developers?
                                                         B
 A




credit: w3.org
Previous research
• Sketches and formal drawings play
  major role in other engineering&design
  disciplines
  – K. Henderson [1995]
  – B. Tversky, et al. [2003]
  – B. Tversky [2001]
• Software developers keeps critical
  information in their heads
  – T. D. LaToza, G. Venolia, and R. DeLine [2006]
Motivation
• Can we create visualizations to help
  developers to externalize their mental
  models?
  – How and why do developers use visual
    representations of their code?
Research design
                             9 interviewees
A- survey of MS devs


                                 B- interviews

350 respondents


C- survey of MS devs


                       9 scenarios

430 respondents
Understanding existing code
Developers examined the source code and its behavior
in order to develop an understanding of it.


                            > I remember this one time where I
                            wanted to quickly see the
                            inheritance of a bunch of classes.
                            So I quickly created a diagram with
                            the Object Browser feature of
                            Visual Studio and then I threw it
                            away. [Colin]

 - diagrams not particularly important
 - paper-based sketches
 - least concerned with accuracy
Ad-hoc meeting
When a developer reached an impasse while trying to
understand existing code or needed to vet a design decision
with a teammate, he would walk to another developer’s office,
interrupt her, and then have a brief discussion


                                   > When I need to explain to
                                   a colleague how some stuff
                                   works then I use the
                                   whiteboard. [Nigel]




- sketches predominant
- low concern for accuracy
- same drawings reiterated frequently
Designing/refactoring
Engineers planned how to implement new functionality,
fix a bug, or make the structure better match its existing
functionality

                            > I look at the diagram and if I see
                            lots of fields in a certain table I see
                            that is a potential candidate for
                            restructuring. Or maybe I have a
                            small table with lots of joint
                            connections out of it. The diagram
                            helps identify design problems.
                            [Daniel]


- visual to-do list
- paper-based sketches
Design review
To evaluate a proposed design change, engineers
performed a design review to inform and seek input
from the affected people. Diagrams were often used.

                              > We did go through different
                              meetings to understand what is
                              what we call the game and what
                              we call the engine. We wanted to
                              be sure that the core was abstract
                              enough and diagrams helped in
                              figuring out where these
                              boundaries were. [Tom]

- reverse-engineering tools
- engineering notebooks
Onboarding
When a developer joined a team he apprenticed with a
more senior developer to acquire a mental model of the
code.


                          > My manager used this diagram to
                          explain the code to me when I first
                          started. Recently I realized that I
                          used kind of the same diagram
                          to introduce a new hire to the
                          project. [Andrew]


- diagrams were crucial
- least concerned with the accuracy
Explaining to secondary stakeholders
 There were many stakeholders beyond the core
 development team, including testers, project managers,
 and internal “consumers” of code. Engineers typically
 communicated with these people through face-to-face
 informal meetings. Drawings were often used.


                           > I was implementing a new feature
                           and I had to make a design
                           decision and I wanted my PM to
                           approve it. As it was complicated to
                           explain what I had in mind, I
                           sketched it on paper. [Andrew]

 - the rarest among the scenarios
 - drawings were most important
Explaining to customers
Engineers were responsible for presenting the architecture
or usage of the software to external customers.



                              > I had to use this diagram with
                              customers, but the state diagrams
                              that we were using were too
                              complicated so I had to simplify it
                              focusing on the individual
                              components. [Geremy]


 - recorded lecture
 - high degree of formality
 - use of graphic standards
Hallway art
Team leaders sometimes tried to foster team awareness
of aspects of the architecture by displaying information
about the code in the team’s space.


                          > When we do planning or spec
                          writing, we come out with this kind
                          of design. Then we dive into
                          implementation. We refer to these
                          diagrams every now and then to
                          communicate with the rest of the
                          team. [Colin]


- unimportant activity
- performed with low frequency
Technical documentation
Engineers created documents (text + diagrams) describing
the architecture, usage, or internals of the code for
teammates, other internal customers, or external customers.

                            >We have many sectors, which
                            contain a rigid number of servers.
                            We wanted to change that for
                            scalability issues and so I was
                            using these diagrams to explain
                            [to the sustained-engineering
                            group] the inner working of each
                            machine and the proposed
                            change. [Geremy]
 - very important activity
 - drawings played a crucial role
 - used reverse-engineering tools
Discussion
A. Developers used transient diagrams
   for exploration activities


 Diagrams are drawn to support communication
                                                 !
 and are definitely secondary. The conversation
       has value, the diagram does not.
Discussion
A. Developers used transient diagrams
   for exploration activities
B. Software engineers used diagrams to
   understand, to design and to communicate
C. Developers did not follow any graphical
   standard
D. We observed a limited adoption of drawing
   tools
Validity
> Our results are similar to Dekel [2005] study of
development teams at OOPLA DesignFest.

> May be different in other situations or organizations
Tool concept (1):
                   Capture

Many design decisions are
made during one-to-one
meetings
Engineers might benefit from
recording these events (the
diagrams + the conversation
in which it was created)
Tool concept (2):
      Integrating reverse-
   engineering and sketching
In their sketches engineers often
combined aspects of the current
                                    ?
state of the code with proposed
changes.
This need might be addressed
by a tool that combines
reverse-engineering with
sketching.
Tool concept (3):
       Levels of abstraction

Engineers need to understand both the microscopic
details of the code and the macroscopic conceptual
structure. No current view conveys both levels of
abstraction simultaneously.
Summary
> Software engineers create diagrams to support face-to-
face communication
> Current drawing tools were not capable of supporting
this need because they did not help engineers externalize
their mental models of code

> The role of diagrams in software development differs
from other engineering disciplines

 Can we create visualizations to help developers to
                                                      !
 externalize their mental models?
     –Maybe … but we need to be cautious!
Extra slides
Acknowledgments
We would like to thank the VIBE team and the HIP team,
at Microsoft Corporation, for their feedback. The first
author was an intern at Microsoft during the summer of
2006.
Particularly we would like to thank Andrew Begel, Jakob
Biehl, Pierre Dillenbourg, Nicolas Nova, Guillaume
Zufferey, Mark Meagher, and the anonymous reviewers for
their valuable comments on the paper.
Drawing tool used by Scenario




   Sketches were the predominant medium
Frequency of each Scenario




Transient sketches were part of the daily activities
Sketching Medium by
      Scenario
Future work: Code Maps
M. Cherubini, G. Venolia and R. deLine. Building an Ecologically-
valid, Large-scale Diagram to Help Developers Stay Oriented in
Their Code. Paper submitted to IEEE Symposium on Visual
Languages and Human-Centric Computing (VL/HCC 2007). Coeur
d'Alène, Idaho, USA, 23-27 September 2007.
Iterated Sketch example
Contacts
• Mauro Cherubini (EPFL)
  <mauro.cherubini @ epfl.ch>
• Gina Venolia (MSR)
  <gina.venolia @ microsoft.com>
• Rob DeLine (MSR)
 <rob.deline @ microsoft.com>
• Andy Ko (CMU)
 <ajk @ cs.cmu.edu>
Resulting Model

More Related Content

Viewers also liked

Using Writeboard
Using WriteboardUsing Writeboard
Using Writeboard
quirkytech
 
How To Collaborate Using Writeboard
How To Collaborate Using WriteboardHow To Collaborate Using Writeboard
How To Collaborate Using Writeboard
Lora Shinault
 
Wiimote Whiteboard
Wiimote WhiteboardWiimote Whiteboard
Wiimote Whiteboard
mystrE
 
Collaborative Editing Tools
Collaborative Editing ToolsCollaborative Editing Tools
Collaborative Editing Tools
Michael Farina
 
Smartboard powerpoint
Smartboard powerpointSmartboard powerpoint
Smartboard powerpoint
S0301689
 
Smartboards
SmartboardsSmartboards
Smartboards
Staci Trekles
 
Interactive Whiteboards Presentation
Interactive Whiteboards PresentationInteractive Whiteboards Presentation
Interactive Whiteboards Presentation
bec28
 
Elastic Web Mining
Elastic Web MiningElastic Web Mining
Elastic Web Mining
Ken Krugler
 

Viewers also liked (8)

Using Writeboard
Using WriteboardUsing Writeboard
Using Writeboard
 
How To Collaborate Using Writeboard
How To Collaborate Using WriteboardHow To Collaborate Using Writeboard
How To Collaborate Using Writeboard
 
Wiimote Whiteboard
Wiimote WhiteboardWiimote Whiteboard
Wiimote Whiteboard
 
Collaborative Editing Tools
Collaborative Editing ToolsCollaborative Editing Tools
Collaborative Editing Tools
 
Smartboard powerpoint
Smartboard powerpointSmartboard powerpoint
Smartboard powerpoint
 
Smartboards
SmartboardsSmartboards
Smartboards
 
Interactive Whiteboards Presentation
Interactive Whiteboards PresentationInteractive Whiteboards Presentation
Interactive Whiteboards Presentation
 
Elastic Web Mining
Elastic Web MiningElastic Web Mining
Elastic Web Mining
 

Similar to Let's go to the whiteboard: how and why software developers use drawings

Drafting technology
Drafting technologyDrafting technology
Drafting technology
khinmha
 
Graduation Presentation
Graduation PresentationGraduation Presentation
Graduation Presentation
Sander Mulders
 
John May Portfolio
John May PortfolioJohn May Portfolio
John May Portfolio
jmay1245
 
Portfolio in Power Point
Portfolio in Power PointPortfolio in Power Point
Portfolio in Power Point
jmay1245
 
Interactive sketching for the early stages of user interface design
Interactive sketching for the early stages of user interface designInteractive sketching for the early stages of user interface design
Interactive sketching for the early stages of user interface design
Wookjae Maeng
 
Classification Engineering graphics & design
Classification Engineering graphics & designClassification Engineering graphics & design
Classification Engineering graphics & design
Manish Gupta
 
A Developers Take on Cooper
A Developers Take on CooperA Developers Take on Cooper
A Developers Take on Cooper
Adam Jordens
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1
HyeonSeok Choi
 
6 weeks software training report
6 weeks software training report    6 weeks software training report
6 weeks software training report
sucha soorma designs
 
Lesson_1_Graphics_Communication_Intro.ppt
Lesson_1_Graphics_Communication_Intro.pptLesson_1_Graphics_Communication_Intro.ppt
Lesson_1_Graphics_Communication_Intro.ppt
PabloAntonioSanMarti1
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
Chad Udell
 
design_fundamental_new_.ppt
design_fundamental_new_.pptdesign_fundamental_new_.ppt
design_fundamental_new_.ppt
MohsenGhorbani9
 
Production process presentation - drupalcamp Toronto 2010
Production process presentation - drupalcamp Toronto 2010Production process presentation - drupalcamp Toronto 2010
Production process presentation - drupalcamp Toronto 2010
Aidan Foster
 
Better. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC DesignBetter. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC Design
jennifer gergen
 
Unit 1
Unit 1Unit 1
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
DevDay Da Nang
 
Good Graphic design and an Introduction to Inkscape
Good Graphic design and an Introduction to InkscapeGood Graphic design and an Introduction to Inkscape
Good Graphic design and an Introduction to Inkscape
Omar Mohammad
 
Pdar
PdarPdar
Design process
Design processDesign process
Design process
Leandro Puca
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
stanbridge
 

Similar to Let's go to the whiteboard: how and why software developers use drawings (20)

Drafting technology
Drafting technologyDrafting technology
Drafting technology
 
Graduation Presentation
Graduation PresentationGraduation Presentation
Graduation Presentation
 
John May Portfolio
John May PortfolioJohn May Portfolio
John May Portfolio
 
Portfolio in Power Point
Portfolio in Power PointPortfolio in Power Point
Portfolio in Power Point
 
Interactive sketching for the early stages of user interface design
Interactive sketching for the early stages of user interface designInteractive sketching for the early stages of user interface design
Interactive sketching for the early stages of user interface design
 
Classification Engineering graphics & design
Classification Engineering graphics & designClassification Engineering graphics & design
Classification Engineering graphics & design
 
A Developers Take on Cooper
A Developers Take on CooperA Developers Take on Cooper
A Developers Take on Cooper
 
Domain driven design ch1
Domain driven design ch1Domain driven design ch1
Domain driven design ch1
 
6 weeks software training report
6 weeks software training report    6 weeks software training report
6 weeks software training report
 
Lesson_1_Graphics_Communication_Intro.ppt
Lesson_1_Graphics_Communication_Intro.pptLesson_1_Graphics_Communication_Intro.ppt
Lesson_1_Graphics_Communication_Intro.ppt
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
 
design_fundamental_new_.ppt
design_fundamental_new_.pptdesign_fundamental_new_.ppt
design_fundamental_new_.ppt
 
Production process presentation - drupalcamp Toronto 2010
Production process presentation - drupalcamp Toronto 2010Production process presentation - drupalcamp Toronto 2010
Production process presentation - drupalcamp Toronto 2010
 
Better. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC DesignBetter. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC Design
 
Unit 1
Unit 1Unit 1
Unit 1
 
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
 
Good Graphic design and an Introduction to Inkscape
Good Graphic design and an Introduction to InkscapeGood Graphic design and an Introduction to Inkscape
Good Graphic design and an Introduction to Inkscape
 
Pdar
PdarPdar
Pdar
 
Design process
Design processDesign process
Design process
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 

Recently uploaded

Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 

Recently uploaded (20)

Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 

Let's go to the whiteboard: how and why software developers use drawings

  • 1. Let's Go to the Whiteboard: How and Why Software Developers Use Drawings Picture credit: D. Rigaud “The cobbler's children are the last to get shoes” M. Cherubini -EPFL G. Venolia -MSR R. DeLine -MSR A. J. Ko -CMU
  • 2. Which of these two diagrams is more useful to software developers? B A credit: w3.org
  • 3. Previous research • Sketches and formal drawings play major role in other engineering&design disciplines – K. Henderson [1995] – B. Tversky, et al. [2003] – B. Tversky [2001] • Software developers keeps critical information in their heads – T. D. LaToza, G. Venolia, and R. DeLine [2006]
  • 4. Motivation • Can we create visualizations to help developers to externalize their mental models? – How and why do developers use visual representations of their code?
  • 5. Research design 9 interviewees A- survey of MS devs B- interviews 350 respondents C- survey of MS devs 9 scenarios 430 respondents
  • 6. Understanding existing code Developers examined the source code and its behavior in order to develop an understanding of it. > I remember this one time where I wanted to quickly see the inheritance of a bunch of classes. So I quickly created a diagram with the Object Browser feature of Visual Studio and then I threw it away. [Colin] - diagrams not particularly important - paper-based sketches - least concerned with accuracy
  • 7. Ad-hoc meeting When a developer reached an impasse while trying to understand existing code or needed to vet a design decision with a teammate, he would walk to another developer’s office, interrupt her, and then have a brief discussion > When I need to explain to a colleague how some stuff works then I use the whiteboard. [Nigel] - sketches predominant - low concern for accuracy - same drawings reiterated frequently
  • 8. Designing/refactoring Engineers planned how to implement new functionality, fix a bug, or make the structure better match its existing functionality > I look at the diagram and if I see lots of fields in a certain table I see that is a potential candidate for restructuring. Or maybe I have a small table with lots of joint connections out of it. The diagram helps identify design problems. [Daniel] - visual to-do list - paper-based sketches
  • 9. Design review To evaluate a proposed design change, engineers performed a design review to inform and seek input from the affected people. Diagrams were often used. > We did go through different meetings to understand what is what we call the game and what we call the engine. We wanted to be sure that the core was abstract enough and diagrams helped in figuring out where these boundaries were. [Tom] - reverse-engineering tools - engineering notebooks
  • 10. Onboarding When a developer joined a team he apprenticed with a more senior developer to acquire a mental model of the code. > My manager used this diagram to explain the code to me when I first started. Recently I realized that I used kind of the same diagram to introduce a new hire to the project. [Andrew] - diagrams were crucial - least concerned with the accuracy
  • 11. Explaining to secondary stakeholders There were many stakeholders beyond the core development team, including testers, project managers, and internal “consumers” of code. Engineers typically communicated with these people through face-to-face informal meetings. Drawings were often used. > I was implementing a new feature and I had to make a design decision and I wanted my PM to approve it. As it was complicated to explain what I had in mind, I sketched it on paper. [Andrew] - the rarest among the scenarios - drawings were most important
  • 12. Explaining to customers Engineers were responsible for presenting the architecture or usage of the software to external customers. > I had to use this diagram with customers, but the state diagrams that we were using were too complicated so I had to simplify it focusing on the individual components. [Geremy] - recorded lecture - high degree of formality - use of graphic standards
  • 13. Hallway art Team leaders sometimes tried to foster team awareness of aspects of the architecture by displaying information about the code in the team’s space. > When we do planning or spec writing, we come out with this kind of design. Then we dive into implementation. We refer to these diagrams every now and then to communicate with the rest of the team. [Colin] - unimportant activity - performed with low frequency
  • 14. Technical documentation Engineers created documents (text + diagrams) describing the architecture, usage, or internals of the code for teammates, other internal customers, or external customers. >We have many sectors, which contain a rigid number of servers. We wanted to change that for scalability issues and so I was using these diagrams to explain [to the sustained-engineering group] the inner working of each machine and the proposed change. [Geremy] - very important activity - drawings played a crucial role - used reverse-engineering tools
  • 15. Discussion A. Developers used transient diagrams for exploration activities Diagrams are drawn to support communication ! and are definitely secondary. The conversation has value, the diagram does not.
  • 16. Discussion A. Developers used transient diagrams for exploration activities B. Software engineers used diagrams to understand, to design and to communicate C. Developers did not follow any graphical standard D. We observed a limited adoption of drawing tools
  • 17. Validity > Our results are similar to Dekel [2005] study of development teams at OOPLA DesignFest. > May be different in other situations or organizations
  • 18. Tool concept (1): Capture Many design decisions are made during one-to-one meetings Engineers might benefit from recording these events (the diagrams + the conversation in which it was created)
  • 19. Tool concept (2): Integrating reverse- engineering and sketching In their sketches engineers often combined aspects of the current ? state of the code with proposed changes. This need might be addressed by a tool that combines reverse-engineering with sketching.
  • 20. Tool concept (3): Levels of abstraction Engineers need to understand both the microscopic details of the code and the macroscopic conceptual structure. No current view conveys both levels of abstraction simultaneously.
  • 21. Summary > Software engineers create diagrams to support face-to- face communication > Current drawing tools were not capable of supporting this need because they did not help engineers externalize their mental models of code > The role of diagrams in software development differs from other engineering disciplines Can we create visualizations to help developers to ! externalize their mental models? –Maybe … but we need to be cautious!
  • 23. Acknowledgments We would like to thank the VIBE team and the HIP team, at Microsoft Corporation, for their feedback. The first author was an intern at Microsoft during the summer of 2006. Particularly we would like to thank Andrew Begel, Jakob Biehl, Pierre Dillenbourg, Nicolas Nova, Guillaume Zufferey, Mark Meagher, and the anonymous reviewers for their valuable comments on the paper.
  • 24. Drawing tool used by Scenario Sketches were the predominant medium
  • 25. Frequency of each Scenario Transient sketches were part of the daily activities
  • 27. Future work: Code Maps M. Cherubini, G. Venolia and R. deLine. Building an Ecologically- valid, Large-scale Diagram to Help Developers Stay Oriented in Their Code. Paper submitted to IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2007). Coeur d'Alène, Idaho, USA, 23-27 September 2007.
  • 29. Contacts • Mauro Cherubini (EPFL) <mauro.cherubini @ epfl.ch> • Gina Venolia (MSR) <gina.venolia @ microsoft.com> • Rob DeLine (MSR) <rob.deline @ microsoft.com> • Andy Ko (CMU) <ajk @ cs.cmu.edu>