With 25 years of software development experience and more than 10 years managing software teams, I have picked up a few ideas that seem worth sharing. My hope is that maybe some of this information will make its way to Google and the other search engines where it can be found and be useful. I have worked for some world class companies and some real duds. In each case I learned a few lessons, some good and some bad.
I have a lot of experience building and maintaining software teams and perhaps that is where I will find most of my topics. Despite the ever increasing productivity gains made possible by new technology and methods, none will produce greater productivity than building a great software development team. The team is it. Good team, good software. Bad team, bad software. Sounds simple enough, but it took me years to discover ways to build great teams. I would like to share what I have learned.
Every once in a while, I come across a problem, to which no clear answer could be easily found on the internet. In these cases I will be inspired to share what I learned with the hopes others will find my efforts useful to their development projects.
OK Who am I and why am I qualified to make these opinions? Good question.
I have been developing software for 30 years now. 25 years have been in professional development. I started my career training on “Big Iron” IBM mainframes and then right after completing a world class training program at a very respected company, I took a left turn and started working on PCs. PCs led me to a love of developing distributed systems. There is still something magic about reaching out across the net to fetch data from someplace elese.
I am currently employed with a company, a leader in their industry, that provides websites to a specialty market place. Our facilities host around 30,000 web sites. Each of these sites is generated by our framework based on Microsoft .NET technologies. We handle a staggeringly large amount of volume and huge data sets. We have a legacy system built on .Net 1.1 and a more modern code base built on .NET 2.0. And we have a legacy custom built CRM system also based on .NET 1.1. And... some really old Classic .ASP. We have it all!
I came into the company about a year ago after the former Development Manager had left in frustration and had actually been gone for some time. Most of the code was developed before I arrived, but I have overseen the development of our newest applications, bug fixes and re-writes. I am “hands on” and have worked with the code first hand.
My company's code bases were written by several past teams, no longer present. These teams, to be fair, left us with a terrible legacy of code. The net result of this is that the present team has inherited a real mess! The present team has also re-written much of this legacy code using more modern techniques and with an eye to much higher quality.
Living and breathing the problems brought on by this legacy and watching over the effort required to replace it I can contrast it against the new modern code base. It is a real opportunity to see how much extra work bad code and techniques creates. It is my hope that I can relay some of my real life experiences in a way that is constructive and informative. It would be easy to descend into a "Bitch fest" mentality complaining about my job, but I don’t think that would be any more interesting than millions of other personal blogs. I am aiming higher. :)
I welcome comments to my thoughts and opinions. I don’t hold that my writings are perfect nor always correct. They are thoughts and opinions that I hold. Take them for what they are worth and if you want to contribute, please post feedback or write to me.
Lets get going....
Don
Visit My Sponsor
Crawlers, click here so I know you visited me.