Planning for Web Services: Gathering a Team
If you want to be successful in doing anything in life, you must plan. With real estate, you hear the often-quoted phrase, "location, location, location." Well, similarly, with any software project (Web services included), an appropriate phrase to use is "planning, planning, planning."
For example, you must consider hardware, software, and personnel resources. You also have many design considerations, such as session state and assembly versioning, to review. Additionally, you must plan for some organizational policy considerations, such as disaster recovery. This article explores the personnel requirements for a successful Web services project.
Evaluating knowledge levels
Determining personnel requirements for implementing or building Web services projects is a very difficult thing to quantify because your personnel needs are affected by the following:
- Skill level: Do the people that will be building your Web services have enough experience to easily grasp the concepts of Web services? On one hand, having an experienced employee may help speed development time. On the other hand, an inexperienced person may be able to grasp the concepts behind Web services quickly because there are no preconceived ideas.
- Training: If your IT department folks are not familiar with Web services at all, they may need to go to training. Training can be a good thing, but it can also affect time and budget. Be aware of this when evaluating your personnel resources. Likewise, if you implement Web services on a Linux platform instead of a Microsoft platform, it may seem like the cost of implementation is cheaper; but in fact, you'll have to train your personnel to support Linux. Microsoft has actually done studies to prove that, because of training (and also implementation), the cost of a Web services project is less expensive on the Microsoft platform.
- Web services knowledge: If every person on your IT staff has kept up to date with some of Web services technologies, these people might be a very good resource to place on a Web services project, as opposed to someone who needs to learn the concepts. Just as with training (listed in the last point), the lack of knowledge of Web services on a Linux platform tends to increase the cost and time-to-market with your Web services project over the Microsoft alternative platform.
- Business knowledge: For your new Web services projects, you must consider the business knowledge of your IT personnel. In other words, do they understand exactly what the business problem is, what needs to be done, and why it needs to be done? Furthermore, do they understand the business timelines and reason for those timelines? If the IT personnel understand all of the these things, this knowledge will go a long way to shortening the learning curve and timelines for the project. Having IT personnel understand the real business behind the solution is invaluable.
Identifying the roles
Because Web services technology is very new, you may find it difficult to locate someone with enough experience to implement your Web services quickly. Additionally, it may be tough to find someone who can manage such a project, especially a complex one.
Also, as with all software projects, it takes a whole host of skilled and responsible people to pull off a Web services project, including the following:
- Executive sponsor: Responsible for promoting and approving the project.
- Project manager: Manages the entire project to make sure that it stays on track, on schedule, and on budget. Sometimes the project manager will also assign resources.
- Resource manager: In larger IT shops, sometimes a resource manager is employed to manage the resources and skills necessary for projects. This person can effectively place the same resource on multiple projects simultaneously, which curbs overall costs.
- Designer/Architect: Designs the Web services solution, considering enterprise issues, security, disparate data, disaster recovery, and so forth. The designer/architect may also be responsible for planning the hardware and software environment.
- Network engineer: In some organizations, manages and designs the internal infrastructure, including the configuration of hardware. Not all organizations have the network engineer plan for hardware; sometimes the designer/architect does it.
- Developer: Develops the software.
- Tester: Tests the software.
Before embarking on a Web services project, make sure that each member of the team understands the goals of the project, what Web services are and what they aren't, and why you are implementing the solution.