Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


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
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?
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.


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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
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

718 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