Why Your Development is Crazy

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


2.  N-Tier


3.  Sheer magnitude


4.  Application code generation


5.  SOA (Service Oriented Architecture)


6.  Semantics and canonical messages


7.  Workflow


8.  Rules engines


9.  Aspect oriented programming


10.Impact of libraries


11.Property dialogs


12.Designers (Property & UI)


13.Design Patterns


14.Unit testing


15.Refactoring


16.Interfaces (contracts)


17.Multiple assemblies


18.InternalsVisibleTo attribute


19.Overloads


20.Perf and virtual table issues


21.Generics


22.Reflection


23.Intellisense


24.Partial classes


25.Partial methods


26.Extension methods


27.Lambda expressions


28.Anonymous types


29.Declarative – XAML


30.WPF


31.Declarative – LINQ


32.DependencyProperties


33.Dynamic languages


34.Security


35.Unstructured data


36.Generative programming


37.Social networking


38.AJAX


39.Reporting (filtering, authorization)


40.BDD/TDD/Agile


41.ASP.NET


42.Attributes during programming


43.Threading/parallel processing


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.

New Workflow Tag!

Thanks to everyone who came to my two workflow talks at DevConnections. Thanks so much for tolerating the overflow conditions. You really stoked me back up on workflow, and I’m ready to roll for my all day session in Los Angeles Dec. 1.


I’ve started a new tag here for my workflow musings.


 

Thank You for the Carrots

I live in a wonderful world. Sure sometimes people’s own unhappiness and agendas get in the way, but most of the time I am surrounded by kindness. And so are my children. Children need the great gift of building the stories of their lives – experiences that they remember and build themselves on. But as parents we are not the only ones that give these gifts to our children.


Halloween night a group of 15-20 year olds set out trick-or-treating from my house. There were a few cross-dressers, a cat with red ears, a very cute clown and a musketeer named Samuel with a frying pan. It was one of those beautiful loud vivacious groups celebrating each other. As the girl-clown said “I was just sitting home when they called wishing _I was cool enough to be invited to a Halloween party”. All arrived dressed. None were ready. The one that remembered a bag forgot a coat and as the temperature plummeted I supplied a pink raincoat to the guy in lingerie. Only on Halloween. To the rest I gave grocery bags. One tall young man in a funny green coat and at least two odd hats was not trick-or-treating, just coming along.


For my part, I did little else but feed them. I disengaged from the game of trick-or-treat this year as another excess of indulgence designed with the sole purpose of making corporations rich. But with my house full of these young people so happy to be together with the drama of teenhood set aside for the night, a little part of me wondered if I should get candy and turn on the porch light.


They were late, of course. But headed down toward the one house they couldn’t miss. The artist with the yard full of spooky things.  He came to the door and said “I’m sorry, I’ve run out of candy”. I’m sure every other kid from three miles round also wanted to climb passed the body in the noose, and inch passed vague bloody things to climb under the 12 foot tall ant (or was it a spider without a web) to ring that doorbell.


In response to the no candy announcement, the tall non-trick-or-treater with the funny hats and green coat said “That’s fine, I’ll take a toaster”.  The artist said “wait a minute”.


Thirty seconds passed and the group wondered if they had been rude. A few more seconds. Surely he didn’t have a spare toaster? Bbut he’d asked them to wait. Hmm. What to do… as he reopened the door.


Turning to the young man with the green coat and funny hats, the artist said “For you, carrots” and handed him a can of carrots.


Performance art at its finest.


A moment turned upside down.


A story retold to me. A story that will be told a hundred or a thousand time more. A story that helps my son understand what it means to be gracious. What it means to allow the people on your doorstep their moment in their world touched sweetly by yours. What it means to turn someone’s joke upside down. What it means to be kind.


Thank you for the carrots.


Thank you for all the little things you do today to bring a smile.