Geeks With Blogs
Mike Nichols - SonOfNun Technology If I were the captain on a big steamboat...

I have been reading several posts from folks I respect for their advancement of practices like TDD, Agile ,DDD, and so on. Their wisdom has helped give me a great toolset to build deep, maintainable code that is production-minded throughout now. This is contrasted to writing what amounted to 'demoware' as I tried to write maintainable code using RAD tools.

Still, I think Agile-minded leaders need to bear in mind that the enemy is not Microsoft if their creed is in fact rooted in the pragmatism of their approach. One of the things about TDD development that has revolutionised my own workspace has been the constraints it keeps on me during design; that is, I don't rabbit-trail into things that are obvious, but not important. Instead of writing endless text about the evils of Microsoft, write a comparison with examples of development of a use-case comparing RAD design versus TDD. THAT would help me!

I don't like the hours I used to waste spewing out Typed Datasets and binding them to Web Forms and then thinking that I was doing Enterprise development because Microsoft documentation had tutorials online that used the word "Enterprise". I understand now that they are probably talking about Star Trek since there is nothing down-to-earth or realistic about maintaining acres of ADO.NET code, SQL Stored Procs, DataSets that aren't scalable (practically), WebForms that contain business logic (where is that business rule again?), and so on. I dislike that the architectural guidance offered by Microsoft is either nil or misleading, usually leading to a sea of duplicated code and workaround code to deal with the duplicated code. Finally, it is frustrating to me that I have virtually had to learn Java in order to learn established enterprise-scale practices such as Design Patterns (both architectural and design).

That said, I think the folks who are good teachers should teach. Otherwise, the various blog posts are like eating a pie with only the know that your eating something but its just fluffy gunk that doesn't satisfy. Gimme the chocolate layer with the crunchy oreo crust! That's the part I am really after if I am listening to what you say.

When I first started teaching music at a university, I sought to establish myself as 'respectable' among my students by being harsh and critical about the minutae of their performance. I though this was guidance since what I said was probably true. But I finally learned that merely telling them what they were doing wrong wasn't going to help them be better musicians...they needed to be discipled into doing what was BETTER. Doing that automatically led them away from bad practices and they became satisfied by what they heard themselves they wanted more.

I appreciate the caution Agile folks offer about what Microsoft touts as "design patterns" or "best practices" and so on. But if you blog and you are knowledgable and you really want to aid the community (which is why, I assume, you blog)...TEACH, DON'T RANT! Ranting is useful if there is a lesson in it, but usually it's like listening to Hillary Clinton talk about the war...I'd rather listen to a horse getting an enema.

Here's some things we need

  • Design Patterns applied in various situations throughout Domain Design
  • Layering in an application...what goes where and how do I get to it?
  • Examples of common Java practices in a visual Studio solution
  • What are some good idears for setting up a Visual Studio, where do my tests go? What do I test?
  • How do I choose a data access (OR/M) provider or shoudl I build my own?
  • If Martin Fowler, Eric Evans, etc were to write their books in a Visual Studio solution what would that look like?

These are some little snippets of things that would have helped me once upon a time...

I know Microsoft has lots of money and they have stunted the growth of talented people who want to write good code. But they aren't the enemy. Bad practices are. You aren't going to bring down goliath with critical river-rocks, but you can make his yells to your comrades a little less audible by providing meaningful guidance.

Ok...I think my own little rant it over. I feel better now.

Posted on Wednesday, August 23, 2006 4:04 AM General , OOP, Patterns, Architecture | Back to top

Comments on this post: Remember Who The Enemy Is

# re: Remember Who The Enemy Is
Requesting Gravatar...
I often think how awesome it would be to have an evening where Java and .NET developers could get together from their respetive user group base and talk about software development...not from a platform base, but just from a development base: turning business requirements into systems. I think there's alot to learn from both sides. Its unfortunate though that religious zealousness is bound to get in the way.

Left by D'Arcy from Winnipeg on Aug 23, 2006 5:07 AM

# re: Remember Who The Enemy Is
Requesting Gravatar...
D'Arcy, Getting Java and .Net developers together, just like you want, is something I've been hard at work trying to do in NJ. The problem is finding a big enough space that we can either get for free or find someone to donate the money. Think of it as a joint .Net & Java Code Camp.

I'm working on it, but right now, the money is hard to find (since I can't get the local universities to donate the space).

Left by Don Demsak on Aug 24, 2006 8:54 AM

Your comment:
 (will show your gravatar)

Copyright © Mike Nichols | Powered by: