In this article, I talk about how you should go beyond a simple productivity tool to remind you what you need to do. You need a better productivity approach so you can collaborate with others on a common project. One approach is to use a common Ajax workspace as the foundation for an online collaboration workspace for organizing and managing tasks and projects, whether you are working solo or with team members.
You can manage tasks, for instance, by tracking the status of your project in the corporate workspace. These statuses could be Pending Approval, In Progress, Completed, Revised, Approved, and Not Approved. You can determine what tasks you need to manage if objectives and goals are in conflict when managers collaborate on potential integration of one or more projects to reduce dependencies and eliminate redundancies.
Task management can be accomplished by collaborating using common workspaces, working with templates, allocating workspaces dynamically, and centralizing communications. These workspaces should allow members to get or access Ajax libraries and view the current status of project risks.
You can set up a common Ajax workspace as the central workspace to allow team members to collaborate on one or more projects at personal, departmental, and corporate levels. A member of a personal workspace can also be a member of one or more corporate workspace areas. The central workspace provides technical support, training, network monitoring, and data security for lower-level workspaces.
When you create your own personal workspace, you become a member of that workspace by default. You may invite external members to join your workspace on a peer-to-peer basis. They can either accept or reject your invitation.
Corporate workspace unconditionally requires that permanent members of the organization join the workspace. You, as the manager or leader, can invite potential external members to join the corporate workspace. In the middle is the departmental workspace, which is similar to the corporate workspace but on a smaller scale, including a smaller number of team members and potential members.
Within the corporate workspace you can organize members into groups for easier administration. You, as the system administrator, can apply access and permissions for each group for large workspaces rather each member. If unique permissions are necessary, any member added to a workspace as part of a group can also be added individually, overriding the group's permissions.
A department group within the corporate workspace is not the same as the department workspace. The difference is that the department workspace has more flexibility in determining what and how objectives and goals should be set and how the workspace should be used, while the department group inherits the objectives and goals of its parent corporate workspace.
The system workspace administrator can modify the default start page for all new members on initial login, the default company user permission for all newly invited members, and whether to enable an audit log on the workspaces by default. To override the group's permissions, the administrator can individually add a member of a group. The administrator should give the members an option to run, open tasks and check for updates at startup, and to show and hide tasks.
You can make templates available for personal, department, and corporate workspaces, for both private and public use. A template will appear as an option when a workspace manager or leader creates a new workspace. This way, the workspace manager can set up the workspace the way he wants it, or can make it as a template and then recreate a new workspace showing creation dates, as well as the current size and type of the workspace.
In addition to the usual information group name, purpose, time zone, charts, dashboard, milestones, time tracking, and project overview, the template should include workspace areas for open source or free Ajax libraries. A mini-calendar would be helpful in displaying due dates, missed deadlines, late items, anything due in, say, the next 14 days, your project list, latest activities across your projects, and so on.
You could have a template to show at the top of the dashboard a list of late task items with the missed deadlines for completing tasks in red and getting the approvals for starting or implementing the project in blue. Each workspace should list who's currently logged in, who's using one or more Ajax libraries, who's doing other project and workspace activities, and who the customers and clients are that would benefit from the project in progress.
More important is the property properties on the workspace that gives you project/workspace status options in a drop-down menu. Suggested options are Pending Approval, In Progress, Completed, Revised, Approved, and Not approved. The property properties should also include the level of risk factors—Low, Medium, High, Pending Evaluation, or Not Applicable—for each asset to be protected for the project under development.
Allocate workspace dynamically
For large projects, it is likely that a large workspace will be needed for collaboration purposes. The usual approach is to assign workspace statically. However, this approach leads to inflexibility such as using all servers without harnessing unused workspace resources. In addition, the size of personal, department, and corporate levels are usually set at static levels, wasting workspace resources that are not used.
A better approach is to allocate workspace dynamically. This lets a workspace leader dynamically increase workspace when needed and decrease workspace when not needed. The leader should, as his discretion, allow a workspace member to request the option to upgrade from a department to a corporate workspace when the objectives and goals of one or more projects change or when he wants to invite more people than the maximum allowed for the department workspace. The team member should also allow a workspace member to request the option to downgrade to a department or even a personal workspace when the number of workspace members go below the minimum required for the corporate workspace.
E-mailing notes back and forth is not a very efficient way to collaborate with workspace members. The number of e-mails you receive grows if you do not set the system to discard them or store them at specific times. There might be a delay in getting the reply after you sent your e-mail due to heavy network traffic or outages at some point of time.
Instant messages are not a very good idea either. The messages you see are in sequential order. It gets to be cumbersome to try to scroll back to find out what a person said, especially when several people are on online almost at the same time, each one competing for time to write a message.
One solution is to have the Communications Center to centralize communication, maintain contacts lists, and categorize your e-mails on the same common message board. You can attach files, sounds, and images to messages like you can with e-mails. For the corporate workspace level, you can start a forum on project issues such as integrating projects with conflicting objectives and goals. In either case, you can give members security options to ensure the intended recipients with proper security credentials will open and read the messages and participate in the forums.
You can also use the center to share files restricted to the selected few for private use or available to all depending on your security criteria. It is the place that you can determine what files can pass through your firewalls. If you are sharing files within the same location, it might be better to save your small files from one computer or server on a USB-based portable device, carrying the device,and copying the files on another computer nearby.
Now I come to the most interesting part: Ajax libraries of service components. To help developers get the most out of the workspace when developing an application, you should set up three library types for the workspace: reusable service components, extracted service components, and discarded service components. Each file from all library types except the libraries of discarded service components must be labeled with version numbers. You must ensure there are no unacceptable dependencies of one service component for other components and remove all redundancies.
You can get free industry-wide Ajax libraries from the Internet, particularly from the OpenAjax Registry, and you can build or modify code for use on your workspace. The client-side libraries primarily consist of JavaScript code, while the server-based libraries can map server database results to JavaScript equivalents and reduce the size of JavaScript code. You may want to use the workspace to combine free Ajax libraries, as long as the agreement to use the library permits you to do so.
One example of a free stand-alone Ajax library is the Microsoft® Ajax Library 3.6, which lets you build client-side Web applications without using ASP.NET. The client-side library in ASP.NET Ajax can interact with several programming languages. PHP for Microsoft Ajax Library allows PHP developers to interact with Microsoft's client framework.
You need to assess all project risks to determine if the projects are within acceptable levels of risk. If your assessment shows risks are high, you will need to restructure your project, so risks can be mitigated to more acceptable levels. It is quite possible at the beginning of the software development life cycle, that the project is within the acceptable levels of risks, but as the project moves to higher levels of the life cycle, the risks slowly reach the threshold of acceptable levels.
When the risks begin to go beyond the acceptable level later on in the life cycle, two questions emerge: First, how do you restructure the project in later stages of the life cycle so you can mitigate the risks? Second, how do you foresee at the beginning of the life cycle that the project currently with low risks will have excessive risks later on in the life cycle?
In answering both questions, one solution is to conduct risk assessment at the beginning of the life cycle. Start with identifying the assets you have. You do not need to identify all assets. Just identify the assets that need to be protected for a project, the people you work with, the documentation you need, the facility you work in, and so on. Just make sure you divide the assets into identifiable categories so you can find them to make changes in response to new technologies, a new company direction, or new regulations.
Next, identify vulnerabilities your project could have. You need to show how hackers or other threat agents (for example, icy storms, floods, disgruntled employees, unauthorized access, software developer error, power failure) could exploit the absence or weakness of safeguards or countermeasures for the project. It is best to assign numerical probability values to each asset to determine the level of risk—a loss potential or the likelihood of a threat agent taking advantage of a vulnerability and the resulting business impact (for example, in dollars and hours). Qualitative probability (low, high) values can be difficult to quantify.
Changes in the quantitative probabilities serve as the basis for changing the prioritization of risks and the impact estimates . The higher the priority, the higher the risk probability value is. If the project is working with a new technology, is using a new development methodology, or even if there are new, relatively unknown team members with high turnovers, these need to be listed as potential risks to the projects on the workspaces.
Prepare a risk management plan
After the project risks are quantified, you should prepare a risk management plan to mitigate each significant risk, such as determining what metrics to use (for example, Annual Loss Frequency) or how you should use the ROI for implementing a safeguard for an asset, and develop a disaster recovery plan. Include in the plan the residual risks, the remaining risks after security controls have been applied. The final step is to formalize your findings into a risk management plan with established metrics, and track the top risks on your workspace week by week.
You can set up a pilot study in one workspace, and even one spanning across several workspaces, to develop an application with other team members and test if the application would work properly. After the problems are resolved you can integrate the application into a portion of your enterprise system.
One instance of using the pilot study is if you want to reuse an Ajax template or module from a team member of a project other than the one you are currently working on. This is useful when you want to avoid developing a project that has similar functionality to other projects. In either case, you can look up in a discoverable service directory which project a team member is working on or has worked on, and the objectives and goals of each project.
In another instance, you could use a workspace to share a set of scripts on the workspace for other team members to view and suggest changes to them for use in the pilot study. The pilot study can help you find out what additional training developers may need to get the application in the study to work properly.
You can use IBM Rational® Web Developer WebSphere® Software to build Ajax applications and IBM Rational ClearQuest on your workspace for defect and application tracking. Just make sure the amount of workspace is enough to cover logical resources that you might need to share the workspace with others building the application for a project.
This article has given you an idea to plan ahead to manage tasks with common Ajax workspace. Potential users' demand for better management of tasks when developing and integrating Ajax applications presents a challenge for the developers and other members of a project team. But, you can help make your job easier by the use of common workspaces at three levels: personal, department and corporate. Being aware of and resolving the issues of using Ajax libraries and potential project risks can make your workspace teams' experiences trouble-free.
Learn
- Read more about how Mark Pruett uses an Ajax
library as one of the approaches to create a reusable Ajax weather badge
(widget) in his article, "XML
processing in Ajax, Part 1: Four approaches (developerWorks, March
2008).
- Find information about Ajax news and projects
at the Open Ajax home page.
- Want to look up industry-wide Ajax libraries?
Find them in the OpenAjax
Registry.
- The Work with Web services in enterprise-wide SOA series by Judith M.
Myerson offers information on how to work with Web services in enterprise-wide
SOAs.
- Want more information on Ajax tools? Read
about them in "Survey of Ajax tools and techniques" (developerWorks, July 2007).
Discuss
-
developerWorks blogs:
Get involved in the developerWorks community.
Judith M. Myerson is a systems architect and engineer. Her areas of interest include open source tools, middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, performance management, RFID technologies, and project management. Judith is an IBM developerWorks Contributing Author through the IBM developerWorks Author Achievement Recognition Program.





