Skip to content
/ orgviz Public

A tool to visualize the "real" structure of organizations.

License

Notifications You must be signed in to change notification settings

orgviz/orgviz

Repository files navigation

Join the orgviz community telegram chat for user questions, comments, or development gossip.

orgviz

A tool to visualize the "real" structure of organizations.

ExampleCompany

On a technical level, this tool basically parses a high level text based language, which is compiled to the amazing GraphViz dia program language. It provides extra constructs and ease of use for drawing complex org charts (graphs!).

1. Installation

This tool has been tested on Fedora 30, but will almost certainly work on any Linux with python3 and Graphviz installed. If Mac’s have Graphviz, then it should work on a Mac just fine.

If using this tool from source, the following packages are required;

  • GraphViz’s dot - you can get this from yum install graphviz on most Linux distributions.

  • python3

The following python3 libraries are also required;

  • python3-configargparse (note, not just argparse)

2. Usage

To run orgviz against an input file and generate an image;

./orgviz.py -I <inputfile>

For more help;

./orgviz.py --help

2.1. Getting started with the example file

Download the example org file here (right click on link, save as). Don’t copy and paste the text because it might break the tabs in the file.

Edit the file using your favourite text editor, following this README guidance. When you’re ready, run orgviz like this;

export ORGVIZ_INPUT=examples/ExampleCompany.org (1)
./orgviz.py (2)
xdg-open orgviz.svg (3)
  1. Set the input file (so we don’t have to specify it every time)

  2. Run orgviz to generate the image.

  3. Open the image with your default system viewer.

Note
Most image viewers support "refresh", so you can edit in one text editor window, and then "refresh" the currently open image just by pressing F5.

3. Organization (Input) file syntax

Full Name
    supports -> Full Name
    reports -> Full Name
    influence: <enemy, supporter, promoter>
    team: Team Name
    title: Job Title

For the example input file that makes up the screenshot above, please see the [examples directory](examples/).

Note: The input file requires tabs, not spaces. It won’t parse if you indent with spaces.

Available attributes include;

  • team

  • title

  • country

Note
You can add any attribute you like, such as phoneNumber, or email, but attributes not listed above won’t be drawn.

4. Connections

Connection types can be anything - the format is [type] → Full Name. Some common types are supports, reports, loves, etc.

Note
supports is the only connection type that draws a "dotted line" between people. All other line types are straight arrows.

5. Vizualisation Type (vizType)

When rendering the picture, there are various ways to vizualize the people. You can choose 1 of these options (eg --vizType none);

  1. DS - Decision Making Unit and Sentiment (default)

  2. inf - Influence - A simple enemy / supporter / promoter

  3. none - everyone is drawn with just white boxes. Go to vizType=none docs

5.1. Option 1: DS - Decision Making Unit and Sentiment (default)

orgviz defaults to this DS view, which is useful for sales teams. DS stands for Decision Making Unit (dmu) and Sentiment (sentiment).

5.1.1. Example

Example of DS

5.1.2. How to use

James
	title: Support Engineer
	dmu: U
	sentiment: O

Available dmu options;

  • User - People in an organisation who directly work with the products/services and get organisational benefits from them. They are often the ones that initiate the requirement for a solution.

  • Influencer - People who can influence the buying decision for a number of reasons. For example, the IT team within and company may influence an organisation’s decision as to what software or solutions that company should buy. In this example, they are often the ones charged with evaluating various alternatives and making the internal recommendation to the business. If Red Hat is selected then we have achieved a Technical Win

  • Gatekeeper - People who control the flow of information to others. For example, a personal secretary may not allow the sales people from a supplier to have access to deciders or users. Likewise, a receptionist may play the role of a gatekeeper as he/she usually maintains telephone, email, and postal communications.

  • Buyer - People who have formal authority to negotiate with suppliers. They negotiate and arrange terms of purchase with the suppliers. As negotiation is a specialist function, high level employees usually play the roles of buyers.

  • Decision Maker - People who have the final say in the buying decision. They have the power and authority to select the final suppliers to move on with the buying process. For example, the finance manager in a company may decide which supplier to work with on the basis of how much money the supplier is asking for a particular product/service.

Available sentiment options;

  • Proponent

  • Neutral

  • Opponent

5.2. Option 2: inf - Influence

There is also the option to create a more simplistic view, called "influence" - i.e does this person have influence over this Opportunity/Account or not?

5.2.1. Example

Example of DS

5.2.2. How to use

James
	title: Support Engineer
	influence: enemy

Available influence options;

  • enemy - Red

  • supporter - Blue

  • promoter - Green

  • internal - Black

5.3. Option 3: Plain display

This removes the influence type when generating the picture - this is useful for presentations and similar.

5.3.1. Example

Example of no vizType

5.3.2. How to use

You don’t need to change any attributes. Simply run orgviz like this;

./orgviz.py --vizType none

6. Configuration File

If you get tired of specifying command line options, then create ~/.orgviz.cfg and pop your options in there to save time. Use --help to find syntax for this and the list of all available options.

7. Profile pictures

At the moment, profile pictures just come from a directory of .jpeg files that match people’s names. Set the profilePictureDirectory option to a directory of photos, and profilePictures to use this feature.

There is a separate microservice in development that auto-grabs profile pictures and LinkedIn details, but this is not released yet.