SlideShare une entreprise Scribd logo
1  sur  94
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à ThoughtWorks emergent design & 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 ArchitectureThoughtworks
 
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
 
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 DevelopersDan Douglas
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completionRuben Goncalves
 
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...
EoinWoods_WhereDidMyArchitectureGoPreservingSoftwareArchitectureInItsImplemen...Kostas Mavridis
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
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 WorseKevlin Henney
 
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 considerLloydMoore
 
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 - TrivadisTrivadis
 
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 SystemGiovanni Asproni
 
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 Architecturemdwheele
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Richard Green
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Developmentmukhtarhudaya
 
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 fatigueTobias Braner
 
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 PublicDavid Solivan
 
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?André Goliath
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and securityAlmudena Vivanco
 

Similaire à ThoughtWorks emergent design & 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
 
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?
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and security
 

Plus de ThoughtWorks Studios

How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns ThoughtWorks Studios
 
Improving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationImproving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationThoughtWorks Studios
 
How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?ThoughtWorks Studios
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesThoughtWorks Studios
 
How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?ThoughtWorks Studios
 
How do you get accurate visibility on a multi-team project?
How do you get accurate visibility  on a  multi-team project?How do you get accurate visibility  on a  multi-team project?
How do you get accurate visibility on a multi-team project?ThoughtWorks Studios
 
What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?ThoughtWorks Studios
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesThoughtWorks Studios
 
Succeeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileSucceeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileThoughtWorks Studios
 
Mingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesMingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesThoughtWorks Studios
 

Plus de ThoughtWorks Studios (20)

Working Without Estimates
Working Without EstimatesWorking Without Estimates
Working Without Estimates
 
Minimum Viable Product
Minimum Viable ProductMinimum Viable Product
Minimum Viable Product
 
How lean can you get?
How lean can you get?How lean can you get?
How lean can you get?
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
 
Lean Times Require Lean Thinking
Lean Times Require Lean ThinkingLean Times Require Lean Thinking
Lean Times Require Lean Thinking
 
ThoughtWorks Approach 2009
ThoughtWorks Approach 2009ThoughtWorks Approach 2009
ThoughtWorks Approach 2009
 
Improving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationImproving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisation
 
Evolving for Multiple Screens
Evolving for Multiple ScreensEvolving for Multiple Screens
Evolving for Multiple Screens
 
How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about Pipelines
 
How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?
 
How do you measure value?
How do you measure value?How do you measure value?
How do you measure value?
 
How do you get accurate visibility on a multi-team project?
How do you get accurate visibility  on a  multi-team project?How do you get accurate visibility  on a  multi-team project?
How do you get accurate visibility on a multi-team project?
 
What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?
 
2012 vod qa_keynote
2012 vod qa_keynote2012 vod qa_keynote
2012 vod qa_keynote
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprises
 
Tw specifications for-testing1
Tw specifications for-testing1Tw specifications for-testing1
Tw specifications for-testing1
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That Matter
 
Succeeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileSucceeding With Globally Distributed Agile
Succeeding With Globally Distributed Agile
 
Mingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesMingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and Universities
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

ThoughtWorks emergent design & evolutionary architecture