FooLab
ERD, Flowcharts and
Other Documentation
FrOSCon - August 25, 2012
Slide 2
Slide 2 text
FooLab
What It’s Not About
• Not a full analysis and design course
• Not a demo of modeling tools
• Not a detailed explanation of symbology
2
Slide 3
Slide 3 text
FooLab
What It Is About
• What diagrams serve what purpose
• Tie diagrams together
• Real world examples
• More examples
3
Slide 4
Slide 4 text
FooLab
Anna Filina
• PHP Quebec - user group
• ConFoo - non for profit Web
conference
• FooLab Inc.
• I write code.
• I train and supervise
programmers.
4
Slide 5
Slide 5 text
FooLab
Why No Docs?
• Don't know where to begin
• It's boring
• There’s no point
• Get out of date
• Nobody reads them
• Lean and mean
5
Slide 6
Slide 6 text
FooLab
Not Always Boring
6
Slide 7
Slide 7 text
FooLab
The Real Problem
• Don't understand diagrams
• Diagrams serve no purpose, not helpful
• Mistake diagrams for waterfall model
• Inadequate tools
7
Slide 8
Slide 8 text
FooLab
Conference
Management Software
Slide 9
Slide 9 text
FooLab
Use Case
9
Slide 10
Slide 10 text
FooLab
ER Diagram
10
0 or more
(many)
1
Slide 11
Slide 11 text
FooLab
ER Diagram
11
Non-identifying
Identifying
Slide 12
Slide 12 text
FooLab
ER Diagram
12
Slide 13
Slide 13 text
FooLab
Data Flow Diagram
13
External entity
Slide 14
Slide 14 text
FooLab
Data Flow Diagram
14
1 2 3 4 5 6
7
8
Slide 15
Slide 15 text
FooLab
Data Flow Diagram
15
Slide 16
Slide 16 text
FooLab
Common Mistakes
16
• Data not stored.
• Black hole.
• Grey hole.
• Spontaneous generation.
FooLab
Source Comments
• Inline comments // simple and short explanations
• /**
* Commonly used above functions.
* Can use annotations with phpDocumentor or other.
*/
Descriptive blocks
• Comment when it’s fresh.
• Big functions with lots of comments = split function.
21
Slide 22
Slide 22 text
FooLab
Putting it all together
A.K.A. “The Manual”
FooLab
Manual
• Write topics in bullet point
• Add diagrams
• Write paragraph under each bullet
• Move topics and chapters around
• Fill in with details
24
Slide 25
Slide 25 text
FooLab
How much to write?
Slide 26
Slide 26 text
FooLab
Application Complexity
26
More docs
Less docs
Grandma’s
recipes
vs Facebook
Slide 27
Slide 27 text
FooLab
Security Requirements
27
Grandma’s
recipes
vs
IAFIS
fingerprints
More docs
Less docs
Slide 28
Slide 28 text
FooLab
Financial Impact
28
Grandma’s
recipes
vs
Forex
currency
trading
More docs
Less docs
Slide 29
Slide 29 text
FooLab
Team Size
29
Yourself vs 20 devs
More docs
Less docs
Slide 30
Slide 30 text
FooLab
Team Proximity
30
Same
office
vs Remote
More docs
Less docs
Slide 31
Slide 31 text
FooLab
Good Documentation
• Makes your software easier to build and maintain
• Makes your team more effective
• Discover new features before implementation
31
Slide 32
Slide 32 text
FooLab
Mind Maps
Slide 33
Slide 33 text
FooLab
Systems Analysis and
Design and/or UML book
Slide 34
Slide 34 text
FooLab
Next Steps
• I will tweet the slides:
@afilina
• Please leave feedback:
http://bit.ly/anna-docs
34
Slide 35
Slide 35 text
FooLab
Ask me which software
I use.
astah, Balsamiq