Sunday, April 14, 2013

Business Development is Marching Towards Mediocrity

In school and shortly after, I was a young idealist programmer.  Every piece of code I wrote was going to be ground breaking and every new algorithm I developed would revolutionize fields like signal processing, AI, and more.  But as I sure many of you have seen, the world of business/product development doesn't look anything like what we hoped it would be in all of our Comp Sci courses.  There we saw theoretical approaches, search optimization, concurrency, advanced data structures, etc.  All of these techniques have their place in the world.

Since I began my work as a SharePoint developer (dealing mainly with corporate clients), I've noticed an interesting trend.  Business software is marching towards mediocrity.  Now don't take what I'm about to say and take it to mean this is necessarily a bad thing.  Business software has a different focus than fields like Game Development, Technological Research, and Scientific Computing.  An enterprise needs a focus on non-technical requirements like up-time, migration-ready status, version/platform longevity, etc.  Though all of these elements exist for all developers, their emphasis during requirements gathering, design and implementation is extreme in the case of business class software.

I recently spoke to a colleague of mine about a company here in Atlanta, GA that is pushing the technological barrier in the enterprise space.  PinDrop Security is a software development house that offers products designed to detect and eliminate phone fraud, in particular call center phone fraud.  They are doing research and development in areas like digital voice fingerprinting, pattern recognition of speech, POTS and VOIP spoofing detection, etc.  This is exciting software.  This is what I went to school and studied languages and algorithms to develop.

I issue a call to all senior developers, development managers, and even CTOs in this world.  I ask you to take a chance and push some boundaries   We will never achieve more than what Microsoft and other platform vendors provide us without a careful eye on what could be possible.  We often see enterprise solutions restricted, restructured, or redesigned to allow for the complete use of the these products.  Don't let your license commitment to Microsoft dictate what it is that you build.  Think about your needs, what your users REALLY need to be more productive; think about what it is that your business needs form its systems.  Software is a tool and if we all use Microsoft's hammer, even when we may need something much more elegant, we've forgotten the most basic principles of this practice.  So provide support and encouragement to your teams in their innovations.  Allow them a little bit of slack to push an envelope that you are scared of because what they'll discover on the other side is nothing short of amazing and there is a very real chance that they will produce you something of true quality.

No comments:

Post a Comment