Folio3 is a software development company that focuses on custom enterprise, mobile, and social media applications. It was founded in 2005 and has over 200 employees across several offices. The document outlines Folio3's technical documentation guidelines and requirements for developers. It specifies that source code must include detailed comments, and projects require functional scope documents, UML diagrams, and overall architecture designs to ensure quality. Folio3 enforces these standards through documentation audits and by including documentation time in estimates.
3. Who We Are
We are a Development Partner for our customers
Design software solutions, not just implement them
Focus on the solution – Platform and technology agnostic
Expertise in building applications that are:
Mobile Social Cloud-based Gamified
4. What We Do
Areas of Focus
Enterprise
Custom enterprise applications
Product development targeting the enterprise
Mobile
Custom mobile apps for iOS, Android, Windows Phone, BB OS
Mobile platform (server-to-server) development
Social Media
CMS based websites for consumers and enterprise (corporate, consumer,
community & social networking)
Social media platform development (enterprise & consumer)
5. Folio3 At a Glance
Founded in 2005
Over 200 full time employees
Offices in the US, Canada, Bulgaria & Pakistan
Palo Alto, CA.
Sofia, Bulgaria
Karachi, Pakistan
Toronto, Canada
6. Areas of Focus: Enterprise
Automating workflows
Cloud based solutions
Application integration
Platform development
Healthcare
Mobile Enterprise
Digital Media
Supply Chain
8. Areas of Focus: Mobile
Serious enterprise applications for Banks,
Businesses
Fun consumer apps for app discovery,
interaction, exercise gamification and play
Educational apps
Augmented Reality apps
Mobile Platforms
10. Areas of Focus: Web & Social Media
Community Sites based on
Content Management Systems
Enterprise Social Networking
Social Games for Facebook &
Mobile
Companion Apps for games
12. www.folio3.com @folio_3
The BIG PICTUREThe BIG PICTURE
Project Technical DocumentationProject Technical Documentation
GuidelinesGuidelines
13. Quality Issues
Missing the “big picture”
No formal guidelines for the functional scope
Missing tracks on code commits/check-ins
Others …
14. Software Documentation
Documentation is an important part of the software engineering
process.
Project Specifications/Requirements
Statements that identify attributes, capabilities, characteristics
or qualities of a system. This is the foundation for what shall be or
has been implemented.
Architecture/Design
Overview of software. Includes relations to the environment
and the construction principles to be used in design of software
components.
15. Software Documentation (Cont.)
Technical
Documentation of code, algorithms, interfaces and APIs.
End User
Manuals for the end-user, system administrators and support staff.
Marketing
How to market the product and analysis of the market demand
At Folio3 the focus for developers should be on:
Architecture/Design
Technical documentation
On-the-go documentation inside code & during check-in
17. Level 0: Source Code Self Documentation: Comments
Code check-in comments - Mandatory
Defines
Bugs fixes with Bug ID
Feature/changes with feature/change story ID
File level comments - Mandatory
Defines
Constituents
Code distribution license
Contributor names and timestamp
Class level comments - Mandatory
Defines
Purpose
Responsibilities
Dependencies/Requirements
18. (Cont.)Level 0: Source Code Self Documentation: Comments
Method level comments - Mandatory
Defines
Purpose
Arguments definition
Return value definition
Dependencies/Requirements (where applicable)
Algorithm level comments - Mandatory
Defines
Steps declaration & their brief description
Branch level comments - Mandatory
Defines
Description on the condition that will branch on "if .. then", and on
"else"
19. (Cont.)Level 0: Source Code Self Documentation: Comments
Other comments - Optional
Descriptions for important variables, objects
Descriptions for essential calls
API Documentation - Optional
Auto generated using the IDEs or document creator tool like
doxygen, etc.
20. Level 1: Module Functional Scope
Module Brief Functional Specs – Mandatory
Should not be more than 3-4 pages. Defines:
Problem/Purpose statement
The requirements scope [OPTIONAL] - What is required by the customer?
Functional scope [OPTIONAL] - What is the functionally needed to fulfill the
above requirements?
Description of module items - Classes, ADTs, Functions, DB/Tables
UML Diagrams
Class diagram - Mandatory
Activity diagram - Optional
ER Diagram - Mandatory
21. Level 2: Overall Software Architecture Design
Overall Software Design Specs - Mandatory
UML Diagrams
Overall Class Diagram (Optional) - Can be reverse engineered in
the end
Use Case diagram (Optional)
Component Diagram (Optional)
Package Diagram (Optional)
Deployment Diagram (Optional)
Data Flow Diagram (Optional)
Overall ER Diagram - Mandatory
23. Folio3 Requirements
At least up to level 1
Means
Level 0: Source Code Self Documentation: Comments
Level 1: Module Functional Scope Document
Level 1: Module Class Diagram
Level 1: Module ER Diagram
In some cases, also the mandatory items from level 2
Means
Overall software design specs
Overall ER diagram
24. When to do Documentation?
Level 0 - Alongside coding / development.
Comments writing should not be scheduled as a later task.
They are often forgotten or left behind if scheduled
later.
Level 1 – At the start of module development
Should be used as guidelines by the developer.
Level 2 - Any time in the development life cycle
Level 3 - Before start of the development
26. What tools should be used?
IDEs
Can auto generate:
Class diagrams
Component diagrams
MS Visio
Can be used to create:
All UML diagrams
Data flow diagrams
ER diagrams
MS Word
Can be used for:
Specs and scoping documentations
27. Enforcement & Monitoring
Estimators
MUST include / reserve some hours for documentation (till
Level 1 at least)
Managers and Tech / Dev Leads
Must make sure that they have all the required mandatory
documentation
AG
Must conduct Periodic (Quarterly) audits for each project
28. Contact
For more details about our services, please get in touch
with us.
contact@folio3.com
US Office: (408) 365-4638
www.folio3.com