As a web developer with over 10 years of experience the most perplexing things I come across is how certain companies, development teams, managers or partners undermine certain technologies. You come across this all the time, good technologies or products not being used because someone in the team is prejudice. The justifications for ignoring, sometimes the technically superior solution can be amusing. Here are a few of my pet annoyances that I’ve encountered most often.
- Flash is a dirty word for some – I often get told “We can’t use Flash in the solution “. Its usually not up for discussion especially on larger projects or intranet related projects. I am not a flash developer, so I don’t push it for personal reasons. but Flash when used correctly can add value to the end user. I am not talking about changing the app to being “a Flash Site”. Using it for certain tasks like multiple file uploading or media viewing is not technically a bad idea, and its cross browser compatible, unlike an Active-X control.The 2 main reasons Managers seem to come up with for not using Flash are: (1) It violates some security policy at the client (2) The client should not have to be bothered to install the flash component to use the application. Both these arguments really hold little weight at all. If you’ve coded that Flash object correctly it will present no more of a security risk than any other component in the system. These managers also seem to think that Flash is somehow banned by IT policies in large corporates. It simply is not! The reality is that most business users are allowed to have flash installed, and most corporates will intentionally block access to certain sites like YouTube or MetaCafe, rather than blocking the underlining video hosting containers to these sites. Yet still time and time again, I see inferior components being used in the solution (media player for example) simply because of unjustified paranoia.
- We don’t want a Java Applet or Active-X. While I agree Active-X is getting old and stale, and I don’t have any love for Java Applets. Both these technologies have their purpose and place. The point is not to rule them out entirely because of management phobia or some techies opinion based on half hearted arguments or hear say.
- Silverlight. Again I am not a huge personal fan of Silverlight because I believe what ever Silverlight can do Flash can do better. But I’ve heard really stupid reasoning for not using it. The main reason is “The client won’t install this component” or “Its an additional download”. Sure its an additional download, but its less than 5MB. I think its about time we started giving the user some credit, we do after all have quick ADSL connections in most offices.
- Limiting the version of the .Net Framework. This is a common mispractice I’ve come across a lot of the time. Managers insisting that they simply cannot roll out a 3.5 Framework based solution because the client is already used to V2 Framework solutions. Common arguments include the following: “We’re not sure on the impact of hosting v2 and 3.5 simultaneously”, “We simply cannot include 3.5 features because the application is written in V2” mostly these arguments hold no weight, they’re based on speculation, and no due diligence has been done.
- Open Source. I’ve met a certain stubborness along the way too regarding Open Source components. Some companies are totally against using Open Source components in the overall solution. The reason is typically because of the licensing attached to these components, and the maintenance issues that could arise from using these components. Hence great value adds like Log4Net and nHibernate are not even considered by many, and instead expensive custom solutions are implemented.
- Non Microsoft Alternatives: Some companies are so focused on using strickly MS Tecnologies that they seem to ignore any other solutions that are out there. The message is pretty clear really, there are lots of tools and components that will do the job better, perhaps its about time to really survey the market before diving in and doing it by the Microsoft book.
- “Expensive 3rd party components” : I’ve been in situations where I do not really want to develop a certain component due to time constraints, so I have a look at buying certain black box components, mostly to do with the UI of an application. Now its true a lot of these components are not cheap at first glance, but if you really do the maths and consider the time it takes to build that component then things look a little more viable. Mostly I find that eventually the budget for these purchases do not get approved, and instead the functionality gets scrapped from the solution. Cutting corners at the end user experience.
- Skype or Messengers: Its a good idea that companies have strong security policies in place to avoid corporate wide infections, or any intrusion. What I am against is the inconsistency often displayed by the Networking Department. Don’t ban instant messaging but allow cracked software including keygens. This type of inconsistency is commonplace. Skype and Messenger can actually boost your productivity. I remember before Google Days a lot of technology experts would pen together as MSN groups to help each other. It often was quicker to ask another developer than to research the topic.
- HTML 4 Transitional : Purists will argue that everything should be done using XHTML Strict. I agree its a good idea to have well structured code, but this can be achieved using either HTML 4 or XHTML. Its even possible to code both at the same time. If you’re more comfortable coding your application using HTML 4, then that is what you should be using. Remember at the end of the day that the end user doesn’t care at all what the site is written in, as long as it works, and well.
I suggest we all take another look at our motivations for not using certain techs and get down to the business at hand, making usable, functional and good quality business applications.