Insight

Insight from Agora Consultants

Developing for Three Versions of a Product

Every few years the rules change, if you can adapt quickly then you will survive. This blog will focus on my own experience changing from product to product and how developers can cope with the constant change.

The Ground Rules

If you have just graduated from College or maybe you have just switched careers and you are excited to start developing in the real world. You have become an expert in current technologies and programming languages. You arrive at a new job full of hope and you realize: you know nothing.

The industry is constantly changing. Chances are you will not find a job that matches your skillset exactly, but even if you do after a year nothing will be the same.

The ground rules are: there are no rules.

My Own Experience

I started at Agora creating a web service which would communicate with Microsoft CRM. A few weeks later I was put on to Project Server 2010 development, and a few weeks after that onto SharePoint 2010 development. I learned nothing about these products in school, in fact I didn’t even know they existed. I knew C#, SQL, and the underlying technologies (at least at a pedestrian rate). I was thrown into the deep end and left to swim. I used to say to myself “just a few more months and I will have a handle on all of this”.

I still say that to myself.

What I came to the realization that this feeling is normal for developers, especially developers in a consulting role. Getting over the learning curve for the Project Server PSI and the SharePoint Object Model took a lot of time, effort and asking questions. Just when I felt myself getting comfortable with PS2010 and SP2010, PS2013 came out. I said to myself “things used to be so great, why did everything have to change?”

I still say that to myself.

Change is constant. The technologies and languages are always moving. Just when I was comfortable with 2013, Project Online came out and that was leaps and bounds different than anything I had ever done before. PSI, SP Object Model and all notions of server side code vanished into the cloud. Yet again, more than ever, I found myself at the bottom of a large mountain which I know nothing about.

The thing is, it’s not only the new versions that create challenges. We have clients on Project Server 2010 that still request features I have never coded before. Being a developer is not monotonous, regardless of what technology you use. Invention is innovation, innovation is problem solving, and we are required to solve problems in creative ways every day.

Below are three things that I come back to when starting a new problem/version. I hope they help you as a developer and give you confidence.

You have the Logic

You cannot transfer 2010 code to 2013, you cannot use php to write ASP.NET MVC applications, and you cannot develop for iOS with Java. But why should this scare you? Why let this be a boundary? Just because you do not have experience in the exact language doesn’t mean it’s hard.

At the core of every programming solution there is sound logic. A good solution thinks of all possible scenarios and provides functionality for each. In all of the solutions I have created the hardest parts were finding ways to account for business scenarios, not the limits of technology or my understanding of it. If you can brainstorm a good system (even on paper) most of the battle is already won. You will find a way in any language.

Is It Possible?

Always ask yourself this. After you have come up with a good idea (previous section) you will no doubt run into limits or constraints in the technology you are using. It can be easy to throw your hands up and say “I guess this isn’t possible”, but at times like that try harder! Is it really impossible? There is really no way to do it?? Which leads to the clincher.

Will someone else do it?

If you are so sure something is impossible, think about all of the developers in the world, are you saying that none of them could do it?

When I started, “it’s impossible” was something I said every week. After time though, I realized that given enough effort (and money) anything can be developed. What really made me angry is when I saw another company do something that I swore was impossible to do. Now, when I am faced with a tough challenge, I always ask myself this question.

Conclusion

Developers can read books and keep up to date on technologies, but honestly that has never helped me significantly. The only thing you need to survive amidst the constant change is the right attitude. The desire to do something before “someone else” has done it and the confidence to know that it is possible. With these characteristics, your skills will go beyond the workplace into your daily life. “I think I can”.


 
Comments are closed