Need Developer Tools Help!

Ok, take for instance the following scenario (setup). There are roughly 4 developers all working to maintain the same set of 30+ different websites on a company intranet. Therefore, none of us want copies of files locally on our individual machines because that would essentially be 4 copies of every site per machine (overwhelming and confusing). We have a remote server set up as a development server with ColdFusion 9 installed. We do all our development work directly ON this server and test via browsers to this server. Once finished, we publish files over to our production server(s). We do zero code editing directly on the production server(s).

Now, we used to use FrontPage for development work because we all could connect (HTTP) to the development server and work with the same set of files. FrontPage only had one option of version control and that was to warn you if someone else had previously saved a different copy of the file you had open. FrontPage was also great for us in that all we had to do was publish the site or individual files as needed to whatever server we typed in (as we have several to publish to at times).

We since are trying to migrate away from FrontPage and get into a better development tool. However, we have yet to find one that best fits our setup. We find ourselves using DreamWeaver to edit code, and FrontPage to publish, etc. Also, within DreamWeaver, we do NOT want local copies of the files saved on our machines so setting up DreamWeaver is tricky since they require local AND remote setup. In our case, they are both the same and did not always work (if ever) for file check in/out because of this.

I have done some research on the tools available but was wondering if anyone else has a similar setup. If so, or if anyone has any ideas, can you suggest a development tool that would best fit our needs so we can all work within the same websites at the same time without causing problems and without having copies on our local personal machines.

I think the biggest problem that we run into is that we do not have a development server and a testing server. We use the same server for both roles before pushing to production servers.

Thanks in advance to whomever suggests solutions.

You’re welcome :slight_smile:

Just in response to some of your points / questions…

“However, I’m not sure how many websites you guys maintain, but here it’s well over 30+.”

We’ve about 10yrs worth of ColdFusion applications - both external / internal active at the moment. It’s used by 1500+ employees and a large student-base both local and international. We’ve also our main website which gets around 8000+ unique visitors a day. So it’s a reasonable size setup.

“If we do what you guys do, essentially (over time) we will have 7 copies of over 30+ website files which we didn’t want to do”

Well yes and no. Each of your Developers have their own copy to work with but all your latest and greatest stuff sits on your single server. That’s not to say you have to do it that way though :).

If you prefer single server then you can use check in / out approaches. Basically SVN makes any check-out files to a Developer read-only, and they’re not available to anyone else until they check back in.

Pro of that is you stop people “stepping on each others toes”, the downside we found was Developers tend to forget about files / go on holiday etc. and we end up “forcing” the unlock to get into the files.

“Yes we have run into trouble before about losing files and scraping for back-ups, but we typically don’t have more than 2 MAYBE 3 developers working within 1 site at a time.”

Yeap sounds reasonable enough :). Version Control would cover your lose of files and in some ways your back-ups as well.

When a Developer commits a file(s) back into the repository SVN “archives” the old file and the commit becomes the new. You can switch between old / new, compare different versions to find out changes / history, and if anything goes wrong… say when you release to production… you can revert pretty much straight away to the previous version.

It’s basically a comfort blanket and to be honest I don’t work without it nowadays for the reasons I’ve mentioned a more ( they’re are books on this stuff )

Change is a big thing to go through in any company I know :). It was a fight for us as well, more with the people than the technology. No company is willing to change “what works” until they see the benefits. If you personally like it then its maybe worth trying it yourself first.

Shout if you need anymore info :wink:

Cheers,
James

I don’t know about suiting your needs but if it helps give you some ideas here’s the setup our team uses ( x7 Developers ) and it works pretty well for us.

First thing is that we all work locally :slight_smile: and we all work with our own versions of the project. We all work on the same projects but generally we have our own pieces / job tickets to work on. So by having things locally we’re in isolation for the most part and that helps in minimising any breakages etc. and we don’t have to worry about other peoples changes… at this point anyway.

However, and you mentioned it there, we use Version Control software. Our “flavour” of choice being Subversion (SVN) - subversion.tigris.org

Basically its a repository of all our code, pretty much a bucket, and all our Developer environments are plugged up to that. So Developer #1 can make changes and when things are stable they drop it back into SVN. Developer #2 can then get an update from SVN to get Developer #1s changes and looks to integrate that with what they’re doing. Once they have and are finished they drop that in.

In terms moving files to test / production we do what they call “tagging” which is to take a snapshot from SVN of the project at that time.

We don’t manually upload anything either. We use a tool called ANT - Apache Ant - Welcome - which is for automating deployment. So a Developer runs a script we built, picks the tagged version of the software they want to release ( i.e. version 1.0 ) and the environment they want it to go onto.

After that its their job to get the team coffees in while ANT archives and drops the version onto the servers :).


In terms of software we all use CFEclipse - Home - CFEclipse with plugins for SVN and few other things.

However, so we can make sure everyone is running the same CFEclipse version etc., we have an extra tool called Eclipse Pulse - http://www.poweredbypulse.com/ - which allows us to create “Builds” of Eclipse and manage all the plugins. So basically one of us can make a change, say get the latest version of a plugin, and then the Developers just need to click “install” on their local copy and it’s upgraded.


There’s a lot more to it than all this ( i.e. job ticketing against versions etc. ) but just to say it’s taken us at least a year or two to get all this in place and to the point its now at.

It’s certainty been a positive step for us and we’re finding that the tools really help support the working practices we’ve now got.

HTH

Cheers,
James

Thanks James,

I do see how well that would work out for you guys. We have roughly the same number of developers too. However, I’m not sure how many websites you guys maintain, but here it’s well over 30+. If we do what you guys do, essentially (over time) we will have 7 copies of over 30+ website files which we didn’t want to do. Where I could see some benefit for this, I also see downfalls. Our company is stingy on upgrades and if we ever run out of HDD space then we’ll run into more problems. It is nice to have all the files on ONE server and in ONE place so all we ever have to worry about it upgrading space on ONE machine. Yes we have run into trouble before about losing files and scraping for back-ups, but we typically don’t have more than 2 MAYBE 3 developers working within 1 site at a time.

I appreciate your response and I personally like the idea, but I’m not sure the company would allow us to change our setup per se. Trying to find something that works best for us (similar to FrontPage) until we figure out a better setup and have the time to change it.

Thanks!