Skip to main content

Software Configuration Management for Developers

Coming out of my post on locking down merges, Tim Wingfield provided the following intriguing inquiry (paraphrased):

First, most of our clients don't delve into what our dev practices are, what source control we use, how we use it, or any of the specifics below feature/deliverable level. Am I being sheltered from a bigger problem out there?


Secondly, how can we as developers alleviate that issue? Source control, like the language something is written in, really shouldn't matter beyond that of a maintenance issue. A competent dev team is going to make use of all tools available. Removing merging from that list is like telling us to develop in Notepad!

These are great questions. First off, if your team is developing a product or a deliverable but not source, I feel the process and tools your team is using shouldn't be of much concern to the client. We should be leveraging 100% of our best practices and the optimal tools to deliver high quality software in the most efficient method possible. You should be leveraging tools for parallel development such as branching, merging, Test Driven Development (TDD), test plans, automated Continuous Integration (CI) builds, etc.

That said, this rarely happens (clients not caring about process, tools, and/or wanting source code). So, addressing Tim's second, following question, I think senior or lead developers must be well-versed in Software Configuration Management (SCM) and the software development process. Great developers should understand concepts such as:

  • Version control
  • Branching / merging
  • Test Driven Development (TDD) with test harnesses for class libraries
  • MSTest, NUnit, TestDriven.Net, Resharper, etc.
  • Continuous Integration (CI) builds
  • Automated deployment and promotion between environments
  • Automated execution and interpretation code analysis and code metrics/coverage
  • Well-versed in frameworks/methodologies: Scrum, Kanban, TDD, MDD, etc.

...and this is probably the short list. If you're an aspiring developer wanting to ascend to the next level, my advice to you: get great with SCM and the software development process. You will differentiate yourself significantly from other developers.

How about the situation where we're on site developing a solution the client will eventually maintain? As with most client situations, you're there to provide expertise and advice. If there's an existing SCM solution, certainly we should adhere to this--but seek to optimize! In an amicable and calm manner, gently make suggestions for improvement to your clients. "Hey, I've had great success and increases in quality through introducing test harnesses with continuous integration into the process. I could set up a demo in a day if you like."

System Integrators (SI), in my opinion, aren't hired to provide amazing development expertise. They're hired to solve problems. Typically, development shops have business problems but they also perpetuate software development issues due to shortcomings in SCM technique. You, as that trusted advisor, need to evangelize and lobby for optimal and proven processes and tools which increase the likelihood of quality and success in software development.

Go forth and optimize with SCM! To this end, here is my list of resources to aid your journey with SCM.

Comments

Popular posts from this blog

TFS Error | The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.

Posting this one for the search engines. If you ever receive the exception "The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.", more than likely, your drive space is at 0 on your TFS application tier box.

I encountered this at a client recently. The root cause was that IIS logs had filled up the OS drive (C:\). I switched IIS logging to the applications drive (D:\) which cleaned up the OS drive and resolved the issue.

Detailed message:


TF53010: The following error has occurred in a Team Foundation component or extension:


Date (UTC): 6/7/2011 4:18:53 PM

Machine: TFSATBOX

Application Domain: /LM/W3SVC/8080/ROOT/tfs-1-129519118182628600

Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727

Service Host: 7ecfbd77-b386-4d75-b038-b05474782696 (DefaultCollection)

Process Details:

Process Name: w3wp

Process Id: 3676

Thread Id: 5752

Ac…

Verified by Visa: Everything We Tell Folks to Avoid

Phishing is defined by F-Secure as: "Fraudulent e-mail or website claiming to be legitimate seeking indentifiable information. Phishing is an attempt to steal your personal data."When I recently attempted an online purchase from WalMart using my VISA card, being a security wanta-be, I immediately thought phishing when redirected to verifiedbyvisa.com and saw this dialog:

Seriously, these folks have to be kidding. You're asking for my personal data during a transaction and claim that's its a service "...at no additional cost." Wow! Thanks...but absolutely not, you jokers. As a malicious thief, I can go a long way with this data.

This is exactly the type of experience which aids malfeasance and the folks trying to steal personal data / identities. How long have we been working to educate folks to avoid providing this type of data under these type of circumstances? Years. And we're just now starting to turn the corner.

VISA, get rid of this! When folks submi…

Windows 10 Creator's Update and Office Conflicts

Recently, Microsoft pushed the "Creators Update" out to Windows 10. It was available in April but it seems to have been force-pushed in the past 2 days. On my mother-in-law's computer, Creator's caused Excel to render a "Bad Image" message when attempting to start declaring "MSVCP140.dll is either not designed to run on Windows or it contains an error". I attempted the SFC and DISM repairs as advised on Tom's site to no avail. When I attempted an Office repair, Office disappeared completely. At this point, I definitely started to panic.

Fortunately, I noticed a pending reboot due to an install/update. Allowing Windows to install that update and rebooting twice brought Excel and Office back to life. I did have to re-register the software but all is well now. If you encounter this issue, stop what you're doing and install/restart Windows. Anecdotally, I've since hear of many folks encountering similar issues.