SlideShare a Scribd company logo
1 of 17
Continuous Platformization
JSChannel BLR 2014
Amod Malviya
CP
• Is not about JS techniques
• Is about design & engineering patterns
– Surprisingly less talked about
– Most common reason for system failures/rewrites
– Particularly important in the age of dynamic
languages
• Elements of DDD, Agile & SoA
• Helps address short term vs long term
• WIP – help make it better
Systems
System Elements
Infra
Stories
Domain Semantics
Entities
Entities
• The “nouns” of your systems
• Have an “identity” and a “lifecycle”
• The code “understands” them
• Little code
– But most pervasive across the code
• Usually not an issue in system design
Stories
• The “use cases”
• The “workflows” that your users go through
• Control paths triggered through biz events
• Highest volume of code
• The most frequently changed code
Domain Semantics
• Capabilities that enable many stories
• Behavior, Policy et al.
• Augmented information about entities
• Externalize control
– Provide a higher abstraction to work with
• Retain Semantics
Misconceptions
• Middleware == Domain Semantics
• Abstraction == Domain Semantics
• Externalizing control == Domain Semantics
System Elements
Infra
Stories
Domain Semantics
Entities
Solution
Platforms vs Solutions
• Solutions
– Start with stories
– Bypass semantics
– Connect stories directly with entities
– Rigid, difficult to maintain beasts
• Platforms
– Start with domain constructs
– Have guaranteed semantics
– More robust (e.g. can have ACLs)
– Externalize control
– Stories are easier to read
– Enable interesting patterns on stories
How to build Platforms
• Think a lot about base constructs (entities &
semantics)
• Identify & create semantics to the extent
possible
• Servicify the platform
– Forces separation of platform & stories
– Forces contracts between semantics & stories
• Build stories on top of this platform
– Instead of building it within the platform
A risk…
• Deeper thinking can sometimes lead to
– Slower speed of execution (Bad)
– Complete stall (Worse)
– Over engineering ! (Worst)
• Similarity with short term vs long term?
– Short term optimizes for time to market
– Long term optimizes for maintainability,
extensibility & scalability
System Elements
Infra
Stories
Domain Semantics
Entities
Make it continuous
• Use an iterative model
– Move step by step with sprints
– Every sprint leads to a few steps closer to ideal
• Optimize for contracts – lock those in early!
– Changes go through a much more rigorous review
• Prioritize for time to delivery
– Within the contract, hack away to glory
• Cap out the “deep thinking” time penalty:
15% per sprint works for me
“Continuous” - For legacy systems
• Two options:
– Seaming
– Alternatively (not recommended):
• Build platform in parallel to existing system
Parting Thoughts
• Build Platforms, not Solutions!
• Cautionary Note
– There’s no one framework to rule them all
– More a guiding principle than a bible
• CP is an evolving concept
– Help make it better
• Recommended reads
– Eric Evans: Domain Driven Design
– Michael Feathers: Working Effectively With Legacy
Code
Questions?
@amodm
amod@flipkart.com

More Related Content

Similar to Continuous Platformization

The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
jaxconf
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling Software
Abdelmonaim Remani
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Amazon Web Services
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
HostedbyConfluent
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007
 

Similar to Continuous Platformization (20)

Architecting systems for continuous delivery
Architecting systems for continuous deliveryArchitecting systems for continuous delivery
Architecting systems for continuous delivery
 
Guide to Destroying Codebases The Demise of Clever Code
Guide to Destroying Codebases   The Demise of Clever CodeGuide to Destroying Codebases   The Demise of Clever Code
Guide to Destroying Codebases The Demise of Clever Code
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling Software
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development Patterns
 
Zebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data pathZebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data path
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Configuration Management is Old and Boring
Configuration Management is Old and BoringConfiguration Management is Old and Boring
Configuration Management is Old and Boring
 
What ya gonna do?
What ya gonna do?What ya gonna do?
What ya gonna do?
 
Using AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics ServiceUsing AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics Service
 
I pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekendI pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekend
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecture
 
Blasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlaneBlasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlane
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
 

Recently uploaded

Introduction to Robotics in Mechanical Engineering.pptx
Introduction to Robotics in Mechanical Engineering.pptxIntroduction to Robotics in Mechanical Engineering.pptx
Introduction to Robotics in Mechanical Engineering.pptx
hublikarsn
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 

Recently uploaded (20)

Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Introduction to Robotics in Mechanical Engineering.pptx
Introduction to Robotics in Mechanical Engineering.pptxIntroduction to Robotics in Mechanical Engineering.pptx
Introduction to Robotics in Mechanical Engineering.pptx
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Post office management system project ..pdf
Post office management system project ..pdfPost office management system project ..pdf
Post office management system project ..pdf
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptx
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptx
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
 
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 

Continuous Platformization

  • 2. CP • Is not about JS techniques • Is about design & engineering patterns – Surprisingly less talked about – Most common reason for system failures/rewrites – Particularly important in the age of dynamic languages • Elements of DDD, Agile & SoA • Helps address short term vs long term • WIP – help make it better
  • 5. Entities • The “nouns” of your systems • Have an “identity” and a “lifecycle” • The code “understands” them • Little code – But most pervasive across the code • Usually not an issue in system design
  • 6. Stories • The “use cases” • The “workflows” that your users go through • Control paths triggered through biz events • Highest volume of code • The most frequently changed code
  • 7. Domain Semantics • Capabilities that enable many stories • Behavior, Policy et al. • Augmented information about entities • Externalize control – Provide a higher abstraction to work with • Retain Semantics
  • 8. Misconceptions • Middleware == Domain Semantics • Abstraction == Domain Semantics • Externalizing control == Domain Semantics
  • 10. Platforms vs Solutions • Solutions – Start with stories – Bypass semantics – Connect stories directly with entities – Rigid, difficult to maintain beasts • Platforms – Start with domain constructs – Have guaranteed semantics – More robust (e.g. can have ACLs) – Externalize control – Stories are easier to read – Enable interesting patterns on stories
  • 11. How to build Platforms • Think a lot about base constructs (entities & semantics) • Identify & create semantics to the extent possible • Servicify the platform – Forces separation of platform & stories – Forces contracts between semantics & stories • Build stories on top of this platform – Instead of building it within the platform
  • 12. A risk… • Deeper thinking can sometimes lead to – Slower speed of execution (Bad) – Complete stall (Worse) – Over engineering ! (Worst) • Similarity with short term vs long term? – Short term optimizes for time to market – Long term optimizes for maintainability, extensibility & scalability
  • 14. Make it continuous • Use an iterative model – Move step by step with sprints – Every sprint leads to a few steps closer to ideal • Optimize for contracts – lock those in early! – Changes go through a much more rigorous review • Prioritize for time to delivery – Within the contract, hack away to glory • Cap out the “deep thinking” time penalty: 15% per sprint works for me
  • 15. “Continuous” - For legacy systems • Two options: – Seaming – Alternatively (not recommended): • Build platform in parallel to existing system
  • 16. Parting Thoughts • Build Platforms, not Solutions! • Cautionary Note – There’s no one framework to rule them all – More a guiding principle than a bible • CP is an evolving concept – Help make it better • Recommended reads – Eric Evans: Domain Driven Design – Michael Feathers: Working Effectively With Legacy Code

Editor's Notes

  1. Thanks for having me over Nervous about presenting to smart people - am I doing justice to their time? Have not been successful in talking about this in 1 hr in the past
  2. Have been characterizing systems for a long time now. This is a presentation of that study
  3. Need to understand “systems” before platforms
  4. Not an issue in system design – too many frameworks out there to make life easy. OOD is a very well understood domain now (at least entities)
  5. Capability: Interview scheduling Behaviour/Policy: Don’t overblock Augmented: Which companies? Externalize control: e.g. pricing systems – for autonomous pricing, my system needs to be able to “learn” pricing intent
  6. ACL: Anti Corruption Layer Interesting patterns on stories – self mutating stories, stories in database, reflective stories
  7. Servificy – this is where the SOA piece comes into picture
  8. This is where the agile piece comes into picture
  9. Seaming: Michael Feathers Parallel platform: will always slip. Higher risk with longer projects, newer requirements
  10. - Help make it better: 1) Give me data points about when systems succeed/fail, 2) Participate in the thought process