There is nothing permanent except change.Heraclitus
Growing up with a mother who was an educator she would occasionally tell us about some new approach or technique in education. She was going back to school to get her masters for a few years and was learning a lot about teaching special needs children. The course work was challenging for her as she had been out of college for a number of years when she decided to go back to school. She would try some of these out and others she would leave behind. She had to create a way to evaluate each new thing and embrace it or discard it.
Technology professionals have to constantly evaluate new technologies too. Similar to my mother, we have to develop criteria around understanding and evaluating new technologies. I first began working in Java development around 2000. At the time, most Java web development was Servlets and JSPs. The first time I heard about the Struts Framework I remember thinking it was going to answer all of our problems. I didn’t know it at the time but I had come down with a disease.
Shiny object syndrome
This disease affects a lot of people in all walks of life. My son likes gaming quite a bit. He saves his money and buys new consoles or apps for his iPad. Then a few days after he bought it, he is thinking about something else. Of course, in the technology area, it is easy to get. We have new things coming at us all the time. We can get obsessed with learning the new “cool” language.
Where can we test out these new technologies? Don’t take it to the prime time right away. A few years ago we tried something new in the main application we had been working on and it didn’t end well. We ended up throwing a few weeks of changes away and having to work a lot of extra to get caught up. Find a low-risk side project to test something out. Make sure you set expectations too about the new technologies being used.
Throw it away?
As I spoke about before some of these tests we do to evaluate technologies will be disastrous. Occasionally you have to scrap all of the work. Hopefully, you learned something from your labor, but you have to be willing to throw it away and start over.
Over the years, I have learned it pays to ask a few questions before you start down the road of new technology. I had a manager once who would ask us quite a few questions when we wanted to use something new. He inspired a few of these questions here.
What problem does it solve?
We can sometimes be a hammer looking for a nail. For instance, if you learn about design patterns you can be more apt to make everything a Singleton or a Factory when you really don’t understand the true requirements. If you can’t answer these simple question chances are you need to go back to the drawing board. Remember you are a developer and a problem solver, that is why you are working at your organization.
Does it solve it better?
Okay so it solves a problem that the company has. Does it work better than the previous solution? I remember testing out a new solution that I and a few other developers thought would make things easier for us. To be honest it did help us, but the catch was when we went to deploy this to the testing environment the administrators saw some red flags. Turned out what helped us ended up causing more problems down the line. We didn’t look at the whole picture.
Does it help the business
Living in Iowa we recently had the Iowa Caucus here. We had politicians from all sides coming through our state trying to convice us to vote for them. I hear this complaint a lot how politicians are playing games and not answering questions. They are politicians and they are being political, Wow how about that for a deep thought! A similar thing happens with technical people, they focus too much on the technology and not the business. We can get the priorites messed up. If you work at an insurance company chances are slim your going to change it into a technology company so don’t try to get to cute. Innovative ideas have to serve the bottom line.
When I first started in the development arena I enjoyed trying new things. A few of the more seasoned professionals would raise an eyebrow when we tested out something new. As I began to test out and support these new technologies I slowly understood their resistance. If technology is not very mature then you will inevidtable hit some road bumps. Some of them can be quite major. After a few botched releases and re-work sessions I check to see the maturity of the new technology. As one person once told me, “living on the leading edge is one thing but, avoid living on the bleeding edge. You’ll sleep better then.”
What do you see when you search for your new technology? Is there a bunch of questions and answers on Stackoverflow? Is there another forum you can use to find answers to your many questions? If you don’t find a lot of information out there you could be dealing with a small community. One product I have used was mainly supported by one man. He was very helpful in the beginning but he moved onto something else. Once he left there was no one to help and answer questions. Without a vibrant community you just have one person’s pet project and that can leave you at great risk even if you have the source code.