I’m a software developer currently working as an industry analyst at Burton Group. I spend my time delving into the technologies, trends, and market dynamics surrounding the software development process, application platforms, and software architecture. For more than 15 years, I’ve worked in the trenches on real software projects. I believe software development is an amazing profession. I take a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development. I also enjoy experimenting with new technology, whether it be the the cool new framework or tethering my smartphone to my Mac via Bluetooth to get an internet connection.
In 2002, I wrote the book Java Design: Objects, UML, and Process, published by Addison-Wesley. I have also written numerous whitepapers and articles, including The Agile Developer column for The Agile Journal. I am also the founder of Extensible Java, a growing resource of component design pattern heuristics for Java that can easily be applied to most other platforms, including .Net. I created the open source utilities JarAnalyzer and AssAnalyzer which help teams manage the dependencies between Java .jar files and .Net assemblies, respectively. I have trained thousands of software professionals, teaching courses on UML, Java J2EE technology, object-oriented development, component based development, software architecture, and software process. I am trapped in a software developer’s body, and to this day I continue to enjoy hacking in a variety of languages, including Java, .Net, Ruby, and PHP. I believe:
- source code is the most important artifact a software team produces
- software teams must guard this source code as closely as possible with a robust test suite, automated build, continuous refactoring, and a source control system
- a simple approach utilizing simple tools solves most problems
- agile does scale, is always good, and is a critical success factor for large teams
- design and architecture must, above all else, emphasize managing dependencies
Feel free to contact me via e-mail (remove the _filter).
Past Speaking Engagements
November 9 – 13, 2009 – Agile Development Practices. Session: Agile Architecture – Patterns & Technology.
October 25 – 29, 2009 – OOPSLA. Session: Agile Architecture and Modularity Patterns (Half-day tutorial)
October 19 – 22, 2009 – SpringOne2GX. Session: Agile Architecture
July 27 – 31, 2009 – Burton Group Catalyst Conference. Sessions: SD Metrics & Improving the Software Development Process Workshop (half-day workshop).
December, 2009 – SpringOne Americas. Session: The OSGi Marketplace.
July, 2009 – Burton Group Catalyst Conference. Sessions: Delivering Applications to the Mobile Device, Improving the Software Development Process (half-day workshop), and Fit Clients.
March 23, 2007 – SD West 2007. Sessions: From Code to Architecture, Benefits of the Build.
September 12, 2006 – SD Best Practices.
July 19, 2006 – Dr. Dobb’s Architecture and Design World.
May 24, 2006 – ALM Expo. Session: Dependency Management Techniques.
May 21, 2006 – Central Ohio Software Symposium. Sessions: From Code to Architecture, Dependency Management, GOF Patterns Applied, and Benefits of the Build.
March 19, 2006 – Twin Cities Software Symposium. Sessions: From Code to Architecture, Dependency Management, GOF Patterns Applied, and Benefits of the Build.
February 24 – 26, 2006 – Greater Wisconsin Software Symposium. Sessions: From Code To Architecture and Dependency Management Techniques.
Nov. 21, 2005. Fox Valley JUG. Session: From Code to Architecture.
Sept. 26 – 29, 2005. Software Development Best Practices. Sessions: GOF Patterns Applied and From Code to Architecture.
Oct. 1 – 3, 2004. Great Lakes Software Symposium. Sessions: GOF Patterns in Java, Great POJO Components – Physical Design, and Great POJO Classes – Logical Design.
Sept. 20 – 23, 2004. Software Development Best Practices. Sessions: GOF Patterns in Java and Continuous Integration.
August 27 – 29, 2004. Central Ohio Java Software Symposium. Sessions: GOF Patterns in Java, Great POJO Components – Physical Design, and Great POJO Classes – Logical Design
April 16 – 18, 2004. Wisconsin Java Software Symposium. Sessions: GOF Patterns in Java, Failure of Objects, and Continuous Integration
March 14 – 19, 2004. SD West 2004. Sessions: GOF Patterns in Java and Continuous Integration.
April, 2003. Wisconsin Java Software Symposium. Session: Failure of Objects.