Top Banner
Evolutionary Design Patterns for Software Development Growing Abstract Syntax Trees from Business Context Graphs Stefan Ianta Cofounder Servi.ca & Ianta Labs @v_ianta Self-assembling wires Stanford Complexity Group www.youtube.com/watch?v=PeHWqr9dz3c
24

Evolutionary Design Patterns for Software Development

Jan 26, 2017

Download

Software

Stefan Ianta
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Evolutionary Design Patterns for Software Development

Evolutionary Design Patterns

for Software DevelopmentGrowing Abstract Syntax Trees

from

Business Context Graphs

Stefan Ianta

Cofounder Servi.ca & Ianta Labs

@v_ianta

Self-assembling wires

Stanford Complexity Group

www.youtube.com/watch?v=PeHWqr9dz3c

Page 2: Evolutionary Design Patterns for Software Development

Summary

Service Compilers

Growing software from Business Models

Solving a Simple Workflow Problem

Q & A

servi.ca

Page 3: Evolutionary Design Patterns for Software Development

EngineSearch

Page 4: Evolutionary Design Patterns for Software Development

MarketSmart

Page 5: Evolutionary Design Patterns for Software Development

Service Compilers

Business Models

Contexts

Change

Service

Microservices

Solutions

Innovations

Business Transformation

Google Model

Smart Market of Services

Software generation

Smart Markets of Service

servi.ca

Page 6: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Initial Business Context – Data & Code

ClientsRulesRivals

Code

MetaData

Plans

Data Team

Sales

Bank

Skills

CONTEXT

Page 7: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Final Business Context – Data & Code

ClientsRules

Rivals

Codes

Meta-Data

Plan

DataTeam

Sales

Money

Skills

CONTEXT

Page 8: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Change = Triple (Initial Context, Services, Final Context)

Change

Service = Triple (Initial Context Pattern, Microservices, Final Context Pattern)

Microservice = Triple (Input Query, Function, Output Query)

Page 9: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Project = Sum (Services)

Service 1

Service 2

Service n

Page 10: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Solution = Sequence (Services)

Service nService 1

Page 11: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

Innovation = Agile Search (Solution) + Novelty Test

Service n

Service 1

Page 12: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs12

Microservice = Coding Service

Integer dimX = 3;

Antlr4 View Neo4j View

Page 13: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs13

Iterator Microservicefor (int i = 0; i < dimX; i++) {

p[i] = db.createNode(pixel);}

Antlr4 View Neo4j View

Page 14: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs

CRUD Solution Expansion

Page 15: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs15

Solution=

Path

Target Context

Metadata

Data

Software

Initial Context

Metadata

Data

Software

Software Development as a Solution Search Process

Initial Context / Code Target Context / CodeChanges

Transformation

Page 16: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs16

Search Engine Business Model

AdWordsAdvertisersPay Per ClickAdSense

Web MastersPay Per Click

Internet Pages SearchQuestion WordsOne question/search

Search Engines Do NOT Build Solutions

Internet Pages are Contributed by Millions of People

Page 17: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs17

Expanding Search Engine Model into an Solution Search Engine

AdWordsAdvertisersPay Per Click

AdSenseWeb MastersPay Per Click

Internet Pages SearchInternet UsersOne question/search

MicroservicesProgrammers

Pay Per Use

Cypher AnnotationsBusiness AnalystsPay Per Use

Budgeted ProjectsProduct ManagersPay Per Use

Page 18: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs18

Page 19: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs19

Workflow Solutions: Solving The 3 Recipients Problem

Page 21: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs21servi.ca

Page 22: Evolutionary Design Patterns for Software Development

Graph Reactor / Ianta Labs22

Implementation Steps

• Translate existing APIs into Microservices / Coders + DevOps• Annotate microservices with Cypher queries / BAs• Define projects including test queries / Product Managers• Build a Service compiler or join a Service Smart Market – Servi.ca

Page 23: Evolutionary Design Patterns for Software Development

Civilization advances by extending

the number of important

operations which we can perform

without thinking of them.

Alfred North Whitehead

Interested to join building a smart market of services?

Subscribe at Servi.ca!

Page 24: Evolutionary Design Patterns for Software Development

Q & AStefan Ianta

@v_ianta

servi.ca

https://ca.linkedin.com/in/stefanianta