Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Continuous Improvement - One Developers Journey

When I started my current position six months ago I was brought in to help with development of their new website application. Whether my boss knew it or not, that meant that I would be bringing a host of baggage with me. When I came I brought along of ideas and practices that were new to the development team. The usage of an IoC container (Windsor), ORM (NHibernate), a build server, unit-testing to name a few.

These tools and practices are often discussed both here on this blog and in the larger .NET blogosphere. Getting up to speed on them can surely be a daunting task. I’ve asked a lot of the guys I work with in terms of learning new tools and implementing better development practices. I wanted to take the opportunity to interview one of them and let him speak about his experience learning all of these ideas.

Chris is a developer with a few years of experience with .NET. His exposure and experience to the tools mentioned above begins six months ago, when I joined the team. He approaches development as a student and one of the things I appreciate about him is his openness to the ideas I’m bringing to the table.

I asked Chris to answer a few questions about his experiences over the last few months. The goal is to give some of you some insight into one developer’s journey to writing better software.

What has been the biggest change?

The biggest change is probably the learning curve that was involved in the new software, for example, using Subversion instead of Visual Source Safe. I had to learn new software, but once I felt comfortable in Subversion I realized that I really like it; unlike Visual Source Safe, which was a pain. I always treated it as a necessary evil.

Has it been difficult?

Some of it has been. Things like trying to figure out why NHibernate mappings are failing and why Windsor can't resolve a type. These are just things that you have to practice and familiarize yourself with to understand how they can break. It can get frustrating at times.

What's been the hardest part?

The hardest part is sticking with it and not going back to the "old ways". There have been times where I was puzzled with some unit tests and mocking and wanted to just give up; it seemed like the best option. More than once I asked myself, "Why do we have to do all this all at once?!?!" When that happens, I just step back, calm myself down and try again. There is always a solution, it just might take some time to figure out why I'm doing it wrong and fix it. Once fixed, it's great and I'm glad I didn't give up. If you're learning several new techniques and patterns at the same time, they can pile up and begin to overwhelm you. Patience is the best medicine in that case.

What's been the easiest, if anything?

I'm always amazed how much easier it is to integrate with other colleagues' code. Pulling a latest version from source safe and compiling, then pushing the code manually to the test server was a pain and caused countless headaches and stress. Not only the continuous integration, but the concepts promoting better abstraction really lend themselves to working with each other, not against each other.

Do you feel like this is the correct path?  In other words are you writing better applications?

I think this path is very conducive to writing better code. It's visible by the unit tests and code coverage. To me these are readily identifiable measurements to the quality of the code. I know code coverage can be 100% even on bad code, but confidence in my tests creates confidence in my code overall. I now have little confidence in code without unit tests.

Any advice to someone who is reading this article?

I have a personal trait to never accept anything as a good enough answer. This is sometimes a good, and sometimes a bad trait of mine. I think in this aspect, development, it's a good thing. For instance, you could be comfortable with drag-and-drop web forms controls, they work. Are they the best way to build web applications? One could argue for them, but I would argue a resounding no. There are a lot of solutions to problems out there and just because you know it as the best approach, doesn't necessarily mean it is the best. Do some research; learn some new techniques and you'll surprise yourself how many great ideas there are out there.

I want to thank Chris for sharing his experiences here on this blog.  You can check out Chris' blog at http://www.dumpsterdoggy.com.

Update (3/20/2009)

Chris' hard work and dedication to improvement got him noticed by the popular blogging site Los Techies.  In January, they extended him an offer to blog for them and he accepted.  You can find his thoughts and posts at  http://chrismissal.lostechies.com/.  Congratulations Chris, well deserved!


Posted 10-14-2008 9:09 PM by Tim Barcz
Filed under: ,

[Advertisement]

Comments

Dew Drop - October 15, 2008 | Alvin Ashcraft's Morning Dew wrote Dew Drop - October 15, 2008 | Alvin Ashcraft's Morning Dew
on 10-15-2008 8:24 AM

Pingback from  Dew Drop - October 15, 2008 | Alvin Ashcraft's Morning Dew

Arjan`s World » LINKBLOG for October 15, 2008 wrote Arjan`s World » LINKBLOG for October 15, 2008
on 10-15-2008 10:20 AM

Pingback from  Arjan`s World    » LINKBLOG for October 15, 2008

Perry wrote re: Continuous Improvement - One Developers Journey
on 10-15-2008 1:11 PM

I've been in positions where they introduced new techniques and tools and, like Chris, I was thirsty for the new knowledge.  But, there were those that weren't as enthusiastic about the changes.  I'm betting the same can be said for your workplace.  What would be interesting would be to see an interview with someone that wasn't "buying" the new stuff and see why.

Demarlo wrote re: Continuous Improvement - One Developers Journey
on 10-10-2011 12:12 AM

This information is off the hiozol!

awesome linkbuilding site wrote re: Continuous Improvement - One Developers Journey
on 10-01-2013 9:59 AM

On577I Thanks again for the article.Much thanks again. Really Cool.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)