Coding/Maintenance Practices

Posted on 2002-04-02
Last Modified: 2010-05-02
This question is murky but the idea is to glean some good coding practices:

 I'm a consultant and I have multiple clients at any one time.  They often want me to come to their office to code.  For discussion sake, let's say that everyone uses SourceSafe.  

  I am usually able to code on my personnal laptop.  However, I have some companies that require all coding to occur on their computers.

  Like all developers, I have my personal collection of modules which I've written and collected over the years are in a totally different folder...

  c:\mycompany\VBTOOLS\Modules\mADOStuff.bas ....
(for bevity, let me call these my "standard modules" even though it also includes certain forms, class modules, and activex dlls)

PROBLEM: It seems I am constantly getting various versions of my "standard" modules floating around on different computers at different companies on different projects.

Admittedly, a lot of it is caused by laziness on my part - trying to get an application working quickly, I "improve" my standard module on the company computer and then I don't copy the improved module back to my laptop and I end up recoding the same improvement for another company....

QUESTION: Has anyone out there got a neat system that keeps their standard modules constantly updated and uniform while bouncing around companies/computer/projects?
Question by:EasyAim
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 38

Expert Comment

ID: 6913358
No.  I suffer that same problem, although my coding only moves between my home computer and my work computer.  I am considering writing an XML based VB Briefcase kind of program, but that would be more project based rather than module based.
LVL 44

Expert Comment

ID: 6913552
why don't you keep all of your "STANDARD' modules, in SourceSae, on YOUR laptop.  Then you Must checkOut from the Laptop t the Customers's PC, make the changes, and CHeckIn back in back to YOUR laptop...and like "MAGIC", you now have the latest and greatest on your laptop.  Just remember the CHECK-IN step, BEFORE to leave Customer Site A for the day...

seems like a logical choice to me.

Just my 2-cents worth.
LVL 22

Expert Comment

ID: 6913636
One thing that I've done is tried to remember to copy/paste the text to an e-mail to myself, but that wouldn't be necessary if you have the laptop.

How about if you hook your laptop up to their network, and use that as the source for such modules?
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 6913755
To clarify, I am using my laptop as the initial source.  The way it works is:

  * Company_A needs a new application.
  * I hook up my laptop and code the entire application on my laptop.
  * For final testing (usually to use licensed components that are not on my laptop) I have to copy the entire project including my standard modules over to a company issued desktop.
  * After it is completed, the entire project is uploaded from the company computer into SourceSafe.
  * Subsequent changes to the project are usually performed on the company desktop computer.
  * The problem is that improvements to my standard modules on the company computer rarely make it back to my laptop due to:
  > no laptop on subsequent visits
  > laziness or lack of time
  > sheer complexity (three projects being coded at the same time, each using an archived copy of the standard modules)...

Arthur_Wood's idea is what I actually try to do but I often have connectivity problems with the various clients' networks OR some clients won't even let me use my personnal computer on their network (i.e. virus fears).  I'm having to use floppy disks at some places.

PaulHews - I'll think about your idea about creating an application to sniff out the changes - or maybe just look a the "Modified Date"... and maybe use 'rpahitz' idea to have it automatically email me the changes.  

Thanks for the inputs...  I'm going to leave this question open for while to see if I get any other ideas.
LVL 22

Accepted Solution

rspahitz earned 20 total points
ID: 6913915
Here's a radical idea:

Create "standard" modules that are self-contained/encapsulated.  These objects or dlls get built exclusively on your laptop and distributed to user machines as units.  Any new development related to these is done on the laptop, including exposing new properties/methods.

Obviously, this idea is very simplistic and doesn't match every situation, but I've tried implementing this here where the modules are controlled through sourcesafe and changes to them must be authorized by me.  And certainly, it becomes comvenient to transfer the source code to the test machine, but that should really be the exception case where you can't easily code it because of inter-object communication problems that need to be debugged first-hand.

Author Comment

ID: 6913969
 I like that idea....  it would force me to maintain the source.  
  The only glitch is that my clients want the source code of course... but I could give it to them with a private and personal vow to never, ever touch the source code on the company machines.
  That would take a lot of will-power on my part.
LVL 22

Expert Comment

ID: 6913979
Well, if the client wants the source, give it to them in a zipfile.  That should slow you down ;)

Author Comment

ID: 6916142
I hate to close out a thread but we seem to be slowing up a little here.  

  rspahitz, I like your idea to bundle up my modules into a DLL.  It looks more professional and it will more easily make me update the procedures on my computer.
LVL 22

Expert Comment

ID: 6916398
I'm glad it works for you.  I've started doing it more myself, and probably need to follow through even seems that it also helps with memory management, as discussed in

Featured Post

MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In a recent article ( for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses
Course of the Month7 days, 8 hours left to enroll

632 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question