Maintainability as a first level concern

I have no idea how I missed this post from Anders Norås. It is talking about some of the problems in using traditional software factories (code-gen) vs. using smarter frameworks. It is a long read, but it is excellent.

Maintainability is the enabler of all the other "itities" of an architecture. Experience shows that typical EJB applications often was hard to maintain even if code generation made them easy to develop. The IDE driven code generation for EJB paved way for vendor lock-in.

The software factories of today will be part of Visual Studio "Orcas", but I would not count on this to lock users into the IDE and Microsoft Patterns & Practices way. Even with million-dollar investments in high-end application servers the enterprise Java community has largely moved from EJBs to light-weight frameworks. This has proven to be a economically healthy choice because of improved productivity and flexibility.

 

Print | posted on Tuesday, April 24, 2007 1:46 PM

Feedback


Gravatar

# re: Maintainability as a first level concern 4/24/2007 8:01 PM Karthik

I see a debate similar to the EJB versus lightweight Java framework coming to the .NET world in the near future. This will likely happen after Entity Framework is released and it's usage becomes touted as a "best practice".

It is inevitable that there will be detractors that will suggest PONOs be used instead of EF.


Gravatar

# re: Maintainability as a first level concern 4/25/2007 7:24 AM orcmid

That's wonderful. I have been musing on how to explain that one thing to understand in software development is how the program can fail. For me, I find that anticipation of failure modes has a great impact on design and also how I propose to test, demonstrate, and be able to repair the software.

I remember, when I was learning to ski, that the first lesson was about how to stop, how to fall down (on purpose as a way to stop also), and then how to get up. Then we got to skiing.

Most introductions to programming seem to take the beginner out on a limb and then take away the net with nothing about how to resolve difficulties and then to anticipate difficulties (manage risk at the coding level).

So, to end my musings here, this observation comes from you and Anders at a perfect time. Thanks.

Comments have been closed on this topic.