Thoughts on Source Control

July 27, 2006

My company is interviewing canidates for a junior programming position to support various legacy projects. I interviewed a canidate today and one of the questions I asked the individual was what kind of source control system that he uses at his current position. Now before I continue, this individual was intelligent and is a good canidate for what we are looking for as a prospect for employment. The answer he gave however is sadly the norm in the contracting world, his comapny does not use source control.

My company uses CVS as it’s source control mechanism. I can’t imagine a world without being able to grab my source at any hour of the day, working anywhere, branching specific versions for different functionality. That sweet feeling of checking-in and the integration build server sending me a confirmation that the source is good and I didn’t break the build. Imagining a world without this is now unimaginable. However there are companies that operate like this on a day to day basis.

Programmers by default tend to focus on languages and frameworks. They don’t tend to focus on good configuration management practices. Is this the programmers fault? Yes and No. For the junior programmer he/she has just not been introduced to good practices and processes. There are many companies in the contracting world, especially in the government sector, that the programmer may be the only technical person employed. He/She may never get exposed to CM practices unless that individual has the motivation to pursue his/her craft and read and implement current industry standards.

However, if you are a senior programmer with 5+ years in the developement arena and aren’t using Unit Tests, Source Control, and continuous integration then you may have to take a step back and do a self assesment. These just aren’t buzzwords, they are a neccessity and a tool every programmer should have in his or her toolbox.

Thoughts on Code Generation

July 27, 2006

Ruby is a fantastic language. I personally code in C# and use Ruby as my primary scripting language. I know there is a lot of hype out there regarding Ruby on Rails (ROR) and rightly so, but I’m constrained to developing my web applications in .NET which is a fantastic framework also. The reason I’m constrained is I have to adhere to specific DOD security requirements and as of right now the network I deploy on doesn’t have Ruby as a certified framework.

That doesn’t however mean that I’m rubyless. I do use Ruby to make my life easier as a developer. One of the things I’m working on is generating my .NET business layer from a very basic schema xml file using Ruby, XPath, and erb as the templating language. I have a working prototype and I’ll be posting my results soon to this blog.

I think one of the selling points of ROR is the ability of the framework to “blackbox” the data access. That’s what I’m aiming for in my code generation. You have to realize upfront though that you can never have a one stop shop so to speak. You have to allow the developer to have the flexibility to extend the generation without altering the generated files themselves. This is where the beauty of abstraction comes into play. I’ll delve more into that later in my posts.

About me

July 13, 2006

This is my first post on WordPress. I’m a software developer currently working at a government contractor, Keymind. I mainly program in .NET, SQL Server, and Ruby but I do delve into other languages.