Upload
opencredo
View
210
Download
2
Embed Size (px)
Citation preview
MICRO SERVICES AND MACRO ECONOMICS - A SHORT HISTORY
HOW DID WE GET HERE?
WHAT CAME BEFORE ..TO BUILD
THE HISTORY OF STRUCTURE
▸ “the quality of being organised"
WHAT CAME BEFORE ..TO BUILD
THE HISTORY OF STRUCTURE
▸ “the quality of being organised"
▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)
WHAT CAME BEFORE ..TO BUILD
THE HISTORY OF STRUCTURE
▸ “the quality of being organised"
▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)
▸ We distinguish the activity of writing large programs from that of writing small ones. By large programs we mean systems consisting of many small programs (“modules”) written by different people, possibly in different languages.
WHAT CAME BEFORE ..TO BUILD
THE HISTORY OF STRUCTURE
▸ “the quality of being organised"
▸ Programming-in-the-large versus programming-in-the-small (Hans Kron and Frank DeRemer 1975)
▸ We distinguish the activity of writing large programs from that of writing small ones. By large programs we mean systems consisting of many small programs (“modules”) written by different people, possibly in different languages.
▸ Module Interconnection language
2016MODULES!1976MICRO SERVICES!
WHAT HAVE WE LEARNT IN 40 YEARS?
COMPUTER ENGINEERING VS COMPUTER SCIENCE
▸ Definitions
▸ Computer science is the study of the principles and use of computers.
COMPUTER ENGINEERING VS COMPUTER SCIENCE
▸ Definitions
▸ Computer science is the study of the principles and use of computers.
▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.
COMPUTER ENGINEERING VS COMPUTER SCIENCE
▸ Definitions
▸ Computer science is the study of the principles and use of computers.
▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.
▸ Module Interaction Language
COMPUTER ENGINEERING VS COMPUTER SCIENCE
▸ Definitions
▸ Computer science is the study of the principles and use of computers.
▸ Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.
▸ Module Interaction Language
▸ Representational State Transfer application programming interface, RESTful API
THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE
▸ Copes rule
▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”
Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences
THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE
▸ Copes rule
▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”
▸ “For reasons that we don’t completely understand, the classes with large body size appear to be the ones that over time have become differentially more diverse.”
Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences
THE NATURAL WAY OF THINGS - REWINDING THE TAPE OF SOFTWARE
▸ Copes rule
▸ “….over the past 542 million years, the mean size of marine animals has increased 150-fold.”
▸ “For reasons that we don’t completely understand, the classes with large body size appear to be the ones that over time have become differentially more diverse.”
▸ “It’s really a story of the survival and diversification of big things relative to small things”
Jonathan Payne, a paleobiologist at Stanford School of Earth, Energy & Environmental Sciences
ENSURING SUCCESSFROM HUTS TO HOUSES
A LORD A FOREMAN AN ARTISAN
3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARE
▸ Person of authority
▸ Process
▸ Technical authorship through expertise and experience
Harvard Business School - ‘…Factors common to successful projects’
A LORD A FOREMAN AN ARTISAN
3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARE
▸ …. a project will not fail because of the type of tools used or the type of methodology employed
Harvard Business School - ‘…Factors common to successful projects’
A LORD A FOREMAN AN ARTISAN
3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARECitation Frequency
Clear requirements and specifications 60.5
Clear objectives and goals 55.8
Realistic schedule 53.5
Effective project management skills - PM 53.5
Support from top management 51.2
User/client involvement and feedback 46.5
Realistic budget 46.5
Skilled and sufficient staff 44.2
Frozen requirement 41.9
Critical success factors for software projects: A comparative study
WHY CANT WE MAKE SOFTWARE LIKE WE MAKE HOUSES?
…THERE WERE PROBLEMS
WE TRIED…….
EVOLUTIONARY ARCHITECTUREITS MORE THAN JUST A HOUSE
INSPIRATION FROM NATURE
▸ Cellular
▸ Iterative
▸ Specialised
▸ Bounded
▸ Obligated
DOMAIN DRIVEN
DESIGN
CONTRACT DRIVEN DESIGN
BOUNDED FUNCTIONAL CONTEXT
AND SCALEMICRO SERVICES, DESIGN
DESIGN DESIGN DESIGN.. HOW DOES MICRO SERVICES FIT IN?
▸ Service can be defined as
▸ domain bounded
▸ contract bounded
DESIGN DESIGN DESIGN.. HOW DOES MICRO SERVICES FIT IN?
▸ Service can be defined as
▸ domain bounded
▸ contract bounded
▸ This has desirable scaling properties relative to…
HOW LONG IS A PIECE OF SPRINT
ARE YOU USING DOCKER?
WHAT’S A REAL MAN DAY?
IS THAT MY SIZE? IT FITS PERFECTLY
▸ LOC output varies by 2 orders of magnitude
▸ a 1000 lines / dev-weak
▸ a 1000 lines / dev-year [Windows 95]
▸ There is a wide range of productivity between projects
▸ What influences or contributes to this?
▸ http://martinfowler.com/bliki/CannotMeasureProductivity.html
IS THAT MY SIZE? IT FITS PERFECTLY
▸ Why is productivity hard to measure
IS THAT MY SIZE? IT FITS PERFECTLY
▸ Why is productivity hard to measure
▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.
IS THAT MY SIZE? IT FITS PERFECTLY
▸ Why is productivity hard to measure
▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.
▸ People agree functionality points are quite good but they don’t relate the value of what was delivered to the business with a view to future work, i.e. was their duplication, can we re-use?
IS THAT MY SIZE? IT FITS PERFECTLY
▸ Why is productivity hard to measure
▸ There is no definition that captures holistically the value in a way that is both relevant to the client and to the business.
▸ People agree functionality points are quite good but they don’t relate the value of what was delivered to the business with a view to future work, i.e. was their duplication, can we re-use?
▸ Lets focus on process and maybe we get productivity?
INSPIRATION FROM NATURE
▸ Cellular
▸ Iterative
▸ Specialised
▸ Bounded
▸ Obligated
DOMAIN DRIVEN
DESIGN
CONTRACT DRIVEN DESIGN
BOUNDED FUNCTIONAL CONTEXT
WHO KNOWS WHAT
▸ I know what i know, but not what he knows
▸ Heterogeneous structures require specialisation
▸ Different components evolve at different speeds
▸ How do we on board and off board specialist knowledge?
▸ Do i have to know what he knows to do what i know?
INSPIRATION FROM NATURE
▸ Cellular
▸ Iterative
▸ Specialised
▸ Bounded
▸ Obligated
DOMAIN DRIVEN
DESIGN
CONTRACT DRIVEN DESIGN
BOUNDED FUNCTIONAL CONTEXT
A MACRO IMPACTMICRO SERVICES
WHATS AFFECTED
▸ Business interaction modalities
▸ daily routines - scrum, standup
▸ time and length of interactions
▸ Processes and benchmarks
▸ New processes to deliver functioning software at a high rate of mutation - Dev/Ops
▸ New automated methods for ensuring adherence to function - Acc. Tests
▸ Integration - CI/CD
▸ New metrics - performance testing* ——- SLA
A MORE NATURAL WAY TO THINK ORGANISE AND DELIVER
MICRO SERVICES
WHAT IS AFFECTED
▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery
▸ Repeatable processes and thus a repeatable product
WHAT IS AFFECTED
▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery
▸ Repeatable processes and thus a repeatable product
▸ Well defined areas of responsibility, knowledge and accountability
WHAT IS AFFECTED
▸ ..running a micro services project results in various outcomes which implicitly help project management and thus the path to delivery
▸ Repeatable processes and thus a repeatable product
▸ Well defined areas of responsibility, knowledge and accountability
▸ A clear set of interaction modalities between all parties including the software and people alike!
WHATS NOT AFFECTED
▸ … so If my project is a micro services project, it WILL succeed?
▸ methodology and tooling not highly correlated with success.
A LORD A FOREMAN AN ARTISAN
3 PROPERTIES THAT SUCCESSFUL PROJECTS OFTEN SHARECitation Frequency
Clear requirements and specifications 60.5
Clear objectives and goals 55.8
Realistic schedule 53.5
Effective project management skills - PM 53.5
Support from top management 51.2
User/client involvement and feedback 46.5
Realistic budget 46.5
Skilled and sufficient staff 44.2
Frozen requirement 41.9
Critical success factors for software projects: A comparative study
WHATS NOT AFFECTED
▸ … so If my project is a micro services project, it WILL succeed?
▸ methodology and tooling not highly correlated with success.
▸ ……they are however strongly correlated with cost*
WHATS NOT AFFECTED
▸ … so If my project is a micro services project, it WILL succeed?
▸ methodology and tooling not highly correlated with success.
▸ ……they are however strongly correlated with cost*
▸ …but my operational overheads are higher now and i have duplication of effort, how do i end up saving on cost?
WHATS IS AFFECTED - THE MACRO OF MICRO
▸ Where are my costs reduced
▸ Reduction in cost to requirements change
▸ changes are often bounded, reducing complexity
▸ cross cutting changes are more easily decomposed
▸ Late changes cost less - a major contributor to cost and one of the top 10 reasons related to project success.
WHATS IS AFFECTED
▸ Where are my costs reduced
▸ Organisationally now we can deal with a high rate of mutation
▸ Able to change direction with lesser cost impact relative to more traditional monolithic structures.
▸ Synergises at scale with Agile, containerisation and established developer working and hiring patterns.
WHATS IS AFFECTED - THE MACRO OF MICRO
WHATS IS AFFECTED
▸ Where are my costs reduced
▸ Working software is one of the best ways to measure progress.
WHATS IS AFFECTED - THE MACRO OF MICRO
School of Computer Science and software Engineering - The University of Western Australia 2012
WHATS IS AFFECTED
▸ Where are my costs reduced
▸ Working software is one of the best ways to measure progress
▸ Working software vs effort is 1 measure of productivity
WHATS IS AFFECTED - THE MACRO OF MICRO
School of Computer Science and software Engineering - The University of Western Australia 2012
WHATS IS AFFECTED
▸ Where are my costs reduced
▸ Working software is one of the best ways to measure progress
▸ Working software vs effort is 1 measure of productivity
▸ Micro Services results in working code deployed sooner than more traditionally linear approaches to product development.
WHATS IS AFFECTED - THE MACRO OF MICRO
School of Computer Science and software Engineering - The University of Western Australia 2012
A MACRO IMPACT ON YOUR BUSINESS ECONOMICS
MICRO SERVICES