5 December 2007 in General, Mindscape | Comments enabled
Perhaps a funny thing for a geek to say but hear me out. We, geeks, surround ourselves with many other geeks and we all get our jollies discussing the latest and greatest technology. We have to build this website in Ruby on Rails! This application must be written in .NET 3.5! We must use SQL Server 2008 RC9! We need to change back end to use framework XYZ!
If geeks were to be believed, often you would think they completely couldn’t function without the latest alpha bits of technology xyz.
The thing that geeks often ignore is what is best for the end user. If you’re building a website, for example, and you elect to build it in fancy technology xyz but it delays your delivery by 3 months is that a benefit to the end user? If you elect to build it in technology xyz but, because you had no idea how it really worked beforehand, needed to stop and start all over again in the middle, is that a benefit to the end customer?
Customers just want the work done so that it works, is delivered on time and helps solve the problems it was designed to solve. That is about where their interest ends usually. Your mission to to ensure you meet those goals effectively and in a manner that won’t turn into a maintenance nightmare when it needs to be supported later.
But I am a geek!
I want to stop short of saying that technology platform NEVER matters because, to geeks, it does. And keeping geeks happy, in fact any employee, is important to moving forward efficiently. No geek wants to still be coding in VB 3 (and those that still want to code in Access… well… that’s a seperate blog post!). We do get job satisfaction from playing with cool stuff. If you were a pilot you’d probably love to fly some kick ass new fighter jet rather than than what you currently fly.
There are also additional benefits to developers from new technology – some things do become easier, some things do require less code and perform faster. However the decision to use the latest and greatest needs to be considered carefully – I know many software houses that use the latest stuff only because it is the latest stuff and this about the worst reason to move up.
WTF JD?
Some of you might be asking this question – how can I be saying this when we at Mindscape were pumping out solutions based on LINQ to SQL 9 months before it even RTMs? We all speak about upcoming changes in the new releases of SQL 2008, Windows Server 2008. Heck, Jeremy has even been training folks on how to use Windows Server 2008 a year before it comes out. So what’s the story?
I believe strongly that it is beneficial to play with these technologies before you put them into production. We are geeks, we do grab alpha bits, we do explore but that is so that we can make judgment calls about when it’s appropriate to use in products. What is LightSpeed written in and targeting? .NET 2.0. That’s it. We know a lot of our customers can’t move up to .NET 3.5 right away and, while we could have targeted 3.5, we knew it was better for our customers and therefore better for us to use .NET 2.0.
If code is performing its function correctly and is performing well then you do not have a major reason to upgrade. For example – TradeMe used to be all ASP code and it took them a while to jump on the .NET bandwagon. I’m not sure the specific reasons that dictated it was time to move up but my guess is that it’s a combination of reasons:
- It was getting harder to find developers wanting to code in ASP
- ASP code can be a wee bit harder to maintain due to it only providing an inline code experience
- .NET code could be run faster than the older ASP code (that’s a guess on my behalf)
As I say, these are just a guess from my part. I’m pretty sure it wasn’t from a lot of people posting in the forums saying “ASP sucks – you should use .NET. I’m not going to use TradeMe anymore unless you move up”. Customers don’t care unless the technology starts surfacing in terms of performance slow downs etc which is often more of a design issue that being explicitly because of the technology choice.
What are your thoughts? Have you fallen victim to upgrading for the sake of it? Am I completely off the mark or have I missed something out?
John-Daniel
7 comments. Add your own comment.
Steve Mouat says 5 December 2007 @ 13:33
You are totally on the mark.
I was just reading a blog from Joel Spolsky (http://www.joelonsoftware.com/items/2007/12/03.html)
who was, in part, comparing the Suits version of quality to the Geeks version of quality.
The Suits are there to make money. This effectively means solving to the clients problems (from a software perspective of course). Geeks mainly want to right the funkiest piece of code with the funkiest tools.
Often we see situations where geeks make their taks harder because they are reluctant to use a simple approach to problem resolution. Time and again they will choose cool technology or complex algorithms to resolve issues that with a slightly wider view of the world could be solved in a much simpler way.
Those geeks who can spot the difference and temper their enthusiam for new stuff with practicality are truly those who aspire to be complete software engineers (I hesitate to use that word).
The right tool for the right job is the best path. No need for a hammer when you’ve got an ice cream in your hand.
Vitaly Gorn says 5 December 2007 @ 16:49
Willingness to upgrade comes not only from geeks, but from business too. Software vendors persuade their clients to upgrade to new technologies. They use several tactics for that. One of them is to to withdraw support and bug fixes for older versions. And you, as an owner of a business and client of some software vendor, will not wont to be left abandoned and will upgrade to their new technology.
traskjd says 5 December 2007 @ 19:28
Vitaly,
That is true and you articulate my last point (on potential reasons TradeMe upgraded) – developers may not be as available for a technology and, eventually, innovation should provide enough benefits to be a valid reason to upgrade.
Software tends to be evolutionary (despite what the producers say) and therefore the risk/reward ratio is not good enough to necessarily need to move with every version change. At least not immediately.
Thanks for the comment.
– JD
traskjd says 5 December 2007 @ 19:29
Steve,
Thanks for the comment – you make some good points. I think at times it’s a bit too harsh to make the distinction of suit/geek as some do fall in between (I hope I would!).
Cheers,
– JD
BlackWasp says 5 December 2007 @ 21:12
I think I perhaps fall into the suited geek category. I moved from ASP / VB6 to ASP.NET / C# because of the business benefits it brought as well as technical ones. The business benefits being that coding was faster and that I can mix my C skills using C# with other peoples VB skills using VB.NET.
I moved to .NET 2.0 because the framework had matured and the productivity increases were worth it. Currently though, we have not moved on from .NET 2.0 for software development because the business benefits are not so readily seen, even though the improvements in the framwork in terms of WF, etc definitely bring out the geek in me. Perhaps when we see more business applications that require integration using these technologies then that will be the time to leap. Until then, skilling up in the latest technology is a worthwhile exercise as long as it is not a detriment to the business.
Some.Net(Guy) says 7 December 2007 @ 10:06
right on target. i love to stay on the bleeding edge of technologies coming out, but at the same time, while i would like to revamp my website in the newest technologies, if it ain’t broke….
good article, and very true. sometimes you don’t have to upgrade ever, but if your technology is about to become obsolete and/or you’re losing business because you’re behind, it’s time to upgrade.
(although, you don’t have this problem if you’re always eating the alphabits )
Chakkaradeep says 9 December 2007 @ 15:30
JD, you do put out my feelings
Technology doesn’t stop growing and putting ourselves into one version or some release of framework is not good. I believe the strength lies in how one designs the application. I strongly believe in Software Engineering and if we have done our homework well, sure upgrade path will not be tough.
New features come every month or year, but we have to analyze whether pulling them into our application is really advantageous or not. And I think thats why we should play with beta products to see what its offering and finally when we feel it is fine, we can see how we can upgrade our application.
Coming to the Customer’s perspective – Yes, a customer doesn’t even care what you use to develop, he just needs to see his product up and running. But the developers want to have the best technology out there which could simplify their process. I am sure now people who have worked with LINQ and Data binding would have seen how easy it can make their tasks, but how many applications out there are ready to meet them? I can say, at least 60% of the companies in India are still working with .NET 1.1 and Visual Studio 2003!!! I can say if those people aren’t able to upgrade, then there is a critical flaw in their design. Its just my prediction though
But my question is – How easy would be for a geek to change the entire platform from one to another? I will take your example – Ruby on Rails (or) .NET ??? Both are entirely different platform. If you ask me, I would say a Geek should be strong in one platform, but he has to know most of the platform and how they work. When it comes to development, he has to stick with the platform which he is comfortable with, else, I think its difficult.
Just my thoughts…
Leave a Comment