Solved

Coding/Maintenance Practices

Posted on 2002-04-02
9
148 Views
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\ToolBox.bas
  c:\mycompany\VBTOOLS\Modules\FindFiles.bas
  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?
0
Comment
Question by:EasyAim
9 Comments
 
LVL 38

Expert Comment

by:PaulHews
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.
0
 
LVL 44

Expert Comment

by:Arthur_Wood
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.
0
 
LVL 22

Expert Comment

by:rspahitz
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?
0
 

Author Comment

by:EasyAim
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.
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 22

Accepted Solution

by:
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.
0
 

Author Comment

by:EasyAim
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.
0
 
LVL 22

Expert Comment

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

Author Comment

by:EasyAim
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.
0
 
LVL 22

Expert Comment

by:rspahitz
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
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
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…

747 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now