Diagrams as Code Case Study

Diagrams as Code

Initial idea

My best friend told me this in our endless technology talks. He was thinking of it for a while, even started to work a bit on it. His self-defined goal is to bring a new twist on software documentation.  If a picture is worth 1000 words, how much can you express with a whole set?

Overview

Alive UML is a product that aims at simplifying and automating documentation through the power of visual representations. It enables developers to share, package and reuse wiki snippets for granular service views up to entire enterprise architecture diagrams, all within the same tool* (ideally).

Goals

  • In the 21st century, the diagrams must look splendid
  • Default + Customizable styles
  • Text to diagram typesafe DSL (enables reuse, sharing of layers)
  • Multi-layered diagrams, each can focus on different aspects: networking, VMS, Kubernetes, deployment, pipelines, inter-service communication, security, cloud, etc.
  • Flows (user-driven explanation of a particular aspect of the system)
  • Allows embedding of text, speech into flows and diagrams

Extended use cases

I was faced with the challenge to create a Monetization Strategy for the product and to increase its potential. I added the following general use cases, extending the Market addressed by the product.

  • UML Diagrams automation
  • Documentation
  • Code Reusability
  • Code marketplace for easy apps
  • Marketplace for freelancers
  • Code optimization
  • Monitoring 
  • Cost prediction
  • Effort prediction

ALUMI® Proposal

ALUMI® Modules

This module describes the ALUMI® modules that are envisioned to address all the use cases.

Core Modules

DaC

Introducing in this section the concept of DaC as Diagrams as Code. This is the first required step in order to simplify and automate the process of automating code documentation through powerful visual representations. Being able to represent UML diagrams through code allows us to automate the generation of diagrams, making the code readable even by non-technical people and streamlining and standardizing the code reusability process.

A new set of libraries are developed for major programming languages allowing the developers to obtain automatically generated UML diagrams by the use of specific tags in the code.

For existing code, a code interpreter is being built that augments the source code with the required tags in order to obtain the automatically generated diagrams.

This framework ensures the standardization of all the diagrams, with the goal to have all code documented in the same way by the same type of diagrams.

DaC is the core abstraction layer, enabling the product do deliver its use cases.

D2T

D2T stands for Diagrams to Text. The main purpose of the module is to automate the creation of human readable documentation starting from existing diagrams.

It also enables natural language searches for existing diagrams and code blocks with well defined functionalities.

T2D

A complementary module does the reverse conversion: T2D – Text to Diagrams. The main purpose of the module is to interpret natural language text describing functional requirements and automatically generate diagrams for it.

Core Use Cases

With these 3 concepts the 2 major use cases of ALUMI® are addressed in the following manner:

  • Documentation generation for existing or newly written code. Automatic creation of documentation: Source code is translated into standardized diagrams through DaC. The diagrams are translated into human-readable text through D2T obtaining the documentation.
  • Code Generation from functional requirements presented as text. Code generation: Functional requirements written in the text are translated into Diagrams through T2D. The diagrams are translated into code through DaC with the help of machine learning utilized to generate code based on similar examples previously addressed.

Marketplace & Social Coding

The Marketplace is a code repository that allows developers to store source code and customers to search for already written code. The functional Code Blocks with their automatically generated diagrams and descriptions allow for natural language searches based on the functional requirements defined by the customers.

It is part of the User Adoption Strategy and Monetization Strategy.

CB

CB – Coding Blocks, are the building unit of the Marketplace. They are which are standardized functional blocks with all the attributes provided by DaC, T2D and D2T, fully documented in their functionality both with text and diagrams.

There are 2 types of CBs:

  • OCBs: Open Source Code Blocks
  • PCBs: Premium Code Blocks

Customers can search through the library of CBs and utilize them for free (OCBs) or by paying a fee (PCBs). This allows customers to build applications by utilizing existing CBs starting from the functional requirements provided as text or from diagrams written in the DaC framework.

Freelancers are allowed to post CBs as OCBs or PCBs. This allows them to build a reputation and a portofolio. It also allows them to earn money through the PCBs they created.

In order to ensure the quality of CBs, there is an automatic approval process for OCBs and PCBs. The metrics based on which PCBs are approved are comprehensive and include code speed execution metrics, resources utilization, security validation, etc.. This ensures that PCBs bring additional value to their buyers.

Social Coding

The concept of Social Coding consists of building ranks for developers and their portfolio. It also allows collaboration exercises though joined projects that improve the team member score for developers. In order to promovate it Coding camps, Coding contests and Coding Olympics events are used.

ALUMI® Projects

ALUMI® Projects allow customers to outsource software development projects through the use of Freelance developers, existing CBs and the platform provided AI & Machine learning engine.

This is the most advanced product of the platform.

Integrations

Marketplace allows the following integrations with the main products for software development existing on the market.

Examples are presented below, the list is under constant review and development:

  • Bug tracking tools
  • Software development project management tools
  • DevOps Pipeline orchestrators
  • CRMs – ticketing systems
  • Incident Management Portal solutions
  • Metadata feeds for Public Cloud providers

The development of integrations is part of the Marketing and Platform Adoption strategies

Managed Service

Being able to support various Corporate Security regulations, the following models of utilizing the Code Marketplace are offered:

  • Marketplace Open Source with Community Features ( 0$ cost SaaS)
  • Startup: SaaS or On-Prem with Community Features ($)
  • Enterprise: Client Specific Community as SaaS  ($$$$) or On-prem ($$$$) with potential Community Access
  • Enterprise Individual Managed Solution hosted On-prem with no Community Features ($$$$)
  • Enterprise Individual Isolated Self Managed Solution hosted On-prem ($$$)

At very high level these are represented below:

DevOps

Ensures the day to day operation and the DevOps Pipeline for the following:

  • Code Marketplace
  • Open Source Community SaaS
  • Client Specific Community Saas
  • Limited Managed Services as PaaS or Individual Self Hosted

The DevOps pipeline is built around the tool and the CBS.

AI & Machine Learning

Using the inhouse built AI and Machine Learning, customers obtain automatically generated code fully documented based on the functional requirements they introduce into the system.

The Platform Adoption Strategy ensures there is a big pool of open-source CBs based on which new code can be generated.

Feeding the Monetization Strategy, the AI & Machine Learning usage is built within a product that various customers can purchase. 

Freelancers and developers are encouraged to write new CBs by receiving a small part of the revenue created by reutilizing their published CBS. This model ensures that more and more CBS are fed to the AI engine, generating better results to end customers.

The AI & Machine learning engine also ensures Code Optimization suggestions, cost prediction and effort prediction for ALUMI® Projects use.

ALUMI® Strategy

Product Pricing Strategy

This paragraph describes the pricing strategy envisioned for ALUMI®.

There are 3 main Product versions and a MarketPlace for ALUMI® Projects:

  • Community Edition & Marketplace
  • Startup Edition
  • Enterprise Edition
  • ALUMI® Projects

Community Edition is provided totally free and the costs for running and maintaining it are covered by the revenue generated by the MarketPlace for developers. Providing a free product and a MarketPlace for freelancers  drives adoption and it’s part of the Marketing Strategy.

Startup Edition and Enterprise edition generate revenue and all the cloud consumption utilized for them is rebilled to the end customers.

The Pricing Strategy combines the principles of Freemium Pricing Strategy, Bundle Pricing Strategy and Competition-Based Pricing Strategy.

  • Freemium Pricing Strategy – Community Edition & Marketplace with Social Coding
  • Bundle Pricing Strategy – Startup Edition and Enterprise Edition
  • Competition-Based Pricing Strategy – based on the defined competition.

ALUMI® Projects enable customers to outsource the build of custom software through utilizing freelancers and the use of the AI & Machine Learning engines. It is the most advanced and most expensive product sold with a price per hour pricing model. The Competition-Based Pricing strategy is used to ensure that the use of ALUMI® Projects generates cost savings for customers without any compromise towards quality.

In the long term the competition is defined as RPA (Robot Process Automation) providers, replacing the need of RPAs by enabling organizations to build their own software tools with minimum software development investment.

Our goal is to democratize code and empower any entrepreneurial person working as a freelancer or employee, to be able to build the tools he needs to automate his job and the job of others with minimal or no coding skills.

Marketing Strategy

The Marketing Strategy is built around the ALUMI® Community edition, provided totally free to both developers and customers.

It is enhanced by the Social Coding features as well as  Coding camps, Coding contests and Coding Olympics events.

Demos and YouTube videos complete the Marketing Strategy, keeping its cost at a minimum in the first 2,3 years.

The cost savings obtained through the ALUMI® Projects utilizations ensure long term Platform Adoption.

Product High-Level Roadmap

A very High-Level plan highlights how the product can be developed in a 3 years time frame.

Year 1

  1. Automate UML generation v1.0 [1 development team]
    1. DaC – diagrams as code framework v1.0
    2. POC – on a couple of code examples
  1. Documentation generation [2 development teams]
    1. DaC – diagrams as code framework v1.1 – DevTeam1
    2. Diagrams to text v1.0 – DevTeam2
    3. Text to diagrams v1.0 DevTeam2
    4. POC – D2T & T2D
  1. Code building blocks – getting ready for the marketplace product [2 development teams]
    1. DaC – v1.2 DevTean1
    2. Code Blocks – both text&diagrams v1.0 DevTeam2
    3. Searchable Blocks 1.0 DevTeam2
    4. POC – Code blocks
  1. Alpha Product [2 development teams]
    1. Dac – V1.3 DevTean1
    2. D2T – V1.1DevTeam2
    3. T2D – V1.1DevTeam2
    4. CB – v1.1DevTeam2
    5. POC – Marketplace
  1. Beta Product [2 development teams]
    1. Dac – V1.4 DevTean1
    2. D2T – V1.2 DevTean2
    3. T2D – V1.2 DevTean2
    4. CB – v1.2 DevTean2
    5. Alpha – Marketplace DevTean1
  2. MVP – Minimum Viable Product [2 development teams]
    1. Dac – V2.0 DevTean1
    2. D2T – V1.3DevTean2
    3. T2D – V1.3DevTean2
    4. CB – v1.3DevTean2
    5. Beta – Marketplace DevTean1

Year 2

  1. Infrastructure – AWS [2 development teams + DevOps team]
    1. Move to AWS – preferable scalable infrastructure based on nb of users
    2. Build DevOps pipeline
    3. Launch MVP for 10 users
  1. MVP V2 [2 development teams + DevOps team + Sales & Marketing]
    1. Dac – V2.2 DevTean1
    2. D2T – V1.4DevTean2
    3. T2D – V1.4DevTean2
    4. CB – v1.4DevTean1
    5. Beta – Marketplace
  2. MVP V3 [2 development teams + DevOps team + Sales & Marketing]
    1. Dac – V2.3DevTean1
    2. D2T – V1.5DevTean2
    3. T2D – V1.5DevTean2
    4. CB – v1.5DevTean2
    5. Marketplace – V2.0 – MVP DevTean1
    6. Users requested features v1.0 DevTean1
  3. MVP V4 [4 development teams + DevOps team + Sales & Marketing]
    1. Dac – V2.4DevTean1
    2. D2T – V1.5DevTean2
    3. T2D – V1.5DevTean2
    4. CB – v1.5 DevTean2
    5. Marketplace – V2.1 + Social Coding V1.0DevTean1
    6. Integrations 1.0DevTean2
    7. Users requested features v1.1 DevTean1
  4. ALUMI® 2.0 [2 development teams + DevOps team + Sales & Marketing + HR]
    1. Dac – V2.5DevTean1
    2. D2T – V1.6DevTean2
    3. T2D – V1.6DevTean2
    4. CB – v1.6DevTean2
    5. Marketplace – V2.2 + Social Coding V1.1DevTean1
    6. Integrations 1.1DevTean2
    7. Users requested features v1.3DevTean1
  1. ALUMI® 2.1 [2 development teams + DevOps team + Sales & Marketing + HR]
    1. Dac – V2.6DevTean1
    2. D2T – V1.7DevTean2
    3. T2D – V1.7DevTean2
    4. CB – v1.7DevTean2
    5. Marketplace – V2.3 + Social Coding V1.2DevTean1
    6. Integrations 1.2 – AlfaDevTean2
    7. Users requested features v1.4DevTean1
  2. ALUMI® 2.2 [2 development teams + DevOps team + Sales & Marketing + HR]
    1. Dac – V2.7
    2. D2T – V18DevTean1
    3. T2D – V1.8DevTean2
    4. CB – v18DevTean2
    5. Marketplace – V2.4 + Social Coding V1.3DevTean1
    6. Integrations 1.3 – BetaDevTean2
    7. Managed instance 1.0 DevTean2
    8. Users requested features v1.5DevTean1
  1. ALUMI® 2.3 [2 development teams + DevOps team + Sales & Marketing + HR]
    1. Dac – V2.7DevTean1
    2. D2T – V18DevTean2
    3. T2D – V1.8DevTean2
    4. CB – v18DevTean2
    5. Marketplace – V2.4 + Social Coding POCDevTean1
    6. Integrations 1.3 – BetaDevTean2
    7. Managed instance POC DevTean1
    8. Users requested features v1.6DevTean1
  2. ALUMI® 2.4 Monetize [2 development teams + DevOps team + Operations + Sales & Marketing + HR]
    1. Dac – V2.8DevTean1
    2. D2T – V1.9DevTean2
    3. T2D – V1.9DevTean2
    4. CB – v1.9DevTean2
    5. Marketplace – V2.5 + Social Coding MVPDevTean1
    6. Integrations 1.3 – Beta DevTean2
    7. Managed instance POC DevTean1
    8. Users requested features v1.7DevTean1
  3. ALUMI® 2.5 Monetize [2 development teams + DevOps team + Operations + Sales & Marketing + HR]
    1. Dac – V2.9DevTean1
    2. D2T – V1.10DevTean2
    3. T2D – V110DevTean2
    4. CB – v1.10DevTean2
    5. Marketplace – V2.7 + Social Coding 2.1DevTean1
    6. Integrations 1.3 -MVP DevTean2
    7. Managed instance MVPDevTean1
    8. Users requested features v1.8DevTean1

Year 3

  1. ALUMI® 3.0 [3 development teams + DevOps team + Operations + Sales & Marketing + HR]
    1. Dac – V3.0DevTean1
    2. D2T – V2.0DevTean2
    3. T2D – V2.0DevTean2
    4. CB – v2.0DevTean2
    5. Marketplace – V3.0 + Social Coding 3.0DevTean1
    6. Integrations 2.0DevTean2
    7. Managed instance 2.0DevTeam3
    8. Users requested features v2.0DevTeam3
    9. AI&Machine learningDevTean1

1 Team – 3 members – up to 8 members

MIN – 3

MAX 24 developers, 3 DevOps, 5 Operations, 2 Sales & Marketing, 1 HR, +CEO, CTO, CFO. = 38 people

Human Capital Estimate

Development: Min 24 developers – average salary 80k

  • DaC – 3 Developers
  • T2D – 2 Developers
  • D2T – 2 Developers
  • CB – 2 Developers
  • Marketplace & Social Coding – 3 developers
  • Managed Service – 3 Developers
  • Integrations – 2 Developers
  • AI & Machine Learning – 2 Developers

DevOps: Min 3 – average 80k

  • 3 DevOps engineers

Operations & Support: Min 5 – average 40k

  • 3 Operations
  • 2 Support

Sales & Marketing: Min 2 – average 90k

  • 2

HR: Min 1 – average 60k

  • 1

CEO, CTO, CFO – average 120k

International team ballpoint figure cost estimation

DivisionNb PeopleYearly Average Total Yearly
Development (RO)2040k €800k €
DevOps (RO)340k €120k €
Operations & Support (RO)520k €100k €
Sales & Marketing (DE)290k €180k €
HR (RO)130K €30k €
CEO, CTO, CFO3120k €360k €
1590k €

Cost allocation

The goal is to keep the R&D costs at a level of at least 50% of the total costs during the first 3 years in order to ensure the growth of the product.

Innovation Analysis

Screening with R-W-W, I try to assess the fesability of this proposal in the following section:

Is it real?

Is the market real?

As per 2020 ThoughtWorks Technology Radar Diagrams as Code is one of the top 2020 new trends that are currently under trial.

“We’re seeing more and more tools that enable you to create software architecture and other diagrams as code. There are benefits to using these tools over the heavier alternatives, including easy version control and the ability to generate the DSLs from many sources. Tools in this space that we like include Diagrams, Structurizr DSL, AsciiDoctor Diagram and stables such as WebSequenceDiagrams, PlantUML and the venerable Graphviz. It’s also fairly simple to generate your own SVG these days, so don’t rule out quickly writing your own tool either. One of our authors wrote a small Ruby script to quickly create SVGs, for example”

This proves the market is real and ALUMI® places itself to extend it and develop it further.

Is the product real?

All of the above represents an exercise. Being faced with the DaC concept and how to monetize it, the above represents an innovation exercise on how to translate the concept into a product that can bring consistent revenues.

Can we win?

Can the product be competitive?

ALUMI® places itself on the top of the DaC trend, and aims to provide an alternative to RPA solutions. If it succeeds, it can reshape how software development is being done, tested and purchased today.

Can our company be competitive?

The company can be competitive only with a very consistent initial investment. First 2 years of product development have to be backed up by VC funds.

After the first year, once the MVP is rolled out, the company can start earning money. Still, the benefits of its product will start to be relevant with the beginning of year 3. 

ALUMI® tries to introduce innovative products that will disrupt the existing market or they will create a market of their own. This increases the total potential earnings but it also creates a bigger risk, because the users and the customers need to be educated on the new frameworks.

Is it worth doing?

Will the product be profitable at an acceptable risk?

Assuming all the developed code could be reutilized on other projects, we can assume the risk would be medium for VCs with enough capital. The risk of the founders is to be assessed by themselves.

Without secured funding the risk is too high.

If founding is secured, some if not all of the above can become real.

Does launching the product make strategic sense?

The product aims to create its own market both for retail and enterprise consumers. If successful it has the potential to become an Unicorn and reshape how software development is being done and provisioned in a 5 to 10 years time frame.

Support

Pricing Strategies

https://blog.hubspot.com/sales/pricing-strategy

Existing initiatives

https://structurizr.com/

Structurizr is a collection of tooling to create software architecture diagrams and documentation based upon the C4 model.

https://c4model.com/#FAQ

The C4 model for visualising software architecture

Context, Containers, Components, and Code

https://www.g2.com/categories/no-code-development-platforms

Best No-Code Development Platforms Software

Diagrams as code

https://dev.to/simonbrown/diagrams-as-code-20eo

2020 ThoughtWorks Technology Radar

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.