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.
Presentation: "Software Design in the Twenty-first Century"
Tuesday 10:45 - 11:30, Conference Hall
In the last decade or so we've seen a number of new ideas added to the
mix to help us effectively design our software. Patterns help us capture
the solutions and rationale for using them. Refactoring allows us to
alter the design of a system after the code is written. The UML gives us
a standard notation for drawing software designs. Agile methods, in
particular Extreme Programming, give us a highly iterative and
evolutionary approach which is particularly well suited to changing
requirements and environments. Martin Fowler has been a leader is most
of these techniques and will talk about some of these and how they
affect our software development.