Talkin’ about…
acceptance tests agile use cases antipatterns AONW apologies assumptions Christopher Alexander communication customer service data and algorithms design for test design patterns design roots documentation drawing driven meme DSLs emergent design Eric Evans fun habitable software icebreaker IEEE design column index cards JAOO living software OOPSLA open space parametric polymorphism PLoP podcast problem frames Responsibility-Driven Design SD Best Practices software development processes software history structured design TDD teamwork terminology test-driven development travel use cases wizard-of-oz prototypes workshopsPast Entries
- March 2012 (2)
- September 2011 (1)
- August 2011 (5)
- July 2011 (3)
- May 2011 (1)
- February 2011 (1)
- January 2011 (1)
- December 2010 (1)
- July 2010 (1)
- April 2010 (2)
- October 2009 (1)
- August 2009 (1)
- June 2009 (2)
- March 2009 (1)
- January 2009 (1)
- November 2008 (1)
- September 2008 (1)
- August 2008 (2)
- June 2008 (1)
- April 2008 (1)
- February 2008 (2)
- November 2007 (1)
- October 2007 (1)
- September 2007 (1)
- June 2007 (1)
- May 2007 (1)
- April 2007 (3)
- February 2007 (3)
- January 2007 (1)
- September 2006 (2)
- August 2006 (2)
- July 2006 (2)
- June 2006 (1)
- April 2006 (2)
- February 2006 (3)
- January 2006 (3)
- November 2005 (4)
- October 2005 (7)
- September 2005 (1)
- July 2005 (3)
- June 2005 (5)
- May 2005 (3)
- April 2005 (2)
- December 2004 (2)
Reactions…
- Talman Stoner on How far should you look ahead?
- Talman Stoner on Agile Architecture Myth #5: Never Look Ahead
- John Schwartz on Agile Architecture Myth #5: Never Look Ahead
- Rebecca on Agile Architecture Myth #5: Never Look Ahead
- Chris Collins on Agile Architecture Myth #5: Never Look Ahead
Category Archives: Software Design
The Value of Design Documentation
Recently I asked students to tell me what kinds of requirements they start with and what (if any) design documents do they produce. Several students said that they produced documentation just because it was part of their development process. As … Continue reading
Sustainable Design
In my most recent IEEE Column, Creating Sustainable Designs, I explore what it means to create software that can be maintained without too many growing pains. I have been intrigued by Christopher Alexander’s writings, particularly the first two volumes of … Continue reading
Three in a Row
I just got home from a 3-in-a-row conference marathon. First I went to the Patterns of Programming Language Conference, or PLoP in Nashville, where our paper Dynamic Factory, co-authored with Leon Welicki and Joe Yoder, was shepherded in a writers’ … Continue reading
Posted in Events, Software Design
Tagged design roots, driven meme, DSLs, OOPSLA, PLoP, SD Best Practices
1 Comment
Software Design and Development is Fun???!
A twitter between my daughter and a friend: @jordanwb Are you related to Rebecca Wirfs-Brock? Her name was mentioned in my Software Design and Development class. This class isn’t any fun. @thismax that’s my mom! I’ll let her know you … Continue reading
Design Hygiene
Without ongoing attention to design hygiene, design integrity is bound to deteriorate over time. My latest IEEE design column, Enabling Change, briefly examines what it takes to keep a code base ready to absorb new design changes. At the very … Continue reading
Posted in Software Design
Tagged emergent design, IEEE design column, refactoring tools, refactorings
2 Comments
Lessons Learned from Architecture Reviews
Last year I talked about lessons learned from architecture reviews at JAOO 2007 and Markus Voelter from Software Engineering radio interviewed me. You can listen to our conversation. I’ve experienced both sides of reviewing. Early in my engineering career I … Continue reading
Posted in Events, Software Architecture, Software Design
Tagged architecture reviews, JAOO, podcast
2 Comments
A Conversation with Dan and Allen
I highly recommend this podcast interview with Dan Ingalls and Allen Wirfs-Brock (yep, we’re related) on Microsoft’s Channel 9. Dan was one of the pioneers who coded the first implementation of Smalltalk at Xerox Parc…and gave us overlapping graphics windows, … Continue reading
Posted in Software Design
Tagged Allen Wirfs-Brock, bitblt, Dan Ingalls, podcast, Smalltalk, software history
1 Comment
Challenges When Communicating Designs
Tuesday evening I gave a talk about the challenges software developers face when communicating design ideas. I started by making the connection between telling others about designs and storytelling. Effective designers need to tell good stories. And the tone and … Continue reading
Deconstructing Frankenstein
One of my favorite things I do in any architecture or design course I teach is to discuss AntiPatterns—design ideas hatched with good intentions but that prove problematic over time. We’ve all seen examples of software done badly. The purpose … Continue reading
Posted in Software Design, Teaching techniques
Tagged antipatterns, boat anchor, frankenstein, lava flow, rocky road
5 Comments
Giving Design Advice
In an ideal work environment software designers freely ask for and offer constructive criticism and openly discuss issues. They don’t take criticism as personal affronts, and they and their managers make intelligent, informed decisions. OK, so how do design discussions … Continue reading
Posted in Psychology, Software Design
Tagged cognitive biases, design advice, IEEE design column
4 Comments