Software for a Virtual Office?
Omega1045 asks: "I am working on a team that will soon be merging with another group of developers a thousand miles away, plus we already have remote people. Having been in this position at a previous job, I have used applications like IM, NetMeeting, email and a lot of phone calls to keep people in touch. Even with these things, there is still a lot missing in making sure we have good communication between members of the team. In my previous experience, we spent too much time on simple tasks like making sure everyone had the same copy of a file, the same update project schedule, etc. What tools would you recommend for a team working in Windows development? What experiences, good and bad, have you had with 'virtual office' applications. I am currently testing Groove Virtual Office which I spotted on Slashdot, earlier. Does Slashdot have recommendations for free software, or moderately priced commercial software, that might fig the bill?"
"What tools would you recommend for a team working in Windows development?"
Let the flame war commence!
The first person that says "install linux!" gets hacked.
Clearcase or monotone. Decent SCM is the key to this.
...some of the recent changes in CVS have some Microsoft Project integration, too. GForge is pretty good at handling reasonably heavy loads. And you can even get commercial support.
I'm not affiliated with GForge Group, although I was a committer on GForge for a while.
The Army reading list
I had a contract last year where they used GoToMeeting with good results. It seemed to be a rather spiffy program, but others that have used it more extensively may have deeper thoughts on it. Generally we used it to present changes to clients via our project manager's PC. We would all also call in to a meeting number and the client app tracked who was on the phone and who was watching the project manager's presentation.
https://www.gotomeeting.com/
Sync a folder on the hdd, and it will solve alot of menial tasks.
DYWYPI?
I spend a majority of my week working from my home office, driving the 50 miles each way into the company's building only a couple of days a week. I have a VPN router (LinkSys RV042) that extends the corporate network into my house. Our team uses a wiki for tracking issues and such, and shared file servers work fine: the approved or cannonical versions of software are put on the server and everyone is expected to stay up-to-date.
The previous reply to use rsync is a good idea if you want to automatically keep (force) everyone to the save versions of files and such.
We haven't used anything like GForge, though we do not have a lot of remote development going on (a few engineers cross country, the rest on the same coast.) Adding another email system (for example) on top of wahtever the corporate email system provides is a waste and senselessly duplicative. Similarly integrating our RCS into another larger system didn't make sense.
``we spent too much time on simple tasks like making sure everyone had the same copy of a file, the same update project schedule, etc.''
That sounds like nothing a version control system couldn't take care of. I don't know about other systems, but I have good experiences with Subversion, and I am told there are Windows clients for it.
Please correct me if I got my facts wrong.
That's what it does.
I hate to use a tech buzzword, but wiki's (with offline copies) can be exactly what's needed. Building tables and documents directly in the wiki interface will make sure that everyone always has the latest copy.
Novell has heard the cry of thousands before you and they have developed a solution. Novell Virtual Office runs on Open Enterprise Server(OES) which can be either Netware or SuSE Linux.
Sorry, MS is not a supported platform for this solution. MS did try their own solution but it fell way short with Share Point. Share Point blows chunks and sucks balls at the same time!
Messenger - for quick messaging /. will say (folks who have
Exchange - for calendaring and the like
VSS - for source control. Its not the best, but it
works and is easily integrated with VS.Net
Sharepoint - quite nice actually, in spite of what
a few folks on
obviously not used it recently)
Xerox's Docushare product is like Sharepoint on Steroids.
Calendandering, versioning, chats & forumns, plus its a EDM (Electronic Document Manager), this coupled with e-mail, IM and a decent CVS, should keep you up to date.
Groove Office is supposed to be pretty good as well, but I haven't used it much, just Docushare. Plus I love Docushare because you can have a Linux(or better yet FreeBSD!) Front-End to a MS-SQL server.
Rule of Life Number 2: Remember, it can all go to hell at any minute. --Jimmy Buffet
I work in a company of some 3000 people. The biggest issues we have with the "glue-ware" applications, which are used to keep everybody on the same page, come when the glue-ware requires a specific web browser to work, or is a binary that only works on one type of machine.
Now that the IT managers have got enough complaints, we are moving away from this. But the number of times I had to seek out a Windows machine, just to file a trip expense report, was not even funny.
There are only a few caveats that can potentially be a show-stoppers:
I've seen other F/OSS solutions out there that run on Apache with PHP or Zope and use MySQL as a DB back-end, but if you're Windows-centric, the Sharepoint install was quick, easy, and did not require much forethought aside from the issues mentioned above. Wouldn't be my first choice for dev collaboration for non-Windows-centric orgs, but sounds like a decent choice for your situation (based on what you told us).
Good luck!
1) Install a second NIC or connect the modem directly to the server. Connection to the Internet should be though the server and connection to the Office should be though a VPN on the server. .
2) Install a new IDE Hard drive in a 3.5" removable rack and tray. The drive should be than big enough for the operating system (Linux of course) and copies of some of the local desktop partitions. A telecommuter can shut down the server and bring in the HD during the day to resync and repair.
3) Install DHCP demon to allocate local IP addresses, DNS and gateway settings. If the desktops are network boot capable then install TFTP to remotely boot KNOPPIX via PXE. IF the desktop OS is constantly crashing, the user can select PXE boot, network KNOPPIX. The user can then be instructed over the phone to enable ssh server to allow remote repair and reimaging of the desktop partitions from copies on the local server.
4) Partition the desktops with as small as required C: ( or in the case of Linux the root ) partition for software. When software is install, use dd and netcat via live KNOPPIX to copy a snapshot of the partition to the server. You can allocate the remaining free space as a persistant partition where documents are stored. ( Consider hireing someone who knows how to customise Knoppix for your setup.)
5) Install/Enable VNC on all the platforms, but only allow incoming connections from the local server ( which is redirected over a SSH tunnel ).
6) For local backup, create share directories on the desktop accessable by the server. On the local server create loopback encrypted file systems, unmount and copy the images to the desktops shares in chunks, using redundantcy if enough space is available on the desktops. Checksum ( MD5 is enough ) each piece.
7) If the network load to the Office is takeing up all the available internet bandwidth or the connection is just too slow then install proxy servers on the local server and consider using a distributed filesystem ( OpenAFS is still the best )
8) If phone charges are eating into the budget, and the internet connection is good enough, then install Asterisk on the local server ( upgrade the server to a Celron 800Mhz or better ) and a card with enough FXS ports for each local user. Don't bother with software based phones/headsets. The phone will work when the desktop does not.
9) Set up a Linux server at the Office that operates as a thin client application server. Allow remote access though both FreeNX and VNC. Create login accounts and logins that operate as virtual meeting rooms, with multiple users logging in via VNC. Use VNCserver with a screen size of around 1000x600, that will operate via a VNC viewer on any 1024x768 desktop. Use phone based conference calling for voice -- it's a lot less hassle for the users
10) Add the ususal list of cross platform applications: Firefox, Thunderbird, Gaim, OpenOffice etc.
Do the open ten step and save yourself and your santity from all those hours driving from site to site.
There are plenty of good technical solutions to source code control, messaging, mail, etc. (lots of which are posted already) that allow you to work together, but to actually work together effectively yet remotely you need to get to know the people who you are working with - and this means meeting face to face semi-regularly.
If you don't do this, then you'll always be two development teams - "us" and "them".
Use Sharepoint, someone flamed sharepoint, but I have been able to provide a much richer collaboration experience for all parties involved. I even got the sales team to use it. The ability to create lists allows me to replace home grown software used for management purposes. The document management may be better in Xerox's product, but I haven't used it and sounds like it does what Sharepoint does. Sharepoint is free, but only runs on windows.
Use CVS! it's free and beats a lot of commercial software with its merging capabilities.
Create a server for collaboration. Include a development database and manage it properly. Allow all developers to connect to it. But make broadcast messages when a change has been made to it. Update the source code based on tags from CVS to keep it stable.
All the things that you would have to download, install, configure, understand in order to get a linux box ready for remote use are already available in a base install of Windows Server 2003.
You pick, it's your time and money.
I know some remote people, too.
fig the bill?
I use basecamp for exactly this purpose. VERY simple and easy to use. Some call it the "ipod of project management". Very affordable too.
It has messages, comments (like a blog), milestones (calendar), general-purpose to-do lists, "writeboards" (which are basically one-page wikis), file upload (supply your own FTP server), and time tracking. Also, RSS feeds to track progress. I love it because it's so SIMPLE>
Throw in a subversion repository and you're set.
Use a combination of Groove Virtual Office & Skype to perform collaboaration activities. The licensing costs are reasonable ($229 / user) and the ability to coordinate across the Internet without having to worry about VPN connectivity or firewall traversal is wonderful. The co-edit capabilities for Word are very useful. Be sure to not skimp on training when you rollout because it will be a paradigm shift for most of your users.
We use two workspaces for each customer, one internal & one external that we share with the customer. Skype lets us keep up with co-workers at little to no cost and helps a lot with planning sessions (building proposals, SOW, project plans) etc.
The best part about both tools is that they can be shared with your partners, vendors, and customers. It's not simple to do that with any of the other solutions.
After a little searching, I've found this:h p3
.. big.
http://cvw.sourceforge.net/cvw/info/CVWOverview.p
It's called Collaborative Virtual Workspace. It seems nice but the project hasn't seen an update in a long time.
Is this the solution you were looking for?
Audio/Video conferencing, text chat, white board, and some other goodies.
Or Arsenal Collaborator (open source)? -- http://arsenalproject.org/
This is another piece of collaborative software, but the requirements appear a little
Check it out
It seems like you need duct tape for all of the little things, so I think anyone who mentioned the wiki before made a great observation. I would suggest Twiki or MoinMoin. They are mature. They are free. They are platform independent and low deployment. They have access control and authentication. They have versioning. You can subscribe to email notifications or RSS feeds of changes to pages. They grow in an organic manner rather than having too much structure. They split the cost of management. They can interlink information.
I just finished a 3 month consulting gig. I worked for the first 4 weeks onsite (I firmly believe that you have to get to know folks to start off).
Everyone must be able to VPN into the central office. Cisco, OpenVPN, whatever. But everyone must be able to connect.
For keeping code sync'd:
CVS or svn. We used CVS because we all know it. Also it was in place already, but terribly underused and mismanaged.
For tracking bugs and issues:
Bugzilla. There are others. There was one in place there, already, but virtually unused, and really mis-configured (we tripled the number of bugs opened and closed in the system in the 3 months I was there).
For information management:
A wiki. We installed TWiki, but I'd use mediawiki if I had to do it again. Nice clean openldap integration, which is nice. We put things like coding conventions, instructions for checking code out in CVS, doing builds, doing installs (webapp), finding bugs. Basically it was our process doc repository.
For discussions about important issues:
Email. Set up a list server. Mailman or Majordomo - something with a web interface and that does archiving. You can do with an email interface, but web is really handy for archiving and managing. I failed to convince the jobsite that they had to do this. If I was staying any longer, I would have set up a grey box and installed it myself - but for just 3 months I couldn't be bothered.
For trivial discussions:
IM. Set up a jabber server that requires security.
For scheduling we used whatever M$ provides. The Apple folks (including me) used iCal, and that integrates just fine.
The right tool for the right job:
Don't discuss bugs via email. That's what the bug tracker is for. Email conversations about bugs mean you're losing information.
Don't discuss anything important using IM. Email is for important issues. If you use IM for that, it is hard[er] to start including more people in the discussion, and you often have to re-explain something that was decided in an IM to the new party members.
Don't mail out process docs. Put them in the twiki and email references to them.
etc.
For people comfortable with developer tools, a lot of these comments are pretty good. I've used them all, from wikis to content managment systems, to version control systems.
If you have non-technical folks on your team, however, very few of these tools will be welcomed. They're just too low-level for ordinary people.
You mentioned that you've looked at Groove Virtual Office. That actually puts you way ahead already. One thing many people don't realize is that Groove's folder sync feature is often the only part of Groove that people really need. Here are some nice aspects of this little gem:
1. Utterly Simple Interface: works as an extension to the normal Windows Explorer.
2. Automated Replication: add, update, delete any file or path from a synchronized directory, and everyone's peer copy is updated automatically, in the background, in real time.
3. Replication Conflict Resolution: If two or more people change the same file at the same time, the system creates a version for each change, and flags them as replication conflicts. Simple and easy.
4. Peer-to-peer: Folders are synchronized peer-to-peer, so no content managment infrastructure is needed for a typical project team. No web servers, no content servers. Every person on the team has a complete copy of all shared files.
5. Encryption: All Groove traffic is automatically encrypted.
6. Firewall Traversal: Groove namespaces traverse through firewalls, so you can contact your team and share files without messing about with VPNs.
This is a lot of bang for the buck.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
There is a free trial, so there is no reason not to kick the tires on this.
slashsearch.org - slashdot search. powered by google.
I suggest setting up a Subversion repository (or more than on e if you need to restrict certain files to certain users) and have everyone get into the habit of syncing. TortoiseSVN makes things a lot easier if you're running Windoze. /DevL
VNC, for screen sharing and remote control.
Others can see anything you see on your screen.
Great for discussions and troubleshooting.
Free.
We use www.centraldesktop.com to share documents, task lists and manage all of our projects. Its web-based and we especially liked it b/c its wiki-based and really flexible for our needs (we are a software development company for dispatching software) We use it for customers by creating separate workspaces for each deployment. We also use it for all of our internal communication and document management (business development, marketing intranets, project management, etc). We looked at several different solutions (Sharepoint, Groove, tons of wikis, Jot and Basecamp). In the end, Sharepoint was wayyyyyy too much work. Groove was client-side (we wanted a web-based solution), free wikis required too much learning for our team, Jot was too complex and Basecamp was too simple (didn't quite do enough for us. mainly lacking in document management arena) oh, and Central Desktop leverages whatever IM clients we were using, so we have some team members on MSN, Yahoo and Aim.
I'll start by saying I've been working remotely for a long time. 4 years as part of a team in a remote office and another year working from home. I work for a reasonably large software company (~3000 employees).
The communicaiton tools we use now that i am working from home have been mostly mentioned in previous posts:
for a remote office things like rsync are great for tranfers of nightly/weekly build binaires, etc. it's best to have this stuff scheduled for low use times, like over night, since the real issue with this is having enough bandwidth to transfer the data within a reasonable amount of time. our small office was starved for bandwidth and it would take 12+ hours to transfer a build.
i've found email/IM to be the worst communication methods. it is too easy for them to be ignored, or misinterpreted. granted, i may not be the most accomplished at crafting text messages, but they sure can't beat voice communication.
also, frequent trips for team members to meet face-to-face can help quite a bit. makes everyone remember that they are dealing with people on the other end... and there's not much that is sweeter than an pint that you can expense to the company. :)
i can look at the Wiki and task software to see who is involved where and how they are doing.
i've found Sharepoint to be inadequate. the search feature is completely useless, though perhaps that has to do with the configuration done by IT. i've also noticed some of the new integration with newer MS Office apps (like Word) where i can see collaborators online, etc. nobody seems to be using those features though.
with all that, yes it can work... or limp along. the main thing is keeping the communication happening. you can provide all the tools in the world, but at the end of the day people need to use them. people will naturally drop the ones that get in the way of getting things done.
still, nothing beats being in the same area/floor/building/city/time zone so you can fight fires as they occur, or leverage the person with specific knowledge/experience by sitting with them at their desk.
good luck.