Internet-based Collaborative Software Development Using Microsoft ...

6 downloads 0 Views 517KB Size Report
Microsoft Office Server Extensions. The modes and mechanisms of a conceptual framework for Internet-based collaboration are presented. This framework is ...
Internet-based Collaborative Software Development Using Microsoft Tools Charles HERRING

Michael REES

Department of Computer Science & Electrical Engineering The University of Queensland Brisbane, QLD 4072 Australia

School of Information Technology Bond University Gold Coast, QLD 4229 Australia {herring, rees}@dstc.edu.au

Abstract This paper describes solutions for distributed software project management, focusing on tools and techniques for effective project communication. Microsoft’s Internet collaboration tools are used for software development and to monitor and control project progress. Student programmers and supervisors at different physical locations collaborated to produce add-on tools for the Microsoft Office Server Extensions. The modes and mechanisms of a conceptual framework for Internet-based collaboration are presented. This framework is instantiated using Microsoft Office 2000, NetMeeting, MSN Messenger and the Workgroup Web Site. Experience with the collaboration framework is evaluated, and enhancements targeted to support software development are proposed.

Keywords:

Internet-based software management, Microsoft collaboration tools.

project

1. INTRODUCTION This paper is an experience report on using Microsoft’s Internet collaboration tools for software development. It is based on using these tools for the last three years on a daily basis on software development projects for the Defence Science and Technology Office and the Queensland Government [1, 2]. To illustrate the use of these tools one particular experience in supervising summer student projects is described. The Cooperative Research Centre for Distributed Systems Technology (DSTC Pty Ltd) at the University of Queensland sponsors undergraduate students over their summer break to work with researchers. We regularly supervise these summer students to develop software for ongoing DSTC research and consulting projects. We live on the Gold Coast seventy kilometres south of the University of Queensland where DSTC and the students are located. In order to work with the students, and each other, Internet collaboration tools are essential. The Microsoft tools have proven to be quite effective.

Face to Face (“Meeting”)

Intensity of Collaboration

NetMeeting

Voice (“Phone”)

MSN Messenger Work Grou p Web Site (IIS/OSE)

E-Mail Videotape

Audiotape Paper/Web Pages

Mode of Communication Figure 1. Communication and Internet Collaboration Tools

2. MICROSOFT COLLABORATION TOOLS

the US, and send messages to mobile phones and SMS. A NetMeeting may be directly initiated with contacts as well.

Software engineering is a communications-intensive activity. Recent methodologies such as Extreme Programming [3] take this human aspect into account explicitly. Cockburn reviews the success (and failure) of over three dozen major software projects and, in reflecting on his own software consulting practise, concludes: “characteristics of people are the dominant, first-order project driver. [4]” Of these characteristics he maintains that communications is the most important. Figure 1 shows Cockburn’s model of communication with the major Microsoft collaborations tools overlayed on it. The figure shows the relation between intensity (and possibly effectiveness) of communications as a function of the mode of communication. Face-to-face communication being the most intense mode whereas reading a document (paper or web-based) is the least intensive. (Note the mode of communications can also be characterized as ranging from synchronous to asynchronous.) The next sections give an overview of the main collaboration tools used in this experience report and relate them to the communication model and Internet software engineering.

Knowing if and when members of your contact list are online and their state provides a form of “presence and awareness” of others that is otherwise lost when working remotely and often alone. This presence and awareness of others bridges the gap between “face to face” synchronous meetings and asynchronous modes such as email and documents. It fills in some of the peripheral sensory information that being collocated provides, gives a sense of togetherness, and promotes short, precise information transfers between collaborators.

NetMeeting: Face-to-Face NetMeeting [5] is Microsoft’s real-time collaboration and conferencing client and is a standard application distributed with Windows 2000. The basic feature list includes: audio and video conferencing, whiteboard, chat, file transfer, program sharing and remote desktop sharing. NetMeeting is loosely integrated into other Microsoft products. For example, meetings using NetMeeting may be scheduled in Outlook. NetMeeting can also call MSN Messenger contacts directly. A related product, Internet Locator Service, based on LDAP can also be used to locate people and initiate conferences. NetMeeting supports H.320 (the ISU standard for ISDN teleconferencing) and T.120 (ISU standard for multipoint data conferencing) enabling it to function as a client for third party collaboration servers. There is a software development kit available for those wishing to make custom applications based on the underlying COM components. Performance is acceptable over 56Kb modem, including video and application sharing. Messenger: The Presence and Awareness Bridge MSN Messenger [6] is Microsoft’s entry into the “instant messaging” field. Its primary use is to maintain a list of contacts and permit sending short text messages to them. In order to do this Messenger must know the status of contacts. That is, whether they are online or not, and if online their current state (e.g. away, busy, be right back, on the phone). Also, you can be notified by a sound and small popup window when a contact comes on line. There are additional features such as ability to initiate direct audio conversation, transfer files, call any telephone number in

IIS and Office Server Extensions: Asynchronous Collaboration One of the major new features of Microsoft Office 2000 [7] is the online collaboration mechanism. This comprises the ability for several users to insert threaded discussions within an Office document or web page, and for those same users to subscribe to a notification service that informs of changes to shared documents. Two changes were needed to implement online collaboration: 1. Office applications and Internet Explorer incorporate a user interface to act as a client for the collaboration facilities 2. Office Server Extensions (OSE [8]) work with IIS 5.0 (web server) to manage discussions and subscriptions Together these changes succeed in bringing online collaboration potential to teams working with shared web pages and Office documents of all kinds. The online collaboration features combine directly with web folders to offer shared document repositories. Web folders extend the local file system to encompass Internet shared document repositories. Within OSE the content of the in-document discussions and the subscriptions settings for each user are stored in Microsoft SQLServer databases. At the same time, special user groups are established that control role of different users in the collaborative team: • Administrators: users able to create, modify and delete web folders • Authors: users able to create, modify and delete Office documents and web pages • Collaborators: users able to submit discussion items and set subscriptions • Browsers: users with read-only access to shared documents and discussions It is a simple matter for system administrators to assign members of a collaborative team to the appropriate user group in order to give each user the appropriate access privileges. Internet Explorer and all Office applications share the online collaboration tool bar as shown at the bottom of Figure 2. The discussion icons (insert markers) allow the user to set within-page discussions (web pages

only) or discussions about a document as a whole. The icons with the “+” and “-“ control expansion and contraction of discussion item contents, while the arrowed icons move the user from one discussion item to the next. Subscription settings allow users to be notified by email when changes occur to any individual document, or all documents contained within a folder. To prevent too many notification emails, the user may opt to be notified every day or week, rather than every time a change is made. Subscriptions have proved to be one of the most effective tools for our own use of OSE. Figure 2 shows an example of a discussion item. Note that OSE adds the author, date and time automatically. The marker at the bottom of the item gives access to a reply mechanism for threaded discussions. The author may also modify or delete the item. OSE searching is particularly effective. As well as searching by folder, a date-based search is very useful for collaborative teams. For example, a user may ask for all documents modified in the last seven days in order to assess the level of activity of the team in the previous week. A search by document property can also locate documents quickly. Remember that Office 2000 can store a set of properties with each document: title, subject, author, manager, company, category, keywords, comments and so on. The Workgroup Web: Putting It All Together To demonstrate the power and utility of the online collaboration features of Office, Microsoft provide a FrontPage 2000 template to create workgroup webs. The 60 Minute Intranet Kit [9] improves team productivity by making it easy to share documents. Generating a workgroup web takes a matter of minutes with the 60 Minute Intranet wizards. The resulting workgroup web site provides an integrated set of collaborative features: • A hierarchy of web folders structured to serve the needs of all team members. Each member receives a personal folder, and group projects each are assigned a web folder. • Each document exists as a single file that can be shared by all members of the team. • Team-specific data can be accessed and analysed using applications in the Office 2000 suite. • Shared data such as a directory of team members, outstanding issues, team newsgroup, project lists, calendar of events and timesheets are generated automatically. An Access 2000 database is created and populated by the 60 Minute Intranet wizard to support the shared data features. Full use is made of the OSE web components and scripts to provide convenience features in some pages. Examples are links to automatically set web folders,

discussion server and default home pages. After generation, the workgroup web is fully operational, and requires only minimal customisation such as the inclusion of logos and some file paths. We have found workgroup webs to be excellent support tools for a number of projects for other customers. Firstly, the implementation team uses a workgroup web to coordinate its own work. Secondly, a workgroup web accessible by the clients allows them to be kept informed of progress, and to add their own inputs.

3. EXPERIENCE USING THE TOOLS The software development project reported on here involved two, second-year computer science undergraduate students working for eight weeks during their summer break (that is during December-January). The goals for the project were to develop two extensions to Microsoft Office 2000. The extensions were to provide us with some handson experience in how difficult or easy it is to extend the tools, and to demonstrate the capabilities that can be achieved relative to existing custom tools in use by our sponsors. The next section describes two Office extensions that were developed, and some detail on how the online collaboration tools were used to develop them. The Software Development Projects The first Office extension is called the Discussion Extractor, and is implemented as a “COM Add-In”. This is the standard way to extend Office applications. A COM Add-In is a wrapper or interface specification that plugs into Office applications and contains application-specific code. The COM Add-In appears as a menu item under the Tools menu. The Discussion Extractor operates as follows. When the user selects this option a dialog window appears. From this window the user specifies a query over the SQLServer discussion database as described above. The user can make a query based on documents, discussion topics, users and date ranges. This query will return a set of discussion items. If the user is in Word, the items will be formatted into the Word document. If the user is in PowerPoint, a series of slides will be produced. The Word document and the PowerPoint slides reflect the structure of the discussion threads. That is, at the top level is a discussion item and each reply to that item is indented underneath it. The author and dates are also shown. This extension permits users to extract, in a formatted presentation, the discussions about any document while running Word or PowerPoint. This extension supports recovery or explanation of such things as the feature list design history of a software project, or the rationale for business process and action development.

Figure 2. Work group web site home page The second extension is the Annotation Service. It provides the ability to make graphical annotations to any document viewed in Internet Explorer. That is, the ability to mark-up a document with lines, shapes (rectangles, circles, etc.), text labels and highlighting. It is similar to having the graphical drawing capability of PowerPoint available in Internet Explorer. The user can make arbitrary annotations on any document viewed in IE. Those annotations are stored relative to that document (URL) on the OSE database machine. They are stored in SQLServer (just like discussions) and can be retrieved and displayed by any user with access permission to the discussions server. The annotations can be selectively displayed as in the Discussion Extractor. Thus different overlays can be queried.

The key to implementing arbitrary graphics is Vector Mark-up Language (VML). VML is Microsoft's graphical mark-up language and implemented using XML. The other key is Dynamic HTML (DHTML). The students wrote a Visual Basic application that takes user’s input (such as dragging the mouse to draw a line) and inserts a small sequence of JavaScript into the DHTML DOM. This script then displays the graphical annotation in front of the DHTML content of the page. All of the user's annotations are stored inside the DOM at a known place, so that when the user choses to save the annotations they are extracted and sent to the SQLServer database on the discussions server. The annotations can then be retrieved and redisplayed when a user revisits the web page. Setting Up the Tools for Internet Software Engineering After deciding on the software tasks and assigning responsibilities, the next step in the process of developing

the applications was to set up the collaboration tools. The machines included one Windows 2000 workstation and one Windows 2000 server to host IIS for development. Also required were Office 2000 and MSN Messenger. (Windows 2000 comes with NetMeeting). A headphone and microphone is needed to support voice communications. Video cameras are useful, but they are not absolutely necessary. The next step was to build a workgroup web site for the team using the 60 Minute Intranet Kit. The purpose of this site was to provide a single online repository to organize all information related to the software development effort. The features of this website are described above in 2.4. A wizard in FrontPage 2000 guides you though the process, such as entering the names of each project and team member. Based on these questions, web folders are generated containing web pages to support document management. For example, each user gets a “home page” web folder. The resulting home page for the generated web is shown in Figure 2. Note the navigation bar at the top of the page. The menu items show there are areas for Documents, News, Calendar, Search, On Line Apps and Help. On the right side of the page notice buttons that add this site to the users web folders and make this server the users default discussion server. The discussion bar is shown at the bottom of the page with some discussion items. Finally, the users’ MSN Messenger status is displayed inside the web page in a “message center” frame. A Day In The Life This section describes our experience in using these tools on a daily basis. First, everyone generally started work by mid morning. That is, we logged on sometime between 0700 and 1000. When a team member logs in each of us is immediately notified via Messenger. Thus all learned and anticipated each other’s daily routines just like being in an office. Also, all are notified when another person’s state changes, for example to “out to lunch”. Several patterns of communications related to Messenger emerged. One pattern observed was when a student first logged in: one of us would expect to be contacted immediately. This was usually to discuss the previous days work or a problem they were facing that day. Another frequent pattern was help in debugging. Often a student would encounter a problem in coding and call for help. Messenger permitted us to rapidly solve these problems, and keep the software process moving forward. This was helped by the fact that a copy of the most recent code was kept on the workgroup web site. Usually only one file was under change at the time, and usually only a small section of code. The section of code in question could be cut and pasted directly into Messenger. Messenger also supports group chat. Groups chats were frequently held and there were many times when multiple

simultaneous conversations were ongoing, including those with others not related to the project. Other patterns of communication included “sporadic audit” initiated on our part, that is, just checking up to see how the students were doing. This is most likely motivated by the feeling of not having communicated for longer than the usual time. Of course there is also the “taking a break” pattern when someone just felt like talking or sharing an interesting URL. Thus Messenger provides a type of ambient, teamwide presence and awareness, coupled with direct communications that range from short, specific, goaldriven sessions to informal social interactions, all of which are necessary for team cohesiveness. At the next level of synchronous communication is the NetMeeting package. NetMeeting was used occasionally for direct conversation as it provides audio communications and is easily initiated from Messenger. NetMeeting also provided file transfer when the work was conducted. (Messenger now supports both these features itself.) However, the advanced capabilities of NetMeeting, such as application sharing were rarely used. Messenger filled the majority of communications needs. But, there are times when only a feature like application sharing will suffice, and so NetMeeting it is a necessary tool. The workgroup web site, as the team’s central repository, rounded out the remaining Internet-based software project development needs. It was the students’ responsibility to update and maintain the site. They were asked to upload a working copy of their software project at the end of each day. Thus, the most recently published version of the software could be always be downloaded and run locally. Also, all other project-related materials such as design documents and presentations were stored there in an organized, Internet-accessible place. Documents are easily downloaded from the site using Internet Explorer. Web folders permit direct (drag and drop) uploading and downloading of files from Windows Explorer. The other two major features of an IIS/OSE enabled web site are discussions and notifications as described in Section 2.3. These features complete the asynchronous communications required for Internet software development. All team members subscribed to be notified when folders changed and when discussions were entered. Discussions were found to be useful for a number of purposes. First, posting comments about various aspects of the documents on the web site when you are viewing them. This helps capture information that might otherwise be lost. Second, it was often the case that we would review the work posted to the web site late in the evening after the students had gone home. So what might have been a Messenger conversation had the person been present could be recorded as a reminder for later.

projects, the workgroup web site and other sources of project related information could be integrated into a single management interface.

4. CONCLUSIONS AND FUTURE WORK In closing we offer some reflections on the experience, and give ideas for extending the Microsoft collaboration tools to specifically support software engineering. Software development is a team activity and is best done when the team is in the same physical location. On the other hand, software engineering over the Internet seems unavoidable. As reported on here, it can be efficient and even fun. In some ways it may even be superior. For example, using Messenger, it is possible to help someone get over a simple coding problem in a matter of a few minutes leaving your desk and losing your work context. We did travel to the university once a week to spend the day in the office working closely with the students. So, even with good collaboration tools, face-to-face meetings will remain a requirement for software development. In terms of the Microsoft tools, they are straightforward and reliable as described above. Recall the students’ projects involved extending these very tools. It was remarkable given their limited programming experience that they were able to learn and use the more complex development tools (e.g. Visual Basic, VBScript, JScript, SQL Server, IIS/OSE, VML, etc.) so rapidly. As well, they administered their own Windows 2000 server in order to accomplish the tasks in an eight-week period. Based partly on their work, some insight into enhancing and extending the tools to support software engineering over the Internet are proposed: • FrontPage Wizard for a Software Team Work Site: A wizard could be developed based on analysis of software engineering team requirements. The wizard would ask a set of generic questions in terms of how the project is to be managed, whom the developers are and what common support tools should be made available. Based on these questions a web site is generated that can be further tailored to the teams needs. • OSE Extensions to support Software Engineering documents: tools and extensions, such as the Discussion Extractor or Annotation Service, could be developed to support software-specific document design, implementation and testing requirements. • OSE Extensions into Visual Studio: just as Office 2000 integrates the collaboration tools directly, it is possible to extend the IDE’s of Visual Studio and other software development tools to provide collaboration access. • Digital Dash Board: Managers spend most of their time reading email and checking their calendar. The Digital Dash Board [10] is an extension to Outlook 2000 intended to give managers a single, real-time view into the most important aspects of their business. For managers of software development

Acknowledgements Agata Bombek and Jerome Jamnicky for the tremendous effort they put into the summer project. The work reported in this paper has been funded in part by the Co-operative Research Centre Program through the Department of Industry, Science & Tourism, Australia.

5. REFERENCES 1.

2.

3. 4.

5. 6. 7. 8. 9. 10.

Barrios, A., et al. Generating Command and Control Systems in an Hour: the Microsoft Way. in 5th International Command and Control Research and Technology Symposium. 2000. Canberra, Australia. Eilert, F., et al. Consultative Specification Development using Microsoft Office 2000 and Office Server Extensions. in Australasian Document Computing Symposium (ADCS 2000). 2000. Twin Waters Resort, Sunshine Coast, Australia. Beck, K., Extreme Programming Explained. 2000: Addison-Wesley. Cockburn, A. Characterizing People as Non-Linear, FirstOrder Components in Software Development. in 4th World Multiconference on Systemics, Cybernetics and Informatics (SCI'2000). 2000. Orlando, Florida. Microsoft NetMeeting, http://www.microsoft.com/windows/netmeeting MSN Messenger, http://www.msn.com Microsoft Office 2000, http://www.microsoft.com/office Microsoft Office Server Extensions, http://www.microsoft.com/office/deployment/default.htm Microsoft 60 Minute Intranet Kit, http://www.microsoft.com/office/WebTour.htm Microsoft Digital Dashboard Kit, http://www.microsoft.com/solutions/km/DigitalDashboard. htm