,

NGP Deployed

The Next Generation Process is a paradigm shift to make practices first class citizens. We no longer talk about entire processes, but the individual practices that make up a process. Practice definitions are defined separately and composed to form the process for the project team. Practice definitions can be transformed into formats that are readily consumed by vendor specific tools. Practices are submitted to an ecosystem from which development teams can consume them (using NGPI). Practices are automated, not only to provide contextual guidance to the development team, but at the same time reduce the effort required to undertake administrative tasks.

Practice Composition and Transformation

From our experience, we find that software development processes are never adopted wholesale in their entirety. Most project teams are prudent and only want to apply new techniques to areas in which they are weak.  The challenge then is how to assimilate these new “parts” into their existing processes.  The next generation process separates organizational work processes from development practices so that project teams can easily assemble their own processes incrementally – having just the right amount of formality and control at each point in time. This is illustrated in Figure 1.

The horizontal axis in Figure 1 represents time (left to right) from project start-up. The project process starts in a very agile and lightweight manner with a base process (which we call a Kernel), that facilitates activities such as task allocation and assignment as well as issue tracking. To help the team with conceptualizing the solution, the Product Essentials practice is soon incorporated. This is followed by applying Use Case Essentials to refine the requirements of the desired system. As the project team gains clarity of the requirements, some formal tracking of requirements changes becomes necessary. As the project team proceeds with establishing the architecture, they might apply Architecture Essentials. Since the project might involve web services, further guidance is provided through the Service Oriented Architecture practice. Having an understanding of the system’s scope and complexity, the project team might wish to implement the system and thus apply Iterative Essentials to deliver the system incrementally. At this time, defect tracking becomes necessary too.

Figure 1 - Growing Process

Figure 1 - Growing Process

The example above illustrates the case for a “new” development. Legacy enhancements, outsourced development, etc. might incorporate different practices and in a different sequence. The idea is to start small and add what is necessary practice by practice. IJC defines some of these foundational practices to get project teams started quickly. Project teams might even define and incorporate their own as they gain more understanding of the project.

The incorporation of practices into a project will require some kind of project management and process delivery environment. The Next Generation Process Infrastructure (NGPI) provides this environment in a platform independent manner with an API to gradually incorporate more sophisticated tooling as necessary. This is illustrated in Figure 2.

Again, the horizontal axis in Figure 2 represents time (left to right) from project start-up.  The project team begins with a small vendor-independent development environment to execute the Base Process and the Product and Use Case Essentials practices. This environment is provided by IJC’s Genie-Aladdin application. Genie-Aladdin is open source and is integrated with IJC’s Next Generation Process Content. IJC has undertaken to make Genie-Aladdin sufficiently comprehensive to deal with a good range of practices, but for more sophisticated projects, vendor specific tools will have to be used. Figure 2 shows the incorporation of vendor specific modeling tools, project tracking and active guidance tools into the development environment as the lifecycle unfolds.

Fig 2 - Growing the Development Environment

Fig2 - Growing the Development Environment

Genie-Aladdin’s ability to assimilate vendor specific tools is founded upon an API for practice definition and execution. This API is based on XML and HTTP which makes it extremely easy to scale the development environment as the project grows.

Practice Ecosystem and Interactivity

It is not easy for a single person to author and maintain an entire software development practice without collaboration.  What is really needed is an environment that allows the entire community to contribute practices and guidance for the consumption and critique of other members.  We are talking about an ecosystem where everyone is a provider and consumer of software development practices. At the same time, we also recognize that every organization has their own specific practices that are confidential, which they do not wish to disseminate outside the organization.

Our solution for the ecosystem involves a federation of practice servers. Some of these servers can be deployed in-house and protected within the organization. Other servers are located on the world-wide-web. These practice servers are connected by the Next Generation Process Infrastructure (NGPI).

Fig3 - NGP Infrastructure

Fig 3 - NGP Infrastructure

The success of the Next Generation Process ecosystem depends on its popularity – how frequently content is contributed and consumed. IJC will take great care to make this as easy as possible and hence are planning no complex tools to author process content. All that is needed is the web browser.

As mentioned, we want to make process content as easily consumed by practitioners as possible. This means that process content must be compact, easily handled and disseminated. Process descriptions and guidelines as they are expressed today tend to be overly static and heavy-weight. They are written like books and books have the habit of ending up on shelves to collect dust! Good process materials are useful and kept close at hand.

Small “hint-cards” are loved by students the world-over to capture key and salient syllabus points in a readily consumable, transportable and tactile way.  At IJC we have applied this concept to disseminate process content (see Figure 4). Cards are attached to the work items for which team members are responsible, to provide ready help and guidance. Project leaders/coaches can scribble additional information on these cards to provide even more contextual guidance. What’s more there fun!

Fig4 - Practice Interactivity with Cards

Fig4 - Process Interactivity with Cards

Electronic versions of cards are created and delivered by the Next Generation Process Infrastructure (NGPI). Figure 5 shows a development version of the Genie-Aladdin environment. In this environment, cards can be placed anywhere on the desktop. Every part of each card can be modified directly and updated to the practice servers. It mimics physical cards closely and has the advantage of being electronic thus permitting easy tracking and management.

Fig 5 - NGP - User Experience

Fig5 - NGP User Experience

Practice Intelligence

Having process content extensible and consumable by multiple vendor specific tools and having an ecosystem to readily contribute and consume practice content, will play a strong part in the agility of a project team. But processes can be much more. Instead of us following a process, why not automate the process and make the process do work for us?  We can then concentrate on the more ‘creative’ part of software development, leaving the mundane administrative work to the development environment. Herein lies the value of using intelligent agents as our ever-present helpers!

Much of the work on using intelligent agents for software development has been pioneered by our sister company – Jaczone – in their flagship product WayPointer. WayPointer is an add-on to your development environment that introduces intelligent agents to provide guidance to the development team. WayPointer has been made available as a commercial product since 2001. At that time, the Rational Unified Process (RUP) was one of the most mature process definitions at hand. Consequently, the intelligent agents were designed based on RUP. The reason why we highlight WayPointer is because it is perhaps the only available product that demonstrates what a smart process is. Its capabilities will be incorporated into the Next Generation Process Infrastructure.