Go Premium for a chance to win a PS4. Enter to Win


Coding/Maintenance Practices

Posted on 2002-04-02
Medium Priority
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
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?
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


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 80 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 more...it seems that it also helps with memory management, as discussed in http://www.experts-exchange.com/visualbasic/Q.20284177.html

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

Question has a verified solution.

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

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
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…
Suggested Courses

916 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