Wednesday, May 12, 2010

From Developer to Architect?

For a few years now, I’ve been coding on .NET, SharePoint, and the like. I went to University and learnt about Object Orientation. I hardly noticed nor appreciated the many OOP concepts that I’ve unconsciously applied to my coding/solution design. Dare I say it, I think this may describe many developers with around 2-4 years of coding experience up their belts.

I recently started reading a few articles online and came to realisation of the extent to the level of OOP concepts that have actually been applied. It made more sense why some of solutions worked better than others (of which include both .NET and SharePoint solutions).

Like many others, I’ve just had the time to understand and learn how to use API’s and/or how to ‘structure’ code to get the job done in the least amount of time with the best quality (least amount of bugs), but never to understand some software architecture concepts. Take my tip, re-learn the concepts that reflect what you already know – a design pattern.

Here are the links I have referred to:

1 comment:

Fernando said...

good on you!
I went through the same path myself some years back.

Once you understand the principles, best practices and design patterns, the next step would probably be to know when they apply and when they do not. It's at this stage that I see the most over-kill designs...

In parallel with learning the practicality of the academic concepts in real life, you'll probably would like explore technology tools facilitating the implementation of these concepts. It's at this stage that developers usually start looking into NHibernate, Enterprise Library, Castle.NET and the like.

IMHO, what differentiate the professional developer is a combination of understanding the practical usage of the academic concepts and familiarity with the technological tools facilitating the implementation of those concepts.

There's also a lot to expand from a professional developer: you can go deep and specialise in a narrow problem domain, e.g. SOA, or you can go broad and explore more architectural concepts. Oh, and obviously, you can step aside and explore more business-oriented concepts.


Best of luck in your journey! :)


Cheers,
Fernando
Solution Architect