. . . is to focus on solving the business problem at the lowest cost. In other words, drive the highest return for any investment. This is manifested by my whole company.
Yesterday, I had lunch with a client, and I related that some of the best solutions don’t use the “latest and greatest” technology. Take web services, for instance. When SOAP came out, it was all the rage. Xml messages over the wire for system integration. SOA theory was built on message passing. Then cam WSE1, 2, 3, WS Security, WS this and that. Now, REST is becoming all the rage. What is REST? In my opinion, along with being plain Xml over the wire, it’s a partial reaction to the WS* standards that seemed to bloat message passing. REST keeps with the basics.
That’s just one example of the overall theme that good solutions stick with the basics. With all the new technologies, there isn’t much that is changing with software engineering at this point. Language syntax changes, but for some reason, we’re all sticking with object-oriented languages for enterprise applications. I have yet to see folks abandoning OO for these. Not yet. Regardless of language, platform, class libraries, good practices are portable.
Separation of concerns, partitioning, testing, “Don’t repeat yourself”, cohesion, loose coupling, readability. All these apply regardless of the new technologies.
By applying time-tested principles to the current technology, programs don’t look that much different. And when they don’t look that much different, the hype seems to fall off the edges.
Dear reader, I implore you to focus on fundamentals and solid OO and SOA principles when building enterprise applications. Technologies come, and technologies go, but fundamental skills will last forever.
I expand on low-cost consulting here.
@Evan,
good question
http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/04/in-software-consulting-low-cost-consulting-can-be-real.aspx
Amen
Thanks for saying it aloud.
I agree and disagree. The fundamentals will last forever (or at least years and years and years), but I think your company motto is a bit dangerous.
Lowest cost usually has a time factor involved. Building the lowest cost v1 can many times mean cutting out stuff that will be necessary for v2. For v1 apps, procedural code is usually the cheapest way to go, but we know where that leaves v2. It’s the example of taking on technical debt knowing that the loan will never get called in. Driving things on cost can come back and bite you (although it does sound really good in presentations). The v1, v2 thing was just an silly example. There are others.
Jeffrey,
You are right.
The sad reality of software dev. is tool makers like MS release things so fast, most people can’t keep pace with it. The job market runs on buzzwords. One should know all the latest stuff (yet in beta), to get a chance to work on it & one doesn’t get a chance, until they have worked on it (catch 22).
It seems everybody is in a race to be upbeat about new release that came out of ms factory.
The idea of sticking to fundamentals is correct.
I would love to see smart people in s/w development to do mentoring for people, helping them scale up & pass their skills on to other people.
I am no anti-MS or pro-MS. However, it makes me think, whether people are sure of what they are making?
I would love to see some of this technology 15 years from now.
I would love to hear what you have to advice me on this.
@DaRage
I think he already did
“Separation of concerns, partitioning, testing, “Don’t repeat yourself”, cohesion, loose coupling, readability”.
These might sound like just a few principles but if you use them the right way, they do simplify the solutions and keep maintainability very low.
Ditto. Jeffrey can you explore more on your last paragraph. what exactly are those OO and SOA fundamentels? can you provide a couple of book titles as examples? Thanks
Amen!