The use of geographically separated software development groups is proposed as a method for enabling 24-hour software development, or software shift work. The advantages of such an approach are explained, and potential organizational models for such virtual teams are described. Virtual team co-operation, information requirements and communication channels are explored. Activities in the software development life-cycle in which virtual teams can be advantageously utilized are explained, and examples of the successful use of virtual teams are cited. Finally a measure of the effectiveness of virtual teams known as the distributed working overhead is defined, which will enable project managers to clearly see the benefits and associated costs of employing virtual teams on a project.