SlideShare uma empresa Scribd logo
1 de 94
Baixar para ler offline
ThoughtWorks

emergent design &
evolutionary architecture
NEAL FORD

software architect / meme wrangler

ThoughtWorks
nford@thoughtworks.com
3003 Summit Boulevard, Atlanta, GA 30319

www.nealford.com
www.thoughtworks.com
memeagora.blogspot.com
http://www.ibm.com/developerworks/java/library/j-eaed1/
index.html?S_TACT=105AGX02&S_CMP=EDU
http://tr.im/nf_ead_all
agenda
things to
think
about
emergent

evolutionary
Emergent, a.
[L. emergens, p. pr. of emergere.]
1. Rising or emerging out of a fluid
or anything that covers or
conceals; issuing; coming to light.
[1913 Webster]
2. Suddenly appearing; arising
unexpectedly; calling for
prompt action; urgent.
[1913 Webster]
spectrum of design
Some
DUF

"Pure"
Waterfall

BDUF

Agile

Emergent
Design

Cowboy
Hacking
big design up front
Project Planning/Estimation
Requirements

Use Cases/
Functional Specs

Design
Specifications

Code

Test

Fix/Integrate

$
who thought this was a
good idea?
emergent (hardware)
design
finding abstractions &
patterns
Patterns
nomenclature
technical patterns

idiomatic patterns
domain patterns
patterns describe effective abstractions
abstracting too early
speculation without facts
YAGNI!
business processes change radically and often
how do you know when?
experience helps
spike solutions
emergent
design
“what is software design?
design?”
what
Jack C. Reeves
fall 1992, c++ journal
http://www.developerdotstar.com/mag/articles/reeves_design.html
software “engineering”
“The final goal of any engineering activity is some
type of documentation”
“When the design effort is complete, the design
documentation is turned over to the manufacturing
team.”
what is the design document in software?
the source code
source == design
“...software is cheap to build. It does not qualify as
inexpensive; it is so cheap it is almost free”.
manufacturing == build process
“...software design is easy to create, at least in the
mechanical sense.”
“Given that software designs are relatively easy to
turn out, and essentially free to build, an
unsurprising revelation is that software designs tend
to be incredibly large and complex.”
source == design
“...it is cheaper and simpler to just build the design
and test it than to do anything else.”
“The overwhelming problem with software
development is that everything is part of the design
process.”
“Coding is design, testing and debugging are part of
design, and what we typically call software design is
still part of design.”
“Software may be cheap to build, but it is incredibly
expensive to design.”
emergent design
discovering design in code
finding effective abstractions
technical abstractions
problem domain abstractions
ability to harvest idiomatic patterns
things that
obscure
emergent
design
complexity
essential complexity
inherent complexity

accidental complexity
all the externally imposed ways that
software becomes complex

essential vs. accidental
complexity
examples
Hunting
Season

Essential

EJB / Biztalk

Field Level
Security

Accidental
technical
! ! ! debt
technical debt
technical debt

Code Base
Complexity

principal

effort for
new features

interest
negotiating repayment
you must convince someone technical debt
exists...

...start a conversation about repayment

demonstration trumps discussion
convincing metrics
rampant genericness
genericness
“if we build lots of layers for extension, we can
easily build more onto it later”
increases software entropy
accidental complexity
generic obfuscation
emergent design
enablers
test driven design
more about design than testing
design will emerge from tests
atomic understanding of intent
better abstractions
less accidental complexity
perfect number case
study:
∑ of the factors == number
(not including the number)
∑ of the factors - # == #
tdd vs test-after
test after doesn’t expose design flaws as early

tdd forces you to think about every little thing

encourages refactoring what’s not right
refactoring
collective code ownership
fix broken windows whenever you see them
regularly fix obsolescent abstractions
prudently refactor aggressively
code should get stronger with age
refactoring to harvest
idiomatic
patterns
cyclomatic complexity
measures complexity of a function
V(G)= e - n + 2
V(G) = cyclomatic complexity of G
e= # edges
n= # of nodes
start

if (c1)

1

1

2

f1()

2

f2()

3

4
3

4

if (c2)

5

6

nodes

f3()

5

f4()

6

edges
7
8
7

end
afferent coupling
∑ of how many classes use this class

incoming references
determines what is the “hard, crunchy center”
of your code base
measure with CKJM or other metrics tools
struts 2.x
UIBean evaluateParams()
evaluate.*Params ?
find . -name "*.java" | xargs grep -l "void evaluate.*Params" > pbcopy

./org/apache/struts2/components/AbstractRemoteCallUIBean.java
./org/apache/struts2/components/Anchor.java
./org/apache/struts2/components/Autocompleter.java
./org/apache/struts2/components/Checkbox.java
./org/apache/struts2/components/ComboBox.java
./org/apache/struts2/components/DateTimePicker.java
./org/apache/struts2/components/Div.java
./org/apache/struts2/components/DoubleListUIBean.java
./org/apache/struts2/components/DoubleSelect.java
./org/apache/struts2/components/File.java
./org/apache/struts2/components/Form.java
./org/apache/struts2/components/FormButton.java
./org/apache/struts2/components/Head.java
./org/apache/struts2/components/InputTransferSelect.java

./org/apache/struts2/components/Label.java
./org/apache/struts2/components/ListUIBean.java
./org/apache/struts2/components/OptionTransferSelect.java
./org/apache/struts2/components/Password.java
./org/apache/struts2/components/Reset.java
./org/apache/struts2/components/Select.java
./org/apache/struts2/components/Submit.java
./org/apache/struts2/components/TabbedPanel.java
./org/apache/struts2/components/table/WebTable.java
./org/apache/struts2/components/TextArea.java
./org/apache/struts2/components/TextField.java
./org/apache/struts2/components/Token.java
./org/apache/struts2/components/Tree.java
./org/apache/struts2/components/UIBean.java
./org/apache/struts2/components/UpDownSelect.java

!
fixing parameters
66 - 9 = 57
lines of
obscuring
duplication

22 * 3 = 66
expressiveness
if code is design, readable design matters
complex languages hurt readability
most comments don’t help
not executable
always (potentially) out of date
idiomatic “unit of
work” pattern
without closures (java)
with closures (groovy)
with closures (ruby)
abstraction styles
imperative
structured / modular
object-oriented
functional
anti-objects
collaborative diffusion
“The metaphor of objects can go too far by making
us try to create objects that are too much inspired
by the real world. “
“...an antiobject is a kind of object that appears to
essentially do the opposite of what we generally
think the object should be doing.”
architecture
Evolution, n.
[L. evolutio an unrolling: cf. F. ['e]
volution evolution
1: a process in which something
passes by degrees to a different
stage (especially a more
advanced or mature stage)
application architecture
describes the coarse-grained pieces that
compose an application
framework level
architecture

when was the last time you downloaded a
single class?
the unit of reuse in java is the library
JSR 277, the java module system...abandonware
JSR 294 (superpackage)...IN JAVA 7!
implemented by ivy & maven
enterprise architecture
concerns itself with how the enterprise as a whole
(which usually means the applications running
inside a large organization) consumes applications
enterprise architecture
== city planning
application architecture
== building plan
extant definitions
“The architecture of a software system (at a
given point in time) is its organization or
structure of significant components interacting
through interfaces, those components being
composed of successively smaller components
and interfaces.'"

post on the XP mail list

technical definition
"In most successful software projects, the expert
developers working on that project have a
shared understanding of the system design. This
shared understanding is called "architecture."
This understanding includes how the system is
divided into components and how the
components interact through interfaces.'"

Ralph Johnson, rebutting the original post

social definition
Architecture is about the
important stuff.
Whatever that is.
Martin Fowler’s definition
Stuff that's hard to
change later.
Martin Fowler, in conversation

There should be as little of
that stuff as possible.
design

architecture
architectural
considerations
politics of architecture
build or buy
business processes are
not commoditizable
“you can buy this generic business process
software...”
“...we just need to tweak it with a few
customizations”
myth
radically unique across similar businesses
software can provide strategic business
advantage
Dietzler’s Law
for framework X:
80% of what the user wants is fast & easy
the next 10% is possible but difficult
the last 10% is impossible
users want 100% of what they want
standards-based vs.
standardized
flash-back to java web development before j2ee
standards helped developers tremendously...
...but vendors hate it
the price of commodity software quickly
approaches $0
contrast j2ee & sql
ESB: standards-based
but not standardized

big enterprise package software touts
standards-based

held together with highly proprietary glue
even the open source ESBs suffer from this
not likely to change
consider the impact on your overall
architecture
postlude
design == code
other artifacts aid in creating code
all artifacts besides code are transient
irrational artifact attachment
last responsible
moment
How can I make my
decision reversible?
Do I need to make
this decision now?

What can I do to
allow me to defer the
decision?
ThoughtWorks

for information & more cool stuff,
visit thoughtworks.com
NEAL FORD

software architect / meme wrangler

ThoughtWorks
This work is licensed under the Creative Commons
Attribution-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-sa/3.0/us/

nford@thoughtworks.com
3003 Summit Boulevard, Atlanta, GA 30319

www.nealford.com
www.thoughtworks.com
memeagora.blogspot.com
ThoughtWorks

resources
Emergent Design & Evolutionary Architecture
series:
http://tinyurl.com/nf-ead
appendix a
Test-after vs. TDD Perfect Number Finder
appendix b
Martin Fowler’s Who Needs an Architect

Mais conteúdo relacionado

Mais procurados

Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
ThoughtWorks
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
 

Mais procurados (20)

PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
 
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-netReceive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Onboard Automation with EEM
Onboard Automation with EEM Onboard Automation with EEM
Onboard Automation with EEM
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwright
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
Tensorflow lite for microcontroller
Tensorflow lite for microcontrollerTensorflow lite for microcontroller
Tensorflow lite for microcontroller
 
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
たのしいPwn 公開用
たのしいPwn 公開用たのしいPwn 公開用
たのしいPwn 公開用
 

Destaque (9)

28.04.09 carpeta de prensa ctsd
28.04.09 carpeta de prensa ctsd28.04.09 carpeta de prensa ctsd
28.04.09 carpeta de prensa ctsd
 
Diapositivas de informatica
Diapositivas de informaticaDiapositivas de informatica
Diapositivas de informatica
 
Aprendizaje colaborativo con mapas conceptuales en bublu
Aprendizaje colaborativo con mapas conceptuales en bubluAprendizaje colaborativo con mapas conceptuales en bublu
Aprendizaje colaborativo con mapas conceptuales en bublu
 
Anticido estomacal
Anticido estomacalAnticido estomacal
Anticido estomacal
 
Security analysis of a single sign on mechanism for distributed computer netw...
Security analysis of a single sign on mechanism for distributed computer netw...Security analysis of a single sign on mechanism for distributed computer netw...
Security analysis of a single sign on mechanism for distributed computer netw...
 
E learning
E   learningE   learning
E learning
 
La revolución industrial vista en 2004
La revolución industrial vista en 2004La revolución industrial vista en 2004
La revolución industrial vista en 2004
 
Presentatie Kortrijk - Noord
Presentatie Kortrijk - NoordPresentatie Kortrijk - Noord
Presentatie Kortrijk - Noord
 
Licenciatura en lengua y literaturas hispãnicas
Licenciatura en lengua y literaturas hispãnicasLicenciatura en lengua y literaturas hispãnicas
Licenciatura en lengua y literaturas hispãnicas
 

Semelhante a Neal Ford Emergent Design And Evolutionary Architecture

Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
Thoughtworks
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
guestebde
 
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
Kostas Mavridis
 

Semelhante a Neal Ford Emergent Design And Evolutionary Architecture (20)

Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Final ppt
Final pptFinal ppt
Final ppt
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp Philly
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to consider
 
TechEvent 2019: Artificial Intelligence in Dev & Ops; Martin Luckow - Trivadis
TechEvent 2019: Artificial Intelligence in Dev & Ops; Martin Luckow - TrivadisTechEvent 2019: Artificial Intelligence in Dev & Ops; Martin Luckow - Trivadis
TechEvent 2019: Artificial Intelligence in Dev & Ops; Martin Luckow - Trivadis
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecture
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Development
 
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017   ember.js - escape the javascript fatigueNode.js meetup 17.05.2017   ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?
 

Mais de Thoughtworks

Mais de Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Neal Ford Emergent Design And Evolutionary Architecture