Impressions
Very polished and eloquent speakers
Java and JVM based languages
and web stuff like REST and javascript
I focused on general software engineering
so all the Java didn't really bother me
Here's an
"architecture"
No
Architects define the constraints by making the big decisions.
Ted provided several architecture elements - think about during requirements, design and refactoring
The constraints are documented and
help the teams make their decisions.
No Fluff
Just Stuff
Focus was on getting things done with
less "ceremony" in all things
Things I saw
Agile Engineering
Android
Hello World in a Android App
Still pretty cool - it is Android.
This was about where agile has evolved.
We are actually doing pretty well as a
software organisation
- Continuous Integration
- Unit Tests
- Code Reviews
- Late branching
7 Wastes
Pragmatic Architecture
- What's a good architecture
- What's an architect
- Here are some tools.
- Toyota's famous waste reduction ideas as applied to software
- Partially Done Work
- Extra Processes/Features
- Delays
- Task Switching
- and more
- 7 Wastes of Software Development
HTML 5
Cool stuff here! Applications
in the browser are going to be so
awesome!
And browsers are almost ready
(except IE grrr).
- Decision Making in Software Teams
Mobile jQuery
Wow - little bit of markup goes a long
way to make a mobile app in a browser.
Decision Making
Learned how decision processes can fail
and how to avoid or mitgate the problems.
Coming soon to a meeting near you!
If I can ever decide where to start.
Agile Engineering ++
- Automate those acceptance tests!
- Continuous Delivery
Cool ideas, but we have a ways to go
(and do we really need to?).
Client User Interface
What is an architect?
Application Logic
Business Objects
Business Rules
Understand
Goals - remember those "ities"
Contraints - money, resources, time,
abilities of the team
- New technologies
- New methodologies
Does the new stuff fit? Help? Change the game?
Reassess
Goals - are they still valid? Has the business/market changed?
Constraints - Less Time, more people, changing skills.
Progress against goals - if too slow, then plan B
Business Impact - too costly, competition catching up?
Explore
Data Store
A good architecture is judged on
its "ities"
- Integrity
- Simplicity
- Security
- Reliability
- Scalability
- Performability
- Modularity
- Maintainability
- Composability
- Longevity
Is this "good"?
A good architecture helps you
make the day-to-day, hour-to-hour
decisions - correctly!
"you fall naturally into the pit
of success"
Communication/Distribution
State Management
Processing
Presentation/Interaction
And More
see the slides on sharepoint
- Durable vs. Transient State
state held across processing steps vs
state held during processing
- Relational vs. Object vs. Hierarchical
what is the “shape” of the data?
- Context-based vs. Process-based state
where is the transient state held?
Procedural/Imperative
Classes/Objects
Declarative
Rules
- Concurrent/Parallel (SISD, SIMD, MISD, MIMD)
Divide and Conquer
Recursive Data
Pipeline/Pipes-and-Filters
Event-based Coordination
Master/Slave, Fork/Join
Shared Data
Shared Queue
Over what medium does the communication travel?
Examples: TCP, UDP, ICMP, HTTP, named pipes, filesystem,
queues, and more …
How do we interact?
Examples: request/response, solicit‐-notify, async, fire‐-and-forget,
and more …
In what format does the data travel?
Examples: XML, code, text, JSON, raw binary, serialized
objects, and more …
Graphical
Console
None
Markup (HTML, Acrobat)
Code (WinForms, Flash)
User, Administrative, Reported, …
Aggregates multiple applications into one
Based around a single style