<bigwig> service: jaoo
For over ten years now I've helped corporations use object technology to build
business information systems. During this time I've built business object models using
several design techniques and programming languages. Along the way I've written several
books and appeared at quite a few software development conferences.
For nearly all of this time I've worked as an independent consultant. In March 2000 I
returned to a regular paycheck by joining ThoughtWorks, a company that does consulting
and development of business systems. I've consulted with them for a while and have found
them to be a great company. They are giving me a lot of leeway to do the things I like to
do - the writing, conferences appearances etc. Although I'll spend a lot of time on their
projects, I still have freedom to do other consulting work as well, so do get in touch if
you have a particularly interesting project that you might like to involve me in.
A few years ago I wrote a book on Analysis Patterns. Analysis patterns are those
repetitive ideas that I have come across in the business (domain) modeling that I have done during
my career. As such they bring together the important areas of patterns and business object
development. I also wrote (with Kendall Scott) a second book: UML Distilled . It's a
concise overview (under half an inch!) of the notation, semantics, and an iterative
development process. It won a Software Development Productivity award in 1998 and is
now available in a second edition. Last year I wrote Refactoring: how to alter the
design of existing software in a controlled and rapid manner. My most recent book is
Planning Extreme Programming which I wrote with Kent Beck.
I've been a regular speaker at object technology conferences including OOPSLA,
Software Development, and ECOOP, where I have given tutorials on analysis and
design methods, the UML, Refactoring, lightweight processes, and Analysis Patterns.
I'm a content advisor for Software Development West and on the program committee for
XP 2001. This year I'll be starting the design column for IEEE Software.
Information System Architecture Patterns
Information Systems now have become the lifeblood of organizations
around the world: providing access to corporate data and automating
business processes. Over the decades the technology has changed:
mainframes and green screens gave way to wimp client servers and
which are giving way to Internet enabled web front ends and XML
messaging. Over these years we've learned a few things about the way in
kinds of systems should be constructed. We know that it's wise to use a
layered architecture, but also that the choice of layers depends upon
things in the nature of the system. We've learned how to tie
object-oriented domain models to databases, but again there are choices
and trade offs.
In this tutorial I'll describe a series of patterns to help us make
sense of the architectural options we have and the rationale behind
these options. We'll look at basic principles and patterns in
distributed IS design, layering patterns, object-relational mapping,
session state, and web server organization. The patterns are focused on
the kinds of systems that are currently under construction.
Tutorial, Planning Adaptive Projects
Half day, Thursday 13 September
Most software projects I've come across are very poorly planned. They
often have a very impressive chart on the wall describing a plan; but
so out of sync with reality that it is more dangerous than useful. The
painful truth is that many projects these days are faced with changing
requirements, where even half way through a release cycle you still
aren't sure what needs to go in the product. In such situations many
principles of project planning are undermined, and if this isn't
recognized a planning falls apart.
Despite the uncertainties, adaptive projects must be planned and can be
controlled. In this tutorial we'll look at simple yet effective
technique that can be used to do that. The core of the ideas are based
on the planning approach of XP (Extreme Programming) as described in
Planning Extreme Programming. However we'll take the techniques and
ideas to cover a broader range of adaptive processes to allow the
planning approaches to fit in with processes such as Crystal and RUP.
The talk will cover the purpose of planning and the basic principles of
XP style planning: four variables, project velocity, yesterday's
weather, and division into release and iteration plans. With release
planning we'll look at how requirements are chunked up into features
(stories), the relationship between features and use cases, how features
are estimated, how features are allocated to iterations. In iteration
planning we'll look at the break down of features into tasks, allocation
of tasks to people, sizing of tasks, and how an iteration is tracked.
We'll look at scaling
the planning process while sticking to the underlying values, based on
experiences running larger projects and global multi-site development.
Information System Architecture Patterns (Best Practise, Software Design & Architecture)
Martin Fowler, ThoughtWorks
Wednesday [10:30 - 12:00]
Slides from this presentation