Wednesday, March 7, 2007

Customers don't want cutting-edge stuff

I read Oren Eini's post, stating his view on the current software market:

"I talked with a company that rejected just about everything I had to offer. The reasoning was that what we offered wasn't something that the average (or slightly less than that) programmer would know, and they were afraid of their stuff would not be able to maintain that. In the end, it got to the point where we did the math. Using smarter tools and working with higher level of abstraction would allow to deliver a higher quality system within a shorter period of time.
I could make them see the numbers, I couldn't get it through. "It is not the way we work".

Well, you work stupid."

Stupid or careful?
Since I don't have the details I can only guess, but supposing Oren offered to use tools such as MonoRail, Castle and NHibernate (I'm just throwing buzzwords around) and the people from that company preferred custom code, does that make them stupid?

Oren stated that "Considering that they were bringing new programmers to the company every couple of months at most, the cost of training would be negligible".
I'm not so sure about that. Oren may be able to learn new technologies quickly when he needs them, but no every developer is the same, so training may become a huge drain on the project.

Mathias Holmgren started by writing something I agree with: "This is the reality of the market. I see it all the time. The customer will get what they are willing to pay for, and that does not include anything they think is too hard to maintain for years using their own people".

However, later he continued: "some people just can't break habits or understand that there is a better way. We've had I've had two customers decide against using C#. The reason? They felt VB.NET was an "easier" language - or they did not want to bring in a "new" language (both VB6 shops)."

If you have a team of developers with expertise in VB6, do you consider forcing them to move to C# "a better way"?
Should they lose all the accumulated knowledge (and pre-written, in-house components) just so you can decrease your development time by 20%?

My personal experience is that companies switch to newer technologies not because it's easier to produce better code with them, but because it's easier to find more "average developers" with experience using those technologies.


Jon Limjap said...

Hah, I particularly like your point about C# vs. VB.NET. I'm in a project right now written precisely using that reasoning.

But even with VB.NET we've used generics, attributes, and interfaces a hefty lot. I don't think any VB6 experience would really matter -- for this reason whatever "gain" they will have from VB6 familiarity would be reduced to... what? 0.01%?

Adi said...

They may have a lot of components and framework code already written in VB6 that will need to be re-written if they switch to VB.NET.