Your development is crazy, or at least stressed. More likely its downright insane. We are struggling to deliver applications. And we’re really smart and we work amazingly hard. Seriously – when was the last time you met more than a stray dumb programmer? We all feel dumb, but there are damn good reasons we feel that way.
I’ve written about how hard programming is, but I stumbled across more specifics when I asked a question in a specific way for a speech abstract:
What’s changed about object orientation since we thought we knew how to design objects in the days of Grady Booch’s 1991 design book and Nancy Wilkinson’s book on CRC cards?
I knew things have changed, but what blew me away was how long this list became and that every time I show it I get a few more items. I added another one this morning and there is no doubt in my mind that this list will soon exceed 50 items.
Let me clarify how I intend this list. It’s extra things we either have to explicitly think about during design and/or things that when we do not think about threaten our applications. Don’t over analyze the list right now. Just soak it in. Add in the comments if you think I missed one. Then I’ll come back in later posts to give a sentence or two about why I think each item belongs on the list since I’ve been the gatekeeper. Finally, I think there are answers emerging from this list in how we need to shift design of our applications.
First, let’s get the list (in no particular order) on the table:
1. Parallel entities
3. Sheer magnitude
4. Application code generation
5. SOA (Service Oriented Architecture)
6. Semantics and canonical messages
8. Rules engines
9. Aspect oriented programming
10.Impact of libraries
12.Designers (Property & UI)
20.Perf and virtual table issues
29.Declarative – XAML
31.Declarative – LINQ
39.Reporting (filtering, authorization)
42.Attributes during programming
44.Data transfer objects
45.Visual modeling/model-driven design
46.Design for evolving architectures, maintainability and extensibility
47.Poorly written/flakey tools (especially designers)
Thanks to the user groups in Mitchell (South Dakota), South Bend (Indiana), and Fort Collins (Colorado) for their support and contributions.