Kovair is now part of SurgeONE.ai Same experts, even more power.

Month: April 2014

Integrate and Process Enable your ALM Ecosystem

Introduction

After several CIO Summits, mergers and acquisitions and company restructures a development group ends up with tools from various vendors as well as internal tools. How do you manage a software development project across a number of functionally, geographically, and technologically distributed groups, each with their favorite set of tools, but a complete information island as far as other tools are concerned? In this whitepaper, we will investigate the problems created by the various development tools in a typical development shop due to the lack of integration and processes across them. We shall also show how to make several disconnected tools more effective and work as an Ecosystem achieved through an integration platform as well as a way to implement and automate processes across these tools.

Consequences of Unconnected Tools

When Tools used by different groups become silos of information, the following problems occur in various degrees of severity.

  • Redundant and often conflicting information in multiple tools Disjointed tools have a major limitation of automatically consolidating cross-tool information. Manually consolidating the changes happening in different tools are tedious, error prone and hence rarely done consistently.
  • Lack of process across the tools Even for an organization with mature processes developed and automated for support, defect tracking, and requirements management, it is highly unlikely that these processes are integrated and synchronized with each other. In addition, tools operating in silos also restrict an organization to implement an automated centralized process across tools and teams.
  • No Traceability or Relationship between information locked in individual tools Lack of Traceability across data residing in different disjointed tools creates a limitation in terms of release predictability and coverage. The relationships can be of various natures like Successor/ Predecessor, Contains/ Belongs to, Parent/ Child and more.
  • Manual consolidated reporting In case of disjointed tools, it becomes a daunting task for managers to gather information from different tools and teams for creating different reports for better visibility of the stakeholders on release progress.
  • Lack of visibility All the information locked in an individual tool, specifically used by one particular group, remains invisible to the rest of the organization.

Multi-Tool Integration

A SOA-architected ESB based integration platform allows multiple tools to integrate seamlessly. It also offers a significant saving in integration effort and cost over ad-hoc point-to-point integrations since the number of distinct integration points for bus architecture is ‘n’ which is substantially less than n*(n-1)/2 for point-to-point integration for ‘n’ number of tools. Some of the major advantages of ESB platforms are:

  • Bi-directional synchronization between artifacts of different tools hooked into the bus This two-way synchronization is necessary to keep all the information live in both the tools.
  • Synchronizes not just the data but also relationships, comments, and attachments associated with the items Synchronization of data is just the starting point of any meaningful integration. A bigger value is gained by synchronization of the relations among these data. Comments and attachments associated with the items are also synchronized.
  • Allows business rules to decide when and what to replicate across different tools. For example, not all Requirements need to be replicated from the Requirements management tool to the Test management tool but only those which are approved.
  • Enables federation of data in terms of getting the data from other repositories on-demand It is not necessary or even desirable to have the entire data from all tools to be replicated to the other tools. An on-demand access of data allows minimization of the data replication and network traffic.

Process Enabling Integrated Tools Ecosystem

Integration without a process is set up for eventual failure. Process without automation is a disaster waiting to happen. When multiple groups at different locations, using different tools are involved without a process, it is difficult to control and manage information creation and flow. Moreover, even if a detailed guideline and rules can be created on paper, asking people to follow them is a tall order. The best solution is to define, implement, automate and enforce processes using state of the art process automation tools. And then appears the biggest challenge. Very few development tools have built-in process engine. And those tools that have it, are typically state based engines good for implementing a simple linear workflow, but not powerful enough to implement complex real-life needs. In addition, process capability across integrated tools is a requirement very few development tool vendors addresses even across their own tools sets.

A Task based process automation engine achieves the following functionality specifically required for software development processes:

  • A Task based Process engine allows sequential as well as parallel workflow paths with path merge capability
  • A Task based Process engine allows complex branching logic to accommodate automatic control of flow
  • A Task based Process engine gets events from various tools as well as triggers actions for them
  • A Task based Process engine enables both a micro as well as a macro process by synchronizing among various micro processes

How to process-enable myriads of tools those do not have any built-in process engine or even the notion of a process? Moreover, how to make them participate in a larger macro process with other tools each having different micro processes? About a year ago this would have been an exercise in abstraction without a practical way of implementation. But today, an Integration Bus Technology with built-in Task based Process Engine can achieve this quite convincingly. This needs some interesting interactions between integration and process within a single framework. We will call it an ‘Integrated Process Framework’ (IPF). IPF should support the following functionalities:

  • Ability to map between Objects in the Integration Bus and External tools The IPF needs a way to define multiple Objects of various kinds and be able to map them to the objects in the External tools including attributes, methods, and policies.
  • Ability to create processes for each different Object The IPF needs a way to define Process for each such Object. The process is not just a workflow but also business rules working in tandem with the workflow.
  • Trigger actions at a specific tool based on Events and Process Steps at other Tools A Test that is tested ‘Failed’ in the Automated Testing Tool and automatically puts the result against the Requirements to which the Test traces back and also triggers a process for a new defect and assigns to a developer for fixing it is an example of a process across three different tools integrated through IPF.
  • Support tools located anywhere behind the firewalls An IPF based on the Web Services technology will allow it to be Firewall-friendly and work with tools running anywhere and on any technology platform.

Introducing Kovair

Kovair over the past few years has created a Multi Repository ALM and IT Platform which is the closest to the IPF described in this paper. With the industry leading Task based Omniprocess Workflow Engine and industry’s only Omnibus Integration Bus, Kovair is being used both by Fortune 100 as well as smaller companies to create bridges between various tools used by both Development and IT groups. In addition to the framework, Kovair also has built-in IT and Development Management tools that include Helpdesk, Change, Incidence, Problem, CMDB, Requirements, Test, Issues and Risk Management. Kovair is used by various customers for standalone function-specific tools such as Requirements Management, Test Management or Issues Management with the built-in process capabilities, as well as with its Omnibus Integration bus to integrate various third party tools both in the ALM and IT Management domain.

Process Tool Selection Guidelines

Introduction

This article discusses Process tools for Software Development and IT Management and what are the major functionalities, one should look for in such tools. There are not many tools which can be categorized as pure-play software development process management tools. Most of the process tools are included as part of the development and management point tools. For example, a bug tracking tool may have a process automation engine to define the bug fixing process. Similarly, a Help Desk tool may have a process to manage help desk. There are a few generic process tools focused on different Development and IT processes within the same tool. These multi-application process tools which facilitate the implementation of multiple processes like Requirements Management, Issues Management, Test Management and Release Management processes are becoming more and more popular. The generic process tools broadly fall into two categories – Methodology Specific and Methodology Agnostic. Methodology Specific tools are designed around a particular methodology. Their processes are implicit and embedded in the user interfaces which are specific to the methodology. There are a few commercial tools available which are specific to methodologies such as SeRUM, Agile, Phase-Gate, etc. The Methodology specific process tools have an advantage of quicker and more faithful implementation of the methodology. The disadvantage of such a process tool is its limited adaptability, especially when the organization wants to deviate from the strict definition of the methodology. A methodology specific process tool has a little room to incorporate deviations from the methodology it originally intended to implement. Since, over the long term every organization modifies its processes to reflect changes in the organization, business and technology environment, methodology specific process tools have a shorter shelf life. On the other hand, a Methodology Agnostic Process tool is more generic and as the name suggests, can implement a wide range of methodologies. Since it is not designed for any particular methodology, it may take a longer time to implement a methodology unless it comes with some built-in templates. For organizations following a proprietary or a modified methodology, a Methodology Agnostic Process tool is the best option. The investment in a Methodology Agnostic Process tool goes a long way as it should be able to accommodate the changes in the business and technology scenarios in the future years. In this article we will discuss the general features and functionalities we should look for in a generic Methodology Agnostic Process tool which can be used for a wide range of processes in different life cycles.

Task based vs. State based processes

Most of the development tools have state based process capabilities. A state based process allows the process to be in one state alone at a given time. This is good for a simple process, but difficult to implement for a complex process which requires parallel activities. On the other hand, a Task based process supports multiple parallel activities in the process. This allows tasks to get assigned to multiple process owners where each may be involved in doing different things.

Multiple independent processes for each application

For certain types of application development, support of multiple processes is important. For example, a Helpdesk application may have different processes for different departments. It is possible to create a single monolithic process with branches for each different departmental process. However, with a tool that supports multiple independent processes for a single application, it is easier to design, develop and manage different processes in a more structured way.

Visual drag and drop process designer

Different process tools have different user interfaces to define the process. The design interfaces include graphical drag-and-drop interface, state tables, spreadsheet-like interface and the ones with different levels of coding and scripting support. A visual drag-and-drop interface helps process designer to visualize the process as it is being created. The process is faster and easier. A visual drag-and-drop process designer also reduces the implementation and maintenance cost of a business process in contrary to the code based process engine.

Task assignments to multiple users/roles based on policies

One should be able to assign a single activity to multiple owners in a single step. In addition, there should be ways to support queuing of tasks, load balancing, task sharing by multiple owners and independent owners of a single task among others. For example, sending a change request to a change board of 5 persons should be achieved in a single step rather than 5 different steps. A State based process cannot support any of these needs.

Conditional branching

This is one of the basic requirements of a Process tool that is missing in many tools in the market. Conditional branching capability of a process tool allows automatic selection of the next activity based on the complex conditions defined in terms of various variables of a particular item. For example, an Issue follows a particular path if it is a defect and, a different path if it is an enhancement request. This routing should automatically happen based on the field values.

Merging/Joining with quorum-based forwarding policy

Multiple parallel activities in a process often need to be merged/ synchronized to move the process forward. A quorum based merging allows the process to move when not all but a pre-defined percentage of the previous activities are completed. For example, when a Requirement is sent to a review board of 10 persons, the quorum based merging will allow the process to move forward if 80% of the review results are completed and have passed.

Process modification without affecting running processes

In any organization, processes change with time. There is no single ideal process which can address all needs for ever. One should be able to modify processes as the old process continues to be running for the existing items. This allows the managing of the process changes much easier and allows for a smooth transition between the old and the new process.

Restart process at any time for multiple items

When a process is changed one may need to run the new process for the existing items. With some advanced tools, it is even possible to start at a particular step within the new process rather than at the ‘Start’. This allows users to make the process run for an item from the point till which it has been executed in the previous process.

Process versioning

This is especially needed for any organization that wants to implement CMMI or similar compliance processes. Just like any change management, it is important to track the changes in the process by tracking the versions. So, look for a tool which has built-in versioning capability for the process.

Synchronization among multiple processes

This feature may not be necessary for a single application process tool. However, the need for this feature is critical to a multi-application process tool that allows implementation of multiple applications like Requirements Management, Issues Management, Test Management, and Release Management..For example, a Release Process should wait for the integration Test to start until all the Requirements and Issues included in that Release are implemented/ fixed and unit tested.

Process activities triggering actions in external tools

Most organizations use various development and management tools from different vendors. Due to the lack of integration, and built-in process in most of the point tools, processes gets implemented in isolated pockets of the lifecycle. The process tool should be able to trigger an action in another remote tool and help in achieving cross tool process implementation. As you understand from the above process tool selection criteria, it is important to spend some time thinking and discussing about the process needs with your vendors. Even if your organization is not currently using any defined “Process”, you should do this before making a final selection of ALM tools. Ignoring this fact may lead to an investment in a wrong tool that may not help the organization as it grows and matures in its desire to implement a process methodology.

Kovair Value Proposition for Tools Integration

Introduction

Kovair, a technology leader in the domain of Integrated Applications Lifecycle Management – ALM offers several solutions such as Requirements Management, Test Management, Issues and Change Management. Kovair is known for its following four technology value propositions, no matter what specific application or solution you want to build with it. 100% web based solution that supports multiple major browsers IE, Firefox, and Chrome with no client-side software installation. Drag and drop interface and easy codeless configuration of desired applications making it a very viable and flexible long-term investment having very high ROI. An excellent Task based, built-in Process, or Workflow Engine called the ‘Omniprocess’ that allows to configure and maintain any business process within the tool using a drag and drop visual designer. A SOA architected Enterprise Service Bus ‘Omnibus Integration Platform’. It facilitates integration of different tools or software by building thin adapters for each of them. It also allows bidirectional data transfer between the tools. Other than just synchronization of records between tools, Omnibus also allows synchronization of relationships, comments and attachments associated with each and every record. With the above basics of Kovair succinctly outlined, let us focus on the value propositions of the Enterprise Integration Bus – the Omnibus Integration Platform in this particular paper.

The Omnibus Integrations

Almost every organization has separate teams for working on different phases of application development. These teams work in silos and prefer to use their own set of tools popular in their own domain. This has made all the phases disjointed from each other and has made the process of tracking and maintaining the progress of a release very tough. Kovair helps to resolve this communication issue in two dimensions. For seamless communication between multiple phases of Application Lifecycle Development, Kovair offers a 100% web based single data repository where data of all phases can be maintained, traced and tracked for better predictability and ensuring quality at every step. However, this is not the case in real life as most organizations use best-of-breed tools from multiple vendors which seldom have interconnectivity and data transferability unless point to point integrations are carried out. Even different tools from the same vendor are not typically connected with each other. Here the second dimension of Kovair’s integration capability comes into play.

To eliminate the need for point-to-point integrations – where integrating 5 different tools requires 10 total integrations, Kovair developed the SOA based Omnibus technology. In a bus or hub like architecture for integrations, 5 tools integrations would require only 5 adapters, thus bringing in considerable savings in both the development and maintenance costs during upgrade to the newer version of the tools. Kovair’s Omnibus Integration Platform is technology, vendor and location agnostic. This means Kovair can be integrated with other tools that may be using Oracle database or running on a Linux platform, or are in different locations. Kovair’s web based architecture facilitates remote communication and collaboration among tools and their users. In today’s multi-location and outsourced development environment, it is necessary that a Requirements Management tool based in Boston communicates with a Test tool based in Bangalore. The Omnibus Integration Platform is very capable of delivering on this essential need. The following figure provides a visual representation of multiple integrations from Kovair that can be described as “Kovair Model” for ALM.

Tool Integration

The Advantages of the Omnibus Technology

The Omnibus technology has a few unique advantages that are enumerated below.

  • The Bus or Hub versus point-to-point integrations, as discussed above brings considerable savings in development and maintenance costs.
  • Web Services Standard or SOA architecture makes it open to integrate with any type of software from any vendor including homegrown tools or databases for integrations.
  • The data layer is separated from the business layer and as such no hard coding of business rules has to be carried out for the integrations. Business rules are configured for each application as desired by the user in a codeless manner.
  • Kovair Omnibus integrations enhance the process capabilities of other tools that do not have a built-in process engine.

The Competitive Edge

SOA based ESB architected Kovair Omnibus Integration Platform is backed up by a 100% web based central repository system. This gives manifold advantages to Omnibus in comparison to other competitors. The uniqueness of Kovair Omnibus Integrated platform is given below.

  • Proprietary SOA based ESB architected integration platform
  • Task and Web based Automated, Graphically Configurable Workflow with Notification, Eliminating manual hand-offs
  • Policy engine allowing users to configure business rules for –
    • Event based actions
    • Sending notifications o Perform scheduled activities
    • Escalate information
  • Helps to achieve cross tool End-to-End Traceability
  • Built-In Cross Tool Data Based Real-Time Reporting and Dashboards increases predictability and quality of a release.

Summary

For organizations having prior investments in multiple tools from vendors such as IBM, HP and Microsoft, Kovair offers an excellent value proposition to enhance ROI in two major ways. The first one is by providing the capabilities to integrate tools from any one of these or other vendors at a relatively low cost. The second one is by filling out certain gaps in point tools that may not exist at these companies. Kovair has a complete list of existing and planned integration adapters on its website.

Kovair Plug-In for Eclipse Development Environment

Introduction

Eclipse is known as an industry’s leading Open Source platform for Java based software development. Eclipse as an IDE (Integrated Development Environment) is mostly used by the developers. Today, with the growing involvements of multiple stakeholders in almost all phases of software development lifecycle, attaining collaborative development environment has become a mandate for them. This is, regardless of their geographical locations and job roles. One also cannot rule out the necessities of adopting disparate ALM tools, and often some of them are outside the scope of the Eclipse environment! Now, the question is ‘how do we enable Eclipse developers to share information back and forth with other stakeholders from within their familiar Eclipse environment?’ ‘Kovair Plug-in for Eclipse’, a platform for Eclipse developers, ensures collaboration among the stakeholders throughout the development lifecycle via synchronization among disparate ALM tools. While working with this Kovair plug-in, the access of Eclipse developers can be extended to the other artifacts like Requirements, Design Artifacts, Test Cases, Tasks, and Defects originating from diverse ALM tools without requiring them to leave their preferred IDE. Kovair plug-in for Eclipse is a dream come true for Java developers who wish to use a single tool environment, both for doing their primary development jobs and collaborating with other teams. This plug-in helps any organization to provide an enhanced platform for their developers, where its established processes, tools, and practices can be seamlessly integrated.

How does the Eclipse Plug-In Work?

Talking about the Kovair plug-in for Eclipse, the integration framework of Kovair, also comes into the picture as both are complementary to each other in terms of their functions. Kovair Omnibus Integration Platform offers an open and seamless integration framework backed up by a central repository with all essential ALM services such as collaboration, traceability, process automation, security, reporting and analytics based on cross tool data. The Kovair Omnibus enables enterprise organizations to make lifecycle tools active participants in the overall ALM process as part of an Service-Oriented-Architecture (SOA) based ESB architected platform.

Kovair has built an open ‘Omnibus Plug-in architecture’ that talks to individual tools integrated with the Omnibus Engine through Adapters or Connectors. The plug-in for Eclipse is also SOA-based similar to Kovair’s Omnibus architecture. Using Kovair Omnibus platform and its SOA based APIs, any organization can create its own set of plug-ins for their homegrown tools. Kovair plug-in for Eclipse extends the Eclipse IDE with menus to connect to Omnibus which represents an organization’s TIDE (Tools Integrated Development Environment). Eclipse users, generally the developers, can connect to Omnibus by using authentic user credentials in the Login dialog. After successful login, they can see the Projects and the Artifacts (for example, Requirements, Design items, Test Cases, Tasks, and Defects) in a tree-like format, exposed in an Explorer window. Without leaving the Eclipse IDE, they can navigate to see the list of Requirements, Test Cases, Tasks and other items. Though artifact items can be exposed to developers, the options to view, update, add, and delete items depend on their access privileges. Kovair plug-in for Eclipse, talks to the Omnibus Service through open APIs that collect data from integrated ALM tools. The developers are then able to work on them as per given privileges. Once the changes are made on the collected data from Eclipse IDE, Omnibus Service updates them in respective ALM tools.

Tool Integration

Fig: Kovair Eclipse Plug-in Interface

 

JUnit (Unit Testing tool) and ANT (Build tool) plug-ins available in Eclipse environment are also extended by Kovair. This facilitates Eclipse users to create new items like Defects in the context of a failed test case in JUnit and build failure in ANT.

Example Scenario

Let us consider that an organization XYZ uses Rational RequisitePro for managing Requirements, Eclipse IDE for development, HP QC for Testing, and Kovair ALM for Process and Project Management. The organization adopts a Tools Integrated Development Environment (TIDE) using Kovair Omnibus where Project stakeholders follow the sample lifecycle scenario as described below.

Tool Integration

Fig: Kovair Eclipse Plug-in Interface

 

The above scenario shows how Eclipse developers can collaborate with other teams or stakeholders throughout all the phases of software development lifecycle, and become a part of the overall process. Kovair plug-in allows them to do all these activities without leaving their preferred Eclipse environment.

Why Omnibus Plug-In for Eclipse

Increased Productivity

With Kovair Plug-in for Eclipse enabled, developers get easy access to Requirements, Design items, Test Cases, Defects, and other artifact items directly from within their IDE. These items may originate from different ALM tools, but developers can simultaneously operate on all these items from their native environment. Developers can even update the status of defects from the IDE, without logging into the defect management system. The plug-in also reduces a lot of training time for Eclipse users that is otherwise required to learn different tools.

Efficient and Timely Data Capture

Synchronized activities of stakeholders and timely completion of their tasks matter a lot for a software development project to be completed within a given deadline. Developers often find it difficult to submit their work results in a timely manner. This happens when they need to switch between tools for reporting, or completing their tasks. It has been observed that developers are less interested to leave their familiar IDE and work in different other tools for some other purposes. This attitude puts off tasks that require access to a different tool to the last minute. More often than not, they forget to accomplish the tasks. By virtue of Kovair Plug-in for Eclipse, the users can develop codes, do code validation using LDRA, perform unit testing using JUnit, create software builds using ANT, and report the results immediately – without leaving the Eclipse IDE! This is a definite plus for capturing work outputs more efficiently.

Improved Process Participation

Generally, developers express concerns about introducing a new process to their existing work system. They perceive process as something having overheads that puts extra workload on them beyond their regular jobs. With Kovair Plug-in for Eclipse, they can easily view the process and tasks from within the IDE, work on them, and readily mark the tasks as completed when finished. In this way, they can become a part of the process – even without knowing it! Kovair process automation framework does the job from behind the scene. It generates tasks as per process design, and then once a task gets completed, it automatically generates the next task for appropriate stakeholders. Kovair’s built-in Process Engine, and Plug-in for Eclipse, together remove the complexities of enforcing automated process, and ensure better acceptance by all stakeholders.

Established Cross-tool Traceability from Eclipse

Kovair Eclipse Plug-in allows users to establish traceability links with artifacts from different tools. The links are stored in Kovair and are visible to all Plug-In users. This enables users to link their code artifacts like files, classes and methods to Design Elements in the modeling tool or with Defects in the defect management tool. Useful information like which method was modified to fix a particular defect can now be easily found by all Kovair users without even leaving their Eclipse environment.

Improved Quality

Accomplishing tasks with quality outcome often requires a wider vision and an extended accessibility to related information or knowledgebase. In an IT environment, linked information from disparate tools need to be exposed to the right stakeholders at the right time – for them to come up with ‘Quality’. This plays a big role in the success of IT projects. By virtue of Kovair Plug-in for Eclipse, developers have ready and real-time access to the Requirements and Test Cases from within Eclipse IDE. Thus, they remain more informed to perform better coding and testing activities. In addition, with Omnibus plug-in support, “Review Tasks” created in other Project Management tools show up in the IDE environment which allows Project Managers and Team Leaders to do their review jobs within the IDE and submit the results immediately. All these activities result in the creation of a better quality software.

Detail Metrics

Using Kovair Plug-in for Eclipse, developers, testers and managers are able to capture a lot more micro level data like code analysis results, unit testing results, test coverage results, build results, and other detailed information. Project stakeholders are also able to view the analysis and reports based on these detailed data in Kovair, or any other Project Management tool integrated through Omnibus.

Enhanced Visibility

Kovair Plug-in for Eclipse allows developers to send regular reports on their coding, unit testing, bug fixing, and review tasks. Since the stakeholders work from within their familiar IDE, the scope of recording granular level information is higher. For example, by virtue of Omnibus integrated framework, data from associated tools can be transmitted to a Project Management tool for creating real-time reports. This results in greater visibility of the Project Managers on the overall project status as well as progress details.

Kovair Plug-In for Eclipse Development Environment

Defining Requirements

How do you add a Requirement to Kovair?

In Kovair, you can define and add Requirement in the following ways:

  • Using Rich Text Editor: The formatting includes font, color, table, bullets, numbering, and embedded images. Multiple Undo-Redo, adding symbols and embedded links to other Requirements are possible in Kovair. Additional Rich Text custom fields can also be defined in Kovair.
  • Submitting from your Corporate Website or Portal
  • Sending Email
  • Importing from Microsoft Word Document
  • Importing from Microsoft Excel Spreadsheet
  • Importing from a CSV file in configurable format
  • Importing from any third party Requirement Management and other tools to define Requirements and real-time synchronization of data with Kovair.

Are there specific attributes for each Requirement?

Yes, there are few System defined attributes for Requirements. But more importantly, Kovair allows you to create as many user-defined or Custom Fields for the Requirements. Attribute Fields can be created based on the following data types some of which are typical but others (highlighted here) are unique to Kovair and lend to the power of Kovair configurability: Date, Date Time, Float, Float with 2 Decimal, Integer, Custom Lookup (Single and Multiple), Multi-Line Text, Single-Line Text, Calculated Field, Grid Field, Rich Text, Electronic Signature Field, Summary Field, and Relation Type Field.

Can Requirements be imported from Word documents?

Kovair supports import of word documents in two different ways. Word documents can be uploaded in the application and records can be imported from the document by parsing the document. Advanced level word import can be done by installing a word add-in at client machine.

Do Requirements maintain Allocation of unique ID number (unique across database)?

For each entered requirement, Kovair generates a unique ID number. This number is unique across databases and projects.

Are Import and display of figures within tool allowed in the context of other Requirements?

Kovair Requirements Management supports import and display of figures. These figures can be embedded within description of a requirement. They can be also maintained as attachment of requirements.

Managing Requirements

Can Requirements be prioritized?

Yes, prioritization can be done manually by setting the Priority attribute for each Requirement, or it can be done in a more structured and dynamic way:

  • Collaborative Ranking: Using this feature, the Evaluators can individually rate a Requirement based on certain criteria. This helps in arranging the Requirements in the Priority List based on the score that each one has received from the evaluators during the evaluation phase.
  • Decision Support System (What If Analysis): It supports business and organizational decision making activities and helps the organization to prioritize requirements based on certain constraints into different buckets, e.g. Releases.

Can we define a workflow for Requirement revision process within the product?

Yes, Kovair application has a built-in drag-and-drop Visual Workflow / Process designer that allows users to define a Task-based Process for not only Requirements but for each of the phases of the Application Lifecycle and automate them. During the Process execution, it automatically generates Tasks for the Roles or users as defined in the Process. Here is an example of a custom Requirements revision process:

Can the Requirements be edited in bulk?

Kovair provides this ability through multi-edit screen. The bulk edit screen of Kovair provides facilities like multiple cell selection and filling them with a value just like the fill feature of MS Excel.

Should the tool support complex display filters / queries against multiple fields for presentation of a subset of Requirements?

Kovair has support for different types of filters ranging from simple to complex. The advanced filter option of Kovair allows users to create expressions or formulas using different attributes of requirements along with constant values.

Does the tool support copy / paste functions for common documentation objects and convert them into Requirements descriptions?

Kovair provides a Rich Text Editor for entering descriptions of requirements. Being a web based application, copy-paste option of texts from other documents are supported by all browsers. Insertion of images are possible only when Chrome or Firefox are used because IE does not support this feature. MS OLE Objects are not supported.

Is there an ability to define diagrams within tool?

Kovair has support for defining diagrams within the tool. Different types of diagrams like UML, Wireframe, UI Mockup, and Flowchart are supported.

Can we create user defined Requirement types?

Kovair has extensive support for custom fields. There are 21 different types of fields under 6 different categories. Any attribute of requirement can be defined using these fields. Once defined, these fields can be used for any operations like filter, view, process and others.

Is it possible for Requirements to be grouped by different attributes or relations?

Kovair supports both single and multi-level group by views where Requirements can be grouped as per different attributes of requirements.

Is there a visual hierarchy of Requirements?

Yes, there are a couple of ways this can be achieved – by having a hierarchical Requirements (by defining parent-child spatial relation) or by using other Traceability relationship. Using relationship Kovair allows multiple many-to-many relations and hence multiple visual hierarchy. A View or a Word Report can be created in this regard to show the visual hierarchy of requirements.

Can a Requirement have more than one parent?

If you are using the Sub Item functionality, one requirement can have only one parent. But if you are using many-to-many Traceability Relation Type field then the same requirement can be a child of multiple parent requirements – to whichever it is linked by means of the relation “Parent – Child Relation”.

What are the different Views possible for Requirements?

Kovair provides two types of views – one without description and another with description similar to a document. To view a list of Requirements, Kovair provides two controls – View and Filter. Using these controls one can define the visible columns, ordering, grouping as well as what rows one wants to see. Below is an example of list of Requirements grouped by Release, Requirement Type and by Priority. Users can create their own Views and Filters.

Document View of Kovair gives a flexible way to look at a subset of Requirement descriptions and some other selected field values sequentially in a document format. Any of the Requirements can be edited in-place. The descriptions are shown with full rich-text formatting.

Will the tool support Requirements with attachments?

Kovair supports three types of attachments like – File, URL and Note.

Can we keep track off costs (man hours and $) for each Requirement?

Yes, there are a number of attributes provided by the tool, out of the box, for tracking the cost (Planned as well as Actual) of each Requirement. For example, Planned Cost, Actual Cost, Planned Duration (in hrs.), Actual Duration (in hrs.), Planned Work, Actual Work, etc. Additionally, Kovair lets you create Custom Fields of various data types that also can be used in this regard.

Can we search Requirements database using keywords?

Kovair supports both keyword and id based search from database using the attributes of requirements.

Can we restrict two people from editing a requirement at the same time while online?

Kovair does not allow multiple people to edit a requirement at the same time. This gets imposed through implicit locking mechanism. When a user edits a requirement the record gets implicitly locked until the edit is complete. Users can also explicitly lock records till the edit is complete.

Traceability

Can we view the entire life cycle of a requirement – viewing all interdependencies along the way?

Yes, Kovair has extensive support for bi-directional traceability between artifacts. Kovair also provides unique capability of defining relationships between artifacts along with the cardinality between them. Kovair supports Traceability among the different entities i.e. Requirements, Use Cases, Test Cases, Issues and Releases by means of which you can link one entity item to another and establish a chain which can be used to view the entire Lifecycle of a Requirement.

Can we analyze the impact of any change in the Requirement?

Yes, with the help of relationships between artifacts, Kovair provides the capability of doing both proactive and reactive impact analysis. Users can easily find out the impact of any change in the requirement or on other artifacts associated with the requirement irrespective of the depth of their relations.

Can we trace a given Requirement to design documents in the version control history?

Yes, this can be achieved by means of Kovair Traceability Relationships.

Can we trace a given Requirement to a source file in the version control history?

Traceability to a source file in a version control software can be achieved by means of Kovair Traceability Relationships with the integrated version control system. Currently, Kovair is integrated with ClearCase, Perforce, TFS and Subversion and GIT configuration management systems. Customer preferences can determine the use of any one of these.

Can we trace a Requirement in a release to the “currently in-progress” tasks?

Yes, from the Processing History layout available with each Requirement, we can view the list of all the currently in progress tasks, specific to a requirement. If such a task is generated from the Requirement Process, then we can also view those in progress tasks from the Visual Designer of the process diagram available in the Process Status layout.

Can we trace a line of code back to a Requirement?

Kovair integrates with several configuration management tools. With some configuration management/ version control system e.g. Subversion, one can create a traceability relation between requirements and the lines of codes in the source files.

How can we view the Traceability Relations?

Kovair gives a number of different tools to view Traceability Relations:

  • Traceability View: This hierarchical textual view shows all related items as children of each item to multiple nested depth.
    requirement management tool
  • Traceability Matrix: This view shows the relation between the Requirements (and other Entities if they are defined) in a grid format. This view not only shows the relationship, but one can create and manage these relationships directly from the view.
    requirement management tool
  • Traceability Relation Diagram: This view shows the relation between the Requirements (and other Entities if they are defined) in a network diagram format. This view not only shows the relationship, but one can create and manage these relationships directly from view as well.
    requirement management tool

Can we have true associations between a Requirement and other documents/test plans/use cases?

Yes, Traceability Relationships can be defined among the above specified entities – Requirement, Use Case, Test Plan, and Design Documents, etc.

How easily will the tool integrate with other software currently in place here?

Yes, Kovair’s SOA based Omnibus Integration technology provides a vendor-neutral ALM platform which allows the integration of various ALM tools using Kovair Adapters. It ensures cross-lifecycle transparency, macro and micro-level processes automation, and correspondence of activities across the disciplines with bi-directional data transfers between tools.

Can we define use cases/user stories against a Requirement?

Yes, Traceability Relationships can be defined between the entities – Use Case and Requirement.

Can we associate test plans/specs to a Requirement?

Yes, Traceability Relationships can be defined between the entities Test Plan and Requirement.

Can we trace a line of code back to design documents?

Yes, Kovair’s integration with configuration management/ version control tools e.g. ClearCase makes this possible. Kovair has multiple adapters currently available for these integrations.

Collaboration & Notification

Can two or more users contribute to a set of Requirements at the same time and do collaborative review?

Kovair provides a collaborative platform for discussions as well as review of requirements. Users from different geographies can do real-time discussions in Kovair. It enables real-time communication between Analysts, Engineers, QA Members and DevOps Teams etc. via threaded discussions, notifications, & more.

Can users post comments directly in the tool as part of the Requirement review process?

Kovair has full support for Rich Text based comment. Users can provide attachments with the comments. With the help of business rules engine of Kovair, users can even get notified whenever a comment is posted against a requirement.

Can we have emails based on different events?

Yes, Kovair allows a robust event based notification system. Various events for Requirements Management are defined (e.g. Requirement Created, Edited, Comment Added, My comment replied) and for each event a custom notification mail may be created with macro variables which are replaced by contextual value during runtime.

Can we send emails based on complex condition?

Yes, Kovair has a Business Policy engine which allows you to automate many business rules. Using the Policy engine you can define complex conditions and multiple actions. The actions include sending notification emails along with create task, start/ stop process, and create traceability.

Can users subscribe for notifications when a given Requirement or a set of Requirements changes?

Kovair has support for subscribing to individual requirements. When a user subscribes to a requirement, any changes that take place in the requirements for satisfying that filter criteria, the user receives a notification. Kovair supports both textual and HTML based notifications, and the templates for the notification can be customized using simple mouse clicks without the need for coding.

Is it possible to assign different levels of permissions to users for different purposes?

Kovair has facility of providing access at various levels starting from enterprise level access to record level access. Based on these accesses, records can be selectively exposed to different set of users as per the business need.

Revision History, Versioning, Baseline

Is there a version control system in the tool?

Yes, Kovair distinguishes between Updates and a true Version Change to a Requirement. For versioning, Requirements trigger audit trails and traceability impacts. Each version also stores its contextual threaded Comments with all attachments. Kovair also allows branching and merging in the versions. Kovair’s version diagram is the only visualization tool in the market to graphically represent various versions of a Requirement and working with them by using drag-and-drop interface.

Can we keep track of who edited the Requirements and when?

Yes, to keep track of the latest change in a Requirement, Last Modified By and Last Modification Date, there are the two attributes provided by Kovair’s out-of-the-box solution. It keeps track of the user and the date for the change. Additionally, the tool provides Change History for each Requirement that keeps track of who, when and what has been changed, what was the old value, and what is the new value.

Can we baseline Requirements for each release?

Yes. Baseline is a snapshot of selected Requirements (and other Entities, if they are defined) at specific version numbers. During the development process, multiple Baselines are created to track different milestones.

Can we compare between Baselines?

Two Baselines can be compared with ease for the differences in the included Requirements. The comparison also highlights differences between two different versions of the same Requirement included in those Baselines and highlights them for comparison.

Can we roll back to a previous version of a baseline or Requirement?

Users can maintain different versions of a requirement as well as create baselines. These versions can be compared side by side and can be rolled back to any previous version. Users can roll back the entire requirement as well as the value of certain attributes based on their requirement.

Administration and Access Control

Is it possible to assign different levels of permissions to users for different purposes?

Kovair has facility of providing access at various levels starting from enterprise level access to record level access. Based on these accesses, records can be selectively exposed to different set of users as per the business need.

Is there a security model in place to ensure that certain users have read-only rights?

Yes, Kovair allows Administrator to create unlimited Access Groups (User Groups). Users can be assigned to various Access Groups. This will determine their privileges or rights in viewing the entity records in the system. You can define the scope for users in adding, editing, viewing records for any custom entities defined.

Are there different roles/user types, dependent on what that user needs to see/edit?

Yes, Roles or User Types can be defined in Kovair. What that Role or User Type should view/ edit is managed from administrative function – Access Group. Access Group is formed by a set of defined access rights or privileges. Those privileges consider what records a group member can view, and what they can edit. So, by associating the Role or User Type with Access Group, view or edit accesses on Requirements can be controlled.

Can we restrict permissions based on the status of a Requirement (e.g. restrict customers from viewing a requirement if it’s in draft status and hasn’t been approved)?

Filter based permissions can be given to users for different operations like view, edit, and deletion of records.

Can we manage access permissions for groups?

Kovair provides role and group based security at both enterprise level and record level to control login, editing of requirements and its attributes. Based on the roles and responsibility of a user in the organization, these accesses can be configured.

Can we manage access permissions for individual users?

Kovair allows organizations to manage permissions at user level. Permissions to individual users can be given directly or through groups to which they belong to.

Export and Reports

Will we be able to generate a report?

Users in Kovair can generate 9 different types of reports including graphical and textual reports. Word based documents like SRS/MRD/PRD can also be generated from Kovair.

Is there a Dashboard capability?

Yes, Kovair has a very colorful dashboard capability. Multiple graphical and textual gadgets can be put on a Dashboard which are displayed with real-time data. There can be multiple Dashboards.

Can we derive a product road map from the Requirements repository?

Yes, you can create a Roadmap in a Word Report format.

Can we report on predicted schedule driven from estimated effort and actual effort?

Yes, Kovair integrates with Microsoft Project. The estimated time against each of the Requirements are exported to Microsoft Project to create a scheduled plan. Kovair also has its own Project and Resource Management capabilities in its product.

Can the software produce the following (or something similar to the following)?

  • Marketing Requirements Document: Yes, Kovair can create a fully formatted Word Document for MRD based on item #26 above.
  • Impact Reports: Yes, Kovair can prepare a Word Report called ‘Change Impact Analysis’ where it displays Requirements (categorized by Release), and against each Requirement, impacts are calculated for linked Use Cases, Development Packages, and Test Cases.
  • Version report: Yes, a report can be created for selected Requirements with the complete version history for each.
  • Roadmap report: Yes, you can prepare a Word Report called ‘Product Roadmap Planning’. The report displays Requirements grouped by their Release and Product Type. For each Requirement, apart from its fields, other information like – comments, linked items (Development Package, Use Cases, and Test Cases) are displayed.
  • Progress report: Yes, a progress report can be created with information about the completed and open process tasks.

How do we customize reports to include any attributes of Requirements?

Users in Kovair can generate 9 different types of reports including graphical and textual reports. Word based documents like SRS/MRD/PRD can also be generated from Kovair. These reports can include both system and custom defined attributes of a requirement.

Integration with other tools and phases

How easily will the tool integrate with other software currently in place here?

Yes, Kovair SOA architected ESB platform Omnibus enables organizations to setup an integrated environment for development without replacing their existing tools. Currently Omnibus has integrations with 80+ tools. These tools are from different functional areas, vendors, open sources and technologies.

Can the software integrate the Requirements with other functional phases like testing residing in other tools?

Yes, using Kovair Omnibus integration platform, users can link the requirements with test artifacts residing in any other test management tool.

Can the software integrate with outlook and pull the requirements from there?

Yes, Kovair has integration with outlook. Users can convert any mail item into requirements through this integration.

10 Benefits of Integrated ALM
 

Introduction

Application development organizations spend millions of dollars a year on a multitude of siloed point function tools encompassing requirement management, design/architecture management, coding, configuration management, build, testing, defect tracking, release management, and more. These tools live in isolation which makes users rely mostly on traditional and broken manual procedures while synchronizing data of one tool with the other. These isolated tools do not play well together, therefore, cannot provide a coherent development setup. You may also find some point-to-point fragile and hardwired integrations between tools in organizations that commit to a single provider for sourcing all their required tools. Organizations that choose best-of-breed tools from different vendors, suited to different lifecycle phases also lack an effective integration mechanism in their tool setup. Here are the ten compelling reasons why an organization must connect these multiple lifecycle tools and achieve an optimum application development environment for its teams.

1. Gain Greater Insight

Lack of data visibility into day-to-day activities of an application development project is a big problem for all stakeholders. Business Analysts, Architects, Developers, Testers, and Managers – all work in a very isolated manner using different tools and have limited information about the overall application development activities and status. It is important that developers and testers have the ability to ensure code quality and performance throughout the lifecycle process. This needs quality of work to be validated at every stage and defects to be identified and removed early in the process, not at the end of it. In a non-synchronized development environment, achieving an end-to-end visibility of tool-specific information is a big challenge. All these tools need to be connected to unlock the hidden data and enable all the project stakeholders to share the same pool of up-to-date information real time. A connected ecosystem of tools allows every individual, team, and organization to gain greater insight into the application development, thus helping them to do their job in a much better and informed way. Efficiency can only be achieved through full visibility into projects, people, costs, and items across the lifecycle.

2. Enact Best Practice Processes

Organizations, developing software applications find it very difficult to set up an integrated and uniform engineering process across SDLC stages, when the tools used by stakeholders at different stages are disconnected. Without an interconnected set of tools, it is almost impossible to integrate the above engineering processes carried out in different practitioner tools and more than likely, distributed at the multiple locations. Paper-based processes are commonly used to control handoffs between functional areas. Integrated engineering process automates these handoffs and ensures proper communication, synchronization, and feedback exchange between these stage level processes. These are essential for any successful application development. Organizations establish several best-practice processes like Requirements Validation, Code Review and Verification, Test Coverage for Requirements, Build Verification, Risk identification and mitigation, Check for Release Readiness, Change Management, and more spanning one or more lifecycle stages and tools. Connecting the tools is a must for an organization to disseminate, implement, and automate its methodology and best practice processes universally across the lifecycle tools so that the methodology becomes a natural part of the organization’s business process. Automated and executable process models used across these integrated set of tools ensure strict process adherence and achieve consistency, repeatability, and predictability. Corporations face the daunting task of ensuring effective compliance requirements like Sarbanes-Oxley, CMMI, ITIL, ISO, Six Sigma, and others. Compliance requirements make the overall traceability across all application lifecycle items a necessity, which is practical only if lifecycle tools are connected to each other. Organizations need an environment, where these compliance efforts can be automated and built into the process throughout the application development stages in order to achieve sustainable compliance.

3. Overcome Challenges for Globally Distributed Development

Today, the Application development process is more global than ever. Projects increasingly involve multiple teams in disparate locations, often from multiple companies and countries. Enterprise level organizations often encounter a situation, where even for the same lifecycle domain people from different companies/countries with different cultures participate in application development process. It is often the case that one company using DOORS for Requirements definition and Perforce for SCM needs to work with another partner company using RequisitePro for Requirements and ClearCase for SCM. The challenge here for an enterprise is to accommodate different cultural and tools, yet remain connected in such a way that work is not duplicated, productivity is not sacrificed, and cross-cultural miscommunication is minimized. This is crucial, especially with many global business consolidations happening for enterprises. Here the situation is even more complicated by the fact that people using different lifecycle tools are not sharing the same network, and their tools are behind the firewall in different networks. You will need a modern framework integrating tools behind firewalls across different networks that overcomes the structural challenges of working across remote locations, and ensures project outcome – on time, on budget, and on target with business goals.

4. Enable Collaboration between Stakeholders

Organizations need to provide real-time collaboration and coordination between the various functional teams, including customer, product team, development team, QA team and the testing team by seamlessly integrating different development tools and processes that best fit their needs. Performing all these above activities in collaboration is possible, only when stakeholders’ tools are connected together. The integration ensures that all stakeholders during application development are in sync and perfect synergy. They share equal visibility into the development artifacts, activities, and project status. Their individual and team activities are synchronized with others and aligned with the ultimate project goals. They don’t waste time on manual syncing up of tasks and bloated meeting schedules. They feel unified and take accountability for the success or failure of the whole application development.

5. Increase Productivity & Deliver Faster

Connecting the tools used by different stakeholders throughout the application lifecycle stages brings huge opportunities for increasing the productivity of individuals and teams.
  • Integration enables implementing and enforcing best practice processes and proven methodologies that drive improvement in productivity.
  • Shorter development cycle and quicker software delivery decrease inter-stage transition time.
  • Teams can collaborate more efficiently and effectively, eliminating human errors and delivery delays.
  • Business analysts, architects, developers, testers, and project managers are able to carry out most of their application development activities using their preferred tools environment without requiring them to learn and use new tools. This saves a lot of training time for stakeholders.
  • Reduce inflated meetings, travel time, phone calls and unwanted rework by keeping all the stakeholders in sync and sharing the up-to-date information.
  • Automation of repetitive and tedious tasks saves a lot of time and effort.
  • Enable productivity improvement by analyzing trends and implementing metrics-based best management practices.

6. Enhance Customer Satisfaction

Integrated Application Lifecycle Management (ALM) breaks down the developer/customer barrier, enables rapid delivery of customer-driven value, and results in better customer satisfaction.
  • Integration enables business stakeholders and developers to collaborate seamlessly with the customers around common shared artifacts. This provides the opportunity to understand customer needs and expectations better.
  • Best-practice processes adopted throughout the lifecycle stages constantly ensure that all the development activities are aligned with the ultimate customer requirements. Customers get exactly what they have asked for.
  • Improved quality achieved through the integration helps to deliver a better product to the customer that works for their business.
  • Customer gets real-time updates on the application development progress and status because of the increased transparency and visibility into the lifecycle stages. Software quality and reliability are the lifelines to customer loyalty.
  • Integration facilitates quick response to customer requests and requirements with the support of an end-to-end traceability of lifecycle artifacts across the stages, and integrated change management process.
  • Integration with Customer Relationship Management (CRM) and Help Desk tools provides a transparent view of the progress of customer cases to all stakeholders, including customer support managers, sales, and the entire software development team. This helps organizations to be on the top of every customer issue.
  • Customer will instantly know the status of issues and when the fixes will be deployed.

7. Improve Quality

Integrating the application development lifecycle tools has direct and indirect influences on the overall quality of a software product. It improves quality by reducing the number of defects due to miscommunication, identifying inconsistencies between requirements, enabling efficient testing, and generally ensuring that the final application meets the needs and expectations of users. Quality is the sum total of effectiveness, efficiency, and visibility.
  • Accomplishing tasks with a quality outcome often requires wider vision and an extended access to related information/knowledgebase. In an IT environment, linked information from disparate tools needs to be exposed to the right stakeholders at the right time – for them to come up with ‘Quality’. This plays a big role behind the success of IT projects. With integration in place, architects, developers, and testers have ready and real-time access to the lifecycle artifacts from within their own tool. Hence, they become more informed to do better design, coding, and testing activities. All these result in a better quality software.
  • Integration ensures code quality and performance throughout the lifecycle processes. Quality of work is validated at every stage, and defects are caught during the process, instead of at the end of it.
  • Enforce and automate some of the best practice quality verification processes like code analysis, unit testing, checking code coverage, continuous build verification, root cause analysis, and more by integrating the relevant tools. Capture these detailed test results/defects to analyze and take smarter decisions to improve quality. Strong analytics help users to anticipate problems before they actually arrive.
  • Better change management practices help to minimize quality issues arising out of changes in requirements, designs, and code files. Understanding change dependencies and impacts are the key to optimize quality.

8. Collect Actionable Metrics & Intelligence

Organizations are finding it increasingly difficult to get the facts needed to build an up-to-date and reliable picture of application development projects, and then obtain accurate measures against business goals, and deliver simple actionable intelligence. Typically, in the absence of an automated metrics collection program across the disconnected lifecycle tools, managers rely on team members to provide these inputs, and the result is a bunch of inconsistent, imprecise, subjective, static, non–granular, and hard-to-collate information. The absence of factual insights leads to missed deadlines, budget crunch, and fundamental erosion of trust and goodwill in a business relationship. Companies waste millions of dollars each year in project overruns, cancellations, and missed business goals. Senior managers often come across situations where finding answers to the following questions becomes a thing of nightmare. Do you feel that the answers are not easily forthcoming? You need an automated metrics collection system integrated across application development lifecycle tools. This will provide you a decision intelligence solution that delivers relevant, objective, dynamic and granular metrics needed to make smart decisions influencing cost, quality, and time.

9. Manage Change with Confidence

Change is inevitable in any application development project. Embracing and managing change properly is a major challenge. Organizations find it difficult to keep all stakeholders in sync with the latest changes in application development and ensure the smooth change propagation through lifecycle silos. In the process, inconsistent information creeps in, resulting in wasted effort, productivity loss, incorrect delivery, and customer dissatisfaction. To deal with the above scenarios, what we need is an end-to-end multi-directional traceability between the lifecycle artifacts and deliverables like requirements, models, source code, build scripts and test cases getting generated throughout the application development stages by different stakeholders using different tools. Organizations find it challenging to correlate application lifecycle items when they are maintained in isolated tools by people from different functional areas. Without an end-to-end traceability, enterprises will continue to deliver applications that diverge through the lifecycle from the original requirements. A connected set of lifecycle tools makes it easier for the application development teams to better assess the impact of changes, track the full history, automate change propagation, and thus keep everyone on the same page and reduce change reaction time. This integration framework has to be flexible enough to support all of the above integration requirements. You should be able to plug any tool from any vendor any time to your integrated tools ecosystem and follow your best practice process irrespective of the tools chosen.

10. Plug and Play tools

Organizations invest heavily on buying the best-of-breed tools for different lifecycle stages and for training people about these tools. However, this does not allow them to harness the full potential of these tools and get the most value out of their investments. Integrating all or most of these tools can help you achieve an end-to-end ALM solution resulting in increased ROI, and process improvement. You need a comprehensive integration framework that can accommodate your existing tools and processes and don’t require you to retool your current processes, or to commit to a particular tool vendor.

Conclusion

You have purchased the best tools money can buy to make your development process more effective. You have trained your people in these expensive tools. But, you are not getting the most value out of these investments. You don’t have a consolidated picture of your whole development projects, but only the pieces of the puzzle. You saw the great opportunities you have to achieve substantial savings in time and effort, and to ensure consistent quality by integrating the tools in your software engineering environment. With Kovair, you can have a single unified, automatically synchronized software engineering and collaboration system that avoids tool silos causing inconsistent information and inefficient processes. The net result is a better synchronization between IT and your business, delivering an enhanced business value to your customer and a competitive advantage.
3 Approaches for Integrated ALM

Different Approaches for Integrated ALM

To address the challenges of Integrated ALM and to achieve at least some of the goals, different tool vendors have taken different strategies, which can be broadly categorized in the three alternative approaches.

Approach #1: Point-to-point Integrated Multi-Vendor Tools

Traditionally the individual vendors have tried to achieve modicum of Integrated ALM by first integrating their own ALM point tools and then integrating some selection of the popular point tools from other vendors. The advantage of such an approach is the simplicity. You need to create only the integration between a particular pair of tools if necessary. However, to achieve the functionality and benefits mentioned above, it is necessary to have point-to-point integration between most, if not every pair of tools. Moreover, since the integration is often done between tools from two different vendors, it often becomes the users’ responsibility to create a workable integration using their own development resources. This results in additional internal tool maintenance and management resources, which are not aligned to the core competency of the organization.

The primary issues with the point-to-point approach are discussed below:

Complexity of combinations From high-school algebra, we know that to have a point-to-point integration between every pair of n tools we need n x (n-1) / 2 number of integrations. For a simple case of 5 tools, this amounts to 10 integrations and just by doubling the number of tools to 10 will result in a 4.5 fold increase in number of integrations to 45. Because of the ad-hoc nature of these integrations, it becomes extremely difficult to create and maintain each individual integration code between the pairs of tools.

Handcrafted Integration Business Rules Since each integration code is custom made for a particular pair of tools, it has the maximum flexibility but at the same time, maintenance becomes very difficult. For example, the business rules of integration like which field maps from one tool to the other, under which condition the data is replicated from one tool to another, or how a change in one tool will be reflected in another – are all hardcoded in the integration code. This means that any change in that logic necessitates changes in that code. Any change in code means a full cycle of development, test, and deployment cycle making it impossible to implement even the smallest change quickly.

Replacement Dilemma It is unlikely that a development group will use a single tool forever. With changing needs, technology and preferences, existing tools often need to be replaced by more effective alternatives. However, a point-to-point architecture becomes a hindrance to such an upgrade. Referring to our example of 5 and 10 tools scenarios, a single tool replacement will result in re-development of up to 4 and 9 integration codes respectively that often becomes the reason for perpetuation of old and inappropriate tool usage. These issues are resulting in some development groups abandoning their custom point-to-point integration projects. Even large service companies with enough in-house software expertise and bandwidth are looking for a replacement of their handcrafted internal integration rats-nest architecture with a more sustainable and scalable solution.

Approach #2: Single Vendor Integrated ALM Tools

Because of the problems faced by point-to-point integration architecture, large vendors like IBM and Microsoft have come up with their own solutions to the Integrated ALM. Though their solutions vary in actual implementation, they can be grouped in the category of ‘single vendor solutions’. While these solutions also aim at including third party vendor tools, the current implementations on the market do not meet these needs.

IBM’s solution consists of the Jazz integration technology and various tools created on Jazz platform. This includes Rational Team Concert, Rational Quality Manager, Rational DOORS, DOORS Next Gen and Rational Requirements Composer. Jazz has an open API, which allows third party vendors to integrate their tools with Jazz. One of the main challenges for Jazz users is its current incompatibility to an existing tool – both from IBM Rational and third party vendors. In fact IBM/ Rational has created a new Requirements Management and Elicitation tool called Requirement Composer even when they have two well established Requirements Management tools RequisitePro and Telelogic DOORS. Moreover, Jazz requirements make existing tools from other vendors incompatible unless they retrofit with Jazz compliant interfaces using OSLC (Open Services for Lifecycle Collaboration) web services, an IBM proposed open standard. As of now, no other major tool vendor has adopted OSLC standard for their existing or future tools. On the other hand, Microsoft’s solution does not include any stand-alone integration technology. Centerpiece for Microsoft’s Integrated ALM solution is the Team Foundation Server (TFS). Like the Rational Team Concert from IBM, TFS includes project management, source control, continuous build and work item management. Comparable to the Eclipse IDE, Microsoft has their Visual Studio Team System along with the tools for modeling, coding and testing. Like IBM, Microsoft proposes that a development team should use all tools from Microsoft to achieve Integrated ALM, though there are scopes for integration of other vendor tools in future. As a result, Microsoft solution requires point-to-point integration for each 3rd party vendor tool with TFS and/ or Visual Studio. This results in similar problems discussed in the point-to-point integration solutions above. Any development group starting afresh and focused only on Java based development or .NET based development may benefit from using IBM/ Rational and Microsoft solutions respectively. However, for the vast majority of organizations with major investments in existing tools from various vendors and development in Java, .NET and other mixed technologies, neither the IBM nor the Microsoft solutions can be very appealing.

The primary issues with single vendor integrated ALM tools approach are recapped below:

  1. Rip and Replace The requirement of replacing existing tools by a single vendor tools does not sit well with any development manager. Apart from the difficulty of economic justification for such a move, this results in retraining of the development team members in new tools, which may delay development projects unnecessarily .
  2. One Size Fits All It is highly unlikely that built-in tools from a single vendor can serve the needs of a wide range of development groups. However, due to the very nature of the solutions, the users are forced to use these tools even when better and often less expensive (sometime free open source) tools are available and appropriate for their needs. For example, Microsoft’s Visual Studio Team System designer is a brand new tool without any maturity whereas, there are quite a few matured design tools available, which cannot be used in the Microsoft only environment. Similarly, there are many organizations using Perforce, Subversion, PVCS, CVS who will not be able to participate in the IBM only environment, since they do not use ClearCase or the new configuration management built-in Team Center.
  3. Technology Islands of Development Single vendor tools create a technology island with little or no chance of working together. Groups developing in both .NET and Java simultaneously using Eclipse and Visual Studio will have severe problems adopting a single vendor approach. It will be difficult to meet any of the functionality and benefits mentioned above in scenarios like that. Though there are patches of integration bridges like integrating TFS to Eclipse by Teamprise (acquired by Microsoft), they are again essentially a point-to-point integration with all its unwanted baggage.

Approach #3: Multi-Vendor Best of Breed Integrated ALM Tools by ALM Middleware

Taking a cue from the integration solutions in other industries, most notably financial software, the concept of ALM middleware addresses all the Integrated ALM requirements squarely and offers some more while avoiding all issues and pitfalls mentioned with the other two approaches of point to point and single vendor integrations. The middleware technology is based on Enterprise Service Bus (ESB) architecture, which has some distinct advantages over any point-to-point integration architecture. These advantages are discussed below:

  1. Significantly simpler development To use the previous examples of 5 and 10 tools development environment, the ESB architecture needs 5 and 10 adapters respectively, just one per tool! This is substantially less than 10 and 45 custom integrations necessary for point-to-point architecture. Moreover, to replace one of 5 and 10 tools needs replacement of just one adapter, a far cry from the redevelopment of 4 and 9 integration codes respectively.
  2. Protect Investments ALM Middleware is based on a standard set of web service based APIs. Without any special requirement on the tools, ALM Middleware can integrate tools from different vendors, including internally developed tools. This means all the tool investments by a development organization are protected.
  3. Best Tools for Best Functions ALM Middleware allows integration of multiple tools from different vendors for the same function. For example, Requirements Management may be covered by any combination of tools from IBM/ Rational (RequisitePro, DOORS, Rational Requirements Composer), Microfocus/ Borland (Caliber-RM). What is even better, it can support simultaneous usage of multiple tools from multiple vendors in a single tools ecosystem. This allows organizations to select the best tools available in the market without locking themselves in a single vendor solution. The table below illustrates the increased flexibility with tool choices using ALM Middleware.
  4. Flexibility of Integration Business Rules Integration business rules do change over time for various reasons, including changes in business conditions, group dynamics, and development methodologies. For example, how the Requirements will be replicated from IBM RequisitePro to HP Quality Center so that the Traceability relation created in Quality Center may change over time. Integrated ALM platform allows creation and management of these rules independent of the individual tool adapters. Unlike point-to-point and single-vendor integrations where the logic is hard coded in the integration codes, middleware adapters do not have any embedded business rules. The business rules are managed in middleware administrative module with visual interface for the empowered end users. This eliminates the necessity of development resources for changing the integration codes and reduces the change implementation time drastically from weeks to hours.
  5. Traceability with Change Impact Analysis ALM Middleware makes it simple to create Traceability relation between artifacts from various tools. In case of Point-to-point integration where without a central framework only two tools are integrated at a time, there is no way to visualize and manipulate Traceability relations of three or more Artifacts in a single interface. But for ALM Middleware, a central framework allows flexible ways of creating and managing these relationships among multiple (more than a pair of) tools. Moreover, due to its flexibility in relationship management, ALM Middleware promotes multi-tool proactive and reactive change impact analysis. This is impossible to do both in point-to-point and single vendor integration solutions.
  6. Process Automation without Boundary Typically, Implementing SDLC Processes for multi-tool ALM requires discipline of individual participants. Such a manual implementation of the process fails after a short time when individuals do not follow it due to high overhead and high cost of retraining for each small change. ALM Middleware, with its built-in process automation capability has a unique advantage of creating a cross tools process and automating that for a transparent no-overhead implementation with a much larger success potential. The typical example is a Requirement that starts life in a Requirements Management tool, is reviewed and approved by stakeholders in a Project Management tool, is implemented by a developer in an IDE, and tested by testers in a Test Management tool. ALM Middleware automates the whole process for all these users even when they are using different tools and may be based at different locations.
  7. Analytics and Dashboards Once ALM Middleware has all the artifacts and meta information about the artifacts (e.g. not just the Requirement but the information about the Requestor, Type, Priority, Approval status, Approver, Lifecycle status…) in its repository either by replication (where the artifact information is replicated to ALM Middleware repository) or federation (where the tool data is retrieved on demand, avoiding replication), one can create all sorts of dashboard metrics and reports for those data in real-time. These reports give valuable insight about the whole cross-tool process, which is often impossible or difficult to get.

A Comparison of the 3 Approaches

Item Point-to-point Integrated Multi Vendor Tools Single Vendor Integrated ALM Tools Multi Vendor Best of Breed Integrated ALM Tools –ALM Middleware
View artifacts managed by one Tool from another Tool Fair
Only artifacts of the paired tool
Good
Artifacts in the IDE and other paired tools
Excellent
All artifacts through the ALM Middleware interface
Create various impacting and non-impacting relationship between any two Artifacts. Fair Only artifacts of the paired tool Good Artifacts in the IDE and other paired tools Excellent
All artifacts through the ALM Middleware interface
Automate a process cutting across the tool Boundaries and implementing the complete ALM lifecycle without a break Poor Poor Excellent
With built-in process automation in the ALM Middleware interface
Manage Projects and Resources across the tools Poor Fair
Through integrated project management tool (if such an integration exists)
Excellent
With built-in project and resource management in the ALM Middleware interface or external tool
Create Cross tools Analytics and Dashboards Fair
Through reporting tool with custom integration
Fair
Some limited built-in analytics based on individual tools’ reporting capability.
Excellent
With built-in reporting and analytics tool on all artifacts and meta information available in the ALM Middleware interface

 

Integrated Project Management by Kovair

Executive Summary

According to the PMBOK definition “A project is a temporary endeavor undertaken to accomplish a unique product or service with a defined start and end point and specific objectives that, when attained, signify completion”. By the year 1990 onwards almost every industry started the practice of project management to overcome the hurdles of managing – Budget, Tasks, Time, and Resources. Now the question is – What do we mean by Project Management? According to the PMBOK definition “Project management is the application of knowledge, skills, tools, and techniques applied to project activities in order to meet or exceed stakeholder needs and expectations from a project.” In general, it is the lack of efficient methodology or standard that is responsible for failure of a Project, and that is why various methodologies or approaches get evolved starting from traditional approach of Project Management to other disciplines like – Critical Chain Project Management, Extreme Project Management, Event Chain Methodology, PRINCE2, Process-based Management with different approaches.

Kovair Software Inc. comes with a web-based Project Management Solution to meet enterprise goals with wide array of in-built features like – cost estimation, automated process aligned to the business, managing resources, allocation of tasks to resources, timesheet to capture time details of task execution, reporting, and management visibility through Dashboard. Kovair Project Management also provides the facility to integrate the solution with third-party or vendor neutral solutions via its in-built Omnibus (Integration Bus for ITTM). Today, there are several Project Management tools available in the market claiming them as the best software to meet the demands of Project Managers or Business Heads. Apart from managing Tasks, Time and Resources effectively, Kovair also manages various phases that a Project comprises of – Requirements, Change, Test, Defect, Release, and others, and thus becomes a complete suite for the management of development projects. The objective of this paper is to explain each feature of Kovair Project Management Solution.

Three Constraints of Project Management

  • Scope or Quality of the Project
  • Schedule of the Project
  • Cost per Resource involved in the Project

Challenge for the management is to define a Project, plan it accordingly to achieve the goal, follow-up the plan and deliver the job/service as per the agreements. The success of a Project mainly depends upon its planning – how best you can estimate and how efficiently you can follow the plan. When we talk about plan, the first thing that comes to mind is the "Date and Time" to start the Project and to complete it. The second important thing is a set of "Activities" or "Tasks" carried out by resources to attain all the granular level objectives that sum up to a Project. Finally, it is – "Resources" (mainly – human, capital, infrastructure) the tangible medium that directly participate in the lifecycle of a Project either by accomplishing certain activities or providing support to accomplish the activities by others.

Managing Tasks

Task Management broadly speaks about allocation of right Task to right resource at the right time. It is quite easy to manage Tasks and their follow-ups when you are working with limited resources, but as the organization grows with increase in the number of resources, it becomes necessary to go for a tool for managing the Tasks. Task Management is a component of Kovair application that you can have with all available solutions – Requirements Management, Test Management, Issue Management, Defect and Risk Management and Project Management.

Kovair allows manual and automated Task allocation for different stakeholders. Manual Tasks can be created by the Managers for their groups to work on them, and record the Time invested. On the other hand, automated Tasks are generated to the resources through Kovair’s in-built process engine. Administrators can configure different workflows/business processes through Kovair’s visual drag-drop designer. Process, in Kovair, is a series of automated activities that facilitates systematic and organized workflow management in a distributed environment. A "Workspace" level process is a broad process involving several processes running simultaneously at the entity level. You can design "Linear Process" or "Sophisticated Process" as per your need. A "Linear Process" contains series of operational steps and activities. A "Sophisticated Process", on the other hand, includes "Conditions", "Loops" and "Paths". The execution of a sophisticated process depends on the satisfaction of the "conditions", and the direction of the "Path" (Probable/ Else), as defined in the process.

Kovair ALM Studio

Process Flow

Which Tasks will be allocated to whom, and when – are defined only once when designing a Process. On activation, Tasks are automatically generated to the respective owners as per the progression of workflow, and thereby reduces the risk of manual intervention in Task Management.

Some value added facilities of Kovair"s in-built Task Management:

  • Automated and Customized Task-based Process along with the provision to create Tasks manually.
  • Generate multiple Tasks for different resources and/or roles for a particular item of a Project. Project item can be anything like – Requirement, Test Case, Issue, Defect, Service Request, Incident, Problem, Change, and so on. Kovair also allows you to define parallel Tasks for same or different sets of resources. This is considered as a unique feature of Kovair Project Management solution. So you are free to implement and manage multiple Tasks independently and dependently.
  • Design custom Task Forms with artifacts that you want to expose to resources who will accomplish the Task. Granular level securities can be imposed in the Task Form by restricting users to view or edit sensitive information that are exposed in the Task.
  • One-click navigation to the record (Requirement, Test Case, Issue, and others) directly from within the Task Form. Kovair provides the facility to expose the item (for which you are generating Task) as a link on the Task Form. Often resources need further information on the record for which he/she is supposed to accomplish a Task. Such one-click access of record from the Task helps the resource to work independently and reduces spare dialogues among the workgroups.
  • Impose assignment policies on the resources to accomplish the Task. The policies can be either one of three types – Queued Task, Individual Task, and One Task for All. Queued Tasks assign a Task for multiple resources at a time. The resource who first picks up the Task becomes it owners and responsible to accomplish it. Other resources who had been assigned that Task get relieved from doing the job. Individual Task assigns a Task to a set of resources with a policy that determines when the Task will be granted as "complete" considering the number of resources (in terms of count/percentage/condition) participated in accomplishing the Task. Finally, the last Task assignment policy – One Task for All assigns a Task to a set of resources, and all resources are equally responsible to accomplish the Task separately by their own.
  • Under the integrated setup of Kovair application with other third party tools, you can synchronize the processes to workgroups working on different tool environments. So, keeping that in mind, Kovair provides the facility to expose cross-tool Tasks via Omnibus ESB with Kovair "plug-in" or adapter for the tool.
  • Close association of Task with Timesheet – another component of Kovair application. It allows the resources to record Time against each Task.
Requirements Collaborations and Reusability with Kovair ALM

Introduction

In a distributed software and systems development project, Requirements Management plays a critical role in ultimate success of the project. For an efficient and optimal management of Requirements, a fully functional Requirements Management tool is not just a necessity; it can be a life saver. Using documents and spreadsheets often is an easy way to start Requirements Management as a practice, but in no time it becomes a liability instead of a reliable tool.

The two aspects of Requirements Management, which can substantially help a distributed project, are Collaboration and Reusability. These two are also the features which force a group using documents for Requirements Management to upgrade to a tool based Requirements Management. This paper describes how Kovair’s Requirements Management tool helps a distributed project in achieving collaborative Requirements Management with high degree of reusability which can substantially reduce the development time and risks.

Collaborative Approach to Managing Requirements

Collaboration is the basis for working together to share information and to accomplish common tasks. In modern software development practices, the “Collaboration” among different groups / roles working from various geographic locations has become a necessity. Out of all phases of software development lifecycle, it is the Requirement Management phase that greatly demands collaboration, especially due to the fact that various globally distributed stakeholders need to be involved in creating, reviewing and approving Requirements.

Kovair application provides a Collaborative Knowledge Management Infrastructure for distributed teams. A single web-based application covers all the features necessary for all asynchronous collaboration. Kovair Requirement Management, a 100% web-based customizable solution, offers multiple avenues to work collaboratively to manage requirements.

Collaboration for all stakeholders, Anytime Anywhere Access – 100% Web-based

Kovair application is 100% web-based, which means any user with identity authentication can access the application over the Internet from any geographic location. The application is supported by most popular browsers like – Internet Explorer, Firefox and others.

The system is designed and architected from the ground-up to be an enterprise class, 100% browser based system. This allows users to access Kovair Requirement Management solution from remote locations and enables collaboration across geographically distributed teams. Maintenance and Upgrades to the software are seamless to the end-user and are of light over-head to the IT departments.

One other important aspect of distributed development often overlooked is the difference in time zones and date/time format. Kovair Global Lifecycle allows personal preference setting to own time zone and date time format so all database date/ time are translated to the correct date/ time and format.

It is a well-known fact that the TCO (Total Cost of Ownership) is substantially lower for a 100% web based software than a similar client-server software with a light web interface offering small subset of functionality.

Collaboration while traveling – Email Notifications and Mobile Email Support

Kovair fully supports email notifications to any email addresses. Notifications can be generated manually on an ad-hoc basis or can be automated by means of Kovair Policies.

Event driven Policies can be created to send notifications based on an event occurring in the Kovair database. Kovair also allows scheduled policies that can send email notifications based on specified frequencies. In the following screenshot the details of a Scheduled Policy.

Email notifications can be associated with a Mail template. A Mail template in Kovair can be of Plain Text and Rich Text. Mail templates can be customized with embedded macro variables corresponding to the field values. Users can include read only fields as well as editable fields in the Mail template, so that users can update editable field values directly from the mail itself. An email enabled mobile phone e.g. Blackberry, iPhone can be used for interacting with these email notifications for both receiving as well as sending information to Kovair application. This allows users to collaborate with the rest of the team even when they are traveling or physically apart.

Collaboration with history – Multi-threaded Discussions

A primary activity of any team is to make a series of decisions based on comments and opinions of its members. These are sometimes done in synchronous meetings (either in-person or using technologies like teleconference or online-meeting). Whereas such meetings have their place, multi-threaded discussions (in the context of each collaboration item) provide a forum to share such comments in a more structured way, reducing the need to have costly meetings. These discussion-threads allow one to capture a complete history (and hence the intellectual property) of the decision making process. For instance, if one were to ask the question ‘Why did we decide to have a mechanical brown-ness control (of a toaster) rather than an electronic one’ a year into the project, it is much easier to query the knowledgebase and get the contextual threaded discussions than by poring over volumes of meeting minutes or email threads (assuming they exist in the first place).

Kovair Application supports multi-threaded discussions in terms of contextual Comments. Kovair has a built-in Comments section that can be exposed to the users via system pre-defined or custom defined forms. The purpose of this section is to enable users to carry out multi-threaded discussions in the context of each Requirement. The discussions are entered either as a New Comment or Reply to an existing comment. Comments can be in the form of rich text with all sorts of formatting and even embedded images. Kovair allows users to include multiple attachments to their comments. The attachments can be – simple Notes, any type of Files (Word document, spreadsheet, image etc.) and URL. These multithreaded discussions are saved in the context of the version of a Requirement.

Collaboration with Developers – Integration with Visual Studio & Eclipse IDEs

Visual Studio Team System (VSTS) and Eclipse are acknowledged as industry’s leading Integrated Development Environments (IDE). These IDEs are mostly used by the developers, and often they need to work together and share information with other stakeholders like – Business Analysts, Architects, Project Managers and Testers. However the developers using these IDEs prefer to collaborate from within their preferred development environments, rather than opening up yet another tool external to the IDE.

‘Kovair plug-in for Visual Studio’ and ‘Kovair plug-in for Eclipse’, the platforms for developers, ensure collaboration among the stakeholders throughout the development lifecycle, and synchronization among disparate tools. By means of Kovair plug-ins for Visual Studio and Eclipse, the access of developers can be extended to all software development artifacts like – Requirements, Designs, Test Cases, Defects and Tasks originating from diverse ALM tools without leaving their preferred IDE. Kovair plug-ins are a much needed functionality for .NET and Java developers who wish to use a single tool environment both for doing their primary development job and collaborating with other teams.

Collaboration with QA group – Integration with HP Quality Center

Kovair offers seamless integration with HP Quality Center. This integration enables the synchronization of real time data between these two tools such that the different stakeholders like Analysts, Development and QA are benefited from it. Cross-tool communications are done through Kovair OMNIBUS – the Integration Bus for IT using API based communication.

Collaborating concurrently with Kovair Tasks

Kovair has built-in Task Management for users to collaborate in the management of Software development in general and Requirements Management in particular. Tasks can be created either manually or automatically using Kovair’s Process Automation or Policy Automation functionality. One or more Tasks can be created for one or more users asking them to do different activities for a single Requirement. This unique Kovair feature allows concurrent operations on a single Requirement by multiple actors.

By focusing on the Tasks assigned to them, users can participate in a complex Requirements Management process without being aware of the process definition. This also reduces the need of extensive training as the process remains transparent to the end users.

In Kovair application, users get a separate page from where they can view the allocated Tasks from multiple Workspaces. This page is user specific, meaning a user can view only those open Tasks which are assigned to him/her from all the accessible Workspaces. Collaboration with tasks allows users to simultaneously contribute to various activities of a single Requirement. With most other Requirements Management tool this is not possible since they are State based (i.e. a Requirement can be in one state alone at any time) and does not have a built-in Task Management functionality. From the list page the user can navigate to the detail page of the task where detailed level information of the task as well as the parent requirement can be made available. Kovair also provides access based flexibility of viewing and modifying the details of the parent requirement.

Customizable Interface

Kovair allows the entry Forms of the different entities to be completely customized. Administrators of the application can define the sections or layouts of the forms; including the grouping of fields in various sections, the placement of fields within each section and the Labels for each field. The customization is easy to perform through the graphical form builder.

In Custom Forms any field can be made Mandatory or Read-only. For a single or multiple section fields the lookup values may be filtered to show only certain values. There can be multiple Custom Forms of the same type, each assigned to different groups of users. E.g. to enter and edit a Business Requirement the users in the Customer Group may use a simpler form than the Project Manager Group users.

Document View

Requirements are mostly gathered in documents with formatted texts and images. Kovair’s built-in Document View is an advantage for the stakeholders who are familiar with document-based Requirement.

The Document View of Kovair application gives the same flavor to those users so that they feel as if they are working in their preferred environment. The Document view lists the requirements with their descriptions (formatted texts and images) as it is found in a normal Word document. A unique feature about this View is that it allows the users to do inplace edits of the descriptions right in the view itself. Often for the sake of various process activities of Requirement Management, the stakeholders (Analyst, Designer, or Project Manager) are forced to manage Requirements in several Word documents. Managing wide range of documents with various versions is quite cumbersome. Instead, the documented Requirements can be managed with ease via a single Document View, and the records can be retrieved by filtering them based on types of Requirements (say, System Requirement, Marketing Requirement, and Customer Requirement).

Traceability View

Traceability is a technique to trace Entity items, according to the relationships with the items of the same or different entities, and to manage dependent items for impact analysis. Traceability relationships allow users to track linked items of different Workspace Entity. For example, Test Cases are derived from Requirements, and Issues are linked against Test Cases. So, relational dependencies exist among cross entity items. Kovair allows users to create 1 Way / 2 Way relations between the entities defined in the workspace. Any impact due to traceability can send notifications to the appropriate people.

Using the built in Traceability View a user can get to see the entire chain of linked entity items of a workspace. The advantages of such a Traceability View are as follows:

  • Consolidated Visibility: Linked items are displayed in a hierarchical tree structure – grouped by entity
  • Complete Traceability: Chain of linked items for backward and forward traceability
  • Wider Coverage: Hierarchical tree structure is available
  • Optimum Effort: Easy to track related items, and analyze the impacts on dependent items

Reusing Requirements in Kovair

Requirements reusability allows users to use well defined, reviewed and approved Requirements from one scenario to another. The scenarios may vary in terms of different projects, different customers, different products or even different releases of the same product. Kovair offers a number of tools to manage the reusability. This includes:

  1. Cloning of one or more Requirements
  2. Reusing Requirements across various Organizational units like Projects (or Products or Releases…) for Views and Traceability

Reusing by Requirements Cloning

The clone operation allows users to create copy of one or more Requirements. While creating these copies users have some flexibility in defining the type of copy it will make. Optionally the cloned item can be automatically traced to the source item to keep a historical context of its origin.

In addition to the above control over cloning the related items users can also control how the new cloned Requirement will be related to the source item in terms of versioning. By creating a ‘Branch’ while cloning, the cloned item shares the same Id as the source item but with a unique Branch identifier. This allows a cloned item to be viewed as special version (Branched) of the same Requirement. The typical example is when the same Requirement is used for different customers with slight changes. This can be achieved by creating various branches from the same root Requirement and Branches are identified by the Customer names. The following diagram shows that a Requirement at its’ Ver. 6 branched out to customers ‘Atlas’ and ‘Apollo’ who want the same Requirement with slight variations. In addition Apollo’s North American and European divisions want their own versions of the same Requirement. Each branch can be managed independently with their own version controls. In the future, branches can be merged too. For example if customer Apollo decides that all divisions should use the same version then the North America and Europe branches can be merged to a single Apollo branch.

Reusing Requirements with Baselines

With respect to the Requirements Management scenario, versioning of Requirements is a very well-known practice. Conceptually speaking, though the Baseline functionality in Kovair is more or less same as requirement versioning yet, it has a much broader spectrum.

Baseline drawn on a particular date captures a snapshot of included Requirements, Use Cases, and Test Cases and other artifacts. During the course of time, even though any of these items get changed, the baseline would still hold the exact state of the item as it was on the date when the baseline was drawn. In context of Requirement Management, the milestones can be set by creating Baselines on regular interval. The reason being, it archives the history of Requirements so that you can refer to them and compare with their current state on a later date. For instance 6 months down the line, if the management wishes to view the contents of the set of Requirements as it was on the Project kick off date, they can refer to the Baseline drawn on that kick off date. Kovair’s Baseline is very flexible since this kind of report can easily be generated as of any arbitrary point in time to show the status of an ongoing project.

Kovair also provides the functionality to compare two baselines drawn on two different dates so that the management team gets an insight of all the changes occurred in the Project between these two dates.

Reusing Requirements across different Organizational Units

Unlike cloning, sometimes it is required to refer to Requirements from different organizational units (e.g. Projects, Products, Divisions or Releases of the same Product) especially in terms of Traceability relation. Kovair allows managing Requirements for various organizational units within a single Workspace. For example a single Workspace can be used for managing Requirements of multiple Projects, Products, Divisions or Releases of the same Product. By creating Access Groups users can be limited to create, view or edit Requirements of a particular organizational unit. Users who have access to multiple organizational units, can view Requirements from multiple units in a single vie or report. They can also create Traceability relations between Requirements from different organizational units.

Conclusion

In this paper, we have discussed three approaches to Integrated ALM by comparing them for technology, business values and cost. It has been shown that the method of ESB based ALM integration is the most suitable method for implementing Integrated ALM in organizations having or needing multiple vendor tools.

Achieve High ROI from Integrated ALM
 

Introduction

Kovair with its ALM – an Application Lifecycle Management product and Omnibus Integration tool- an SOA architected Enterprise Service Bus helps organizations to build up an integrated ALM environment using their existing tools used for different development phases. Kovair acts as a central repository for multiple data systems that allows organizations to achieve the following:
  • Seamless bi-directional data flow between different tools
  • Better visibility of data from a central location
  • Cross-tool data based reports and dashboards increasing release predictability
  • Cross-tool data based traceability to ensure coverage and better impact analysis
  • Event or scheduled based notification for keeping the stakeholders updated
  • Establishing a DevOps environment by integrating tools of different domains and vendors
  • Establishing a centrally controlled task based workflow across tools
The capabilities of Kovair Omnibus has been recognized in many organizations and the ROI of an Integrated ALM environment has been proven from different stakeholders’ point of view. The qualitative and financial benefits acknowledged by the stakeholders have been described in the following sections. The data that are enumerated in the following sections have all been derived from the customer experiences. These act as a good guide for what can be expected in a given situation provided there are differences in the number of tools, locations, and the number of people involved in the projects.

Benefits of Having an Integrated Development Ecosystem

  • Seamless flow of artifacts from one stage of development to the other reducing duplication of efforts in different tools and saving cost as well as time
  • Synchronized Engineering and Quality Processes for Development that helps reducing bugs, avoiding rework, and minimizing costs
  • Instant visibility across projects and stages so that information is locked not in individual tools but in a single consolidated data repository for every group to review and act upon
  • Real-time traceability across the entire Software Development Lifecycle that enhances productivity by avoiding confusions between teams and reducing the number of meetings, phone calls, and travel hours
  • Consolidated Reports & Dashboards enabling better management decisions for corrective actions in a prompt manner reducing time-to-market cycles
  • Event and Scheduled based notifications decreasing inter-stage transition time and manual interactions
  • Early warning for Release instability, thus eliminating or reducing potential delivery delays
  • Better Change Management & Impact Analysis to embrace change with lower risk and cost
The financial impact of the above benefits are quantified below based on customer inputs as experienced. It must be pointed out that each customer may experience different results based on their starting level of project efficiency, productivity, and quality compared to some others. However, the following is a good guideline for estimating cost benefits and computing ROI for a typical development environment. The benefits have been quantified from different stakeholders’ point of view.

Developers

An integrated ALM environment setup using Kovair Omnibus helps to improve productivity and reduce cost of development in different ways as stated below. Some of the benefits that developers get through integration with other tools using Kovair Omnibus are as follows:
  • Plug-in based integration for IDEs to view different artifacts of ALM “in place”
  • An ability to initiate unit testing, code coverage, and code analysis from the IDE
  • Traceability view of test artifacts and their execution status from the IDE allowing them to identify what % of code is being tested
  • Ability to perform static code analysis from the IDE allowing to validate their code even before checking in
  • Helps them in better understanding of features without much manual interaction and dependency on other team members
  • Gives them real-time visibility of defects and related information raised against their code

Numeric Benefits

Productivity gain: Let us consider that a developer spends around 4 hours a week on different tools for viewing information and updating status of the artifacts. With the help of Kovair’s IDE based integration, it has been observed that the time involvement in other tools reduces by 30% to 35% i.e. around 2.8 hours for each developer. This improvement considering a standard average salary for developers based on their locations can provide significant savings for the entire organization, or the project for which the integration activities are applicable. Quality gain: The ability to do things like code analysis, unit testing, and code coverage from within the IDE helps developers to ensure code quality before checking in the files. This leads to quality gains and defect reductions at an estimated rate of 12% to 15%. Considering the fact, a good amount of savings can be easily done based on the average size of the groups, their average compensation, and overhead costs.

Testers

Today, with the advent of agility and early-to-market philosophy, it is very important to have an integrated environment for testing. It reduces the longer test cycles making the test process much more efficient and helps in early detection of bugs in the entire process of delivery. Here are some of the benefits that testers get from an Integrated ALM platform using Kovair Omnibus.
  • Allows testers to remain updated with real-time status of the development progress
  • Keeps testers updated about information on Build status – content and defects
  • Integration of automation testing tool allows testers to execute both manual and automated test scripts from one single location
  • Enables real-time availability of multiple Test coverage statistics that helps in measuring progress of the ongoing testing activities
  • Facilitates easy tracking of issues over time
    • Incoming vs. fixed
    • Source of issues over time
    • Issue severity over time
    • Issue disposition over time – analysis of triage decisions
    • An ability to detect convergence, or lack thereof
  • Enables risk-based testing
  • Provides traceability of testing back to use cases, requirements, design, other artifacts for higher project visibility

Numeric Benefits

Productivity gain: Let us consider that testers spend around 10 hours of time for repetitive testing of the same scripts in different environments like development, staging, and production. With an integrated environment as mentioned above, these repetitive jobs can be almost eliminated. Thus the productivity of testers improves by almost 90%. Also, the productivity of testers improves by around 15% to 20% for not having the need to interact with other tools and team members for information gathering on requirement specification, development, and build status. Quality gain: An integration with the test automation tools enables organizations to achieve a CI environment. Synchronous automation testing on successful build completion not only allows to detect early bugs but also allows more number of test cases to be executed. Automation testing itself improves the quality of delivery because of higher test coverage but the ability to execute it on successful build completion makes the process more efficient. This can lead to a gain of 15% to 20% in terms of time lag between build and start of testing. This type of integrated environment also provides more time for test case verification and thus reducing post deployment bugs by 30% to 35%. A good amount of savings can be easily done based on the average size of automation scripts, size of involved groups, their average compensation, and overhead costs.

Front line Manager

Integrated ALM environment achieved through Kovair Omnibus not only improves the productivity and quality from individual team’s perspective but also improves the productivity and quality for the frontline managers. Below are some of the points to elaborate this thought.
  • Continuous updates on project status any time, any where
  • Better visibility of Team and individual performance irrespective of locations for managers
  • Real-time update on conformance to the code quality metrics and industry standards
  • End to end traceability allows managers to do better impact analysis of change on project releases thus helping to take them correct decision
  • Real-time update of Project Health
  • Notification at every stage and for every purpose helps managers to react fast to any problem in the delivery lifecycle
  • More objective oriented project status
  • Consolidated and real-time reports and dashboards for project efficiency measurement

Numeric Benefits

Productivity gain: Let us consider that a manager spends around 15 hours a week on different meetings with respect to the overall progress of a release and gathering information for generation of reports and creation of reports. With the facilities of real-time status update of progress, cross-tool data based reports and dashboards offered by Kovair, it has been observed that time involvement in these meetings and report creation reduces by 70% to 75% i.e. around 4.5 hours for a manager. Quality gain: The ability of having real-time cross-tool reports and dashboards, traceability, and central governance through task-based workflow cutting across different tools provide much better and informative control over the entire release progress. This leads to quality gains and timeline failure reductions at an estimated rate of 40% to 45%. A good amount of savings can be easily done based on the average size of the groups, their average compensation, and overhead costs.

Executives/Upper Management

Similar to other stakeholders, an integrated ALM environment also benefits Executives/Upper management to a large extent. Some of the major benefits are listed below:
  • Actionable information flowing upward leading to a quick strategic resolution
  • Early warning for trouble resulting in fewer surprises that may otherwise arise at a later stage of the project
  • Much more accuracy and consistency in reporting across projects and disciplines due to their real-time availabilities
  • Task based workflow with notification keeping all stakeholders updated with necessary information which allows to implement a central governance for better control of a release

Support for CI and DevOps

In order to meet the challenge of getting early to the market, more and more organizations are moving towards DevOps. However, purchasing new tools to achieve this is a huge challenge for organizations that have already invested on different tools. Kovair Omnibus, with its large set of more than 60+ COTS tool integration helps organizations to achieve DevOps environment without supplanting any existing tool. Kovair has integration with many best-of-breed tools for different development phases supporting CI and DevOps. The
Best Practices for Integrating Applications Development

Introduction

Enterprise application integration remains an age-old challenge for software product and project development. The emergence of new technologies for hosting infrastructure, platform, and software across locations, including on-premise, managed, and cloud-based data centers make integration process even more demanding and complicated. The traditional application integration approaches do not meet the challenges of changing business needs and therefore, pose threats to the agility and flexibility of an organization. Application integration, if done properly with the right choice of technology and best practice considerations, can deliver an immense strategic and technical value. How an enterprise pursues application integration practices, can really make a difference between a project’s pitfall and success. In this paper, Kovair discusses the best practices to be adopted by the stakeholders while implementing an effective application integration solution within an organization.

Know Your Goals

Defining the goals of your integration
  • The business drivers for integrating applications
  • The information available at management’s end
  • The existing applications and services under management
  • The core business processes and their dependencies
  • The integration scenarios, such as Application-to-Application (A2A), Business-to-Business (B2B), and Cloud-based applications (Software-as-a-Service – SaaS)

Consider the Right Integration Approach

Selecting the right integration technology is the next important step once you have set your goals. Choose an Integration Platform instead of multiple ad hoc point-to-point solutions that:
  • Gives you a one-stop-solution for all your integration needs
  • Provides fast and simple deployment options
  • Requires limited IT Support
  • Offers improved adaptability and agility
  • Supports Functional Reusability
  • Provides end-to-end traceability across toolsets and artifacts
  • Has an independent Change Management system
  • Delivers interoperability in a loosely coupled framework
  • Helps to orchestrate rather than just integrate tools of different functions and technology
  • Generates configurable reports for visual monitoring of integration success and failure
  • Supports both linking and syncing mechanisms along with data migration needs
  • Meets the needs of enterprise-class security
  • Supports multiple versions of the same tool or application
  • Can easily accommodate the future replacement of any application or addition of new applications to your application ecosystem in a plug-and-play mode

Be Aware of Technical Considerations

Before driving an application integration project, the project stakeholders need to consider and analyze the specific technical requirements for:
  • Semantic and Metadata Management
  • Validation of data for correct structure and format
  • Standard and Advanced Transformations
  • Information Consumption, Processing and Delivery
  • Intelligent Routing
  • Connectivity and Adapter Management
  • Governance across all applications

Know the Functional Requirements

Project stakeholders need to identify:
  • Applications or tools to be integrated
  • Information/data required to be synchronized across tools
  • Mapping of metadata between applications or tools
    • Avoid meaningless data replication if it does not address any specific business need
  • Relationships between artifacts of different tools to be synchronized
  • Integration rules to follow
    • Identify which tools and items need bi-directional data integration and which need one-way integration
    • Identify the conditions for which data would flow from one tool to another
  • Data latency requirements
    • For some tool, it may be sufficient to synchronize the data on a daily basis and for some other tool, it may be required to synchronize data in every minute

Know the Non Functional Requirements

The non-functional requirements to be considered are:
  • Performance
    • Determine the data volume that would be transported on a regular basis – Define performance metrics upfront
    • Determine the permitted latency limits
    • Determine the growth of data over the years
    • Plan hardware configuration to support probable data volume up to at least two years
  • Scalability
    • Understand the scalability options
    • Plan for load balanced servers based the load of on your data flow
  • Security
    • Understand and document security requirements
    • Ensure compliance with organizational data security policies
    • Encrypted storage and transport of security credentials
  • Reliability
    • Understand and document reliability measures needed
    • Check whether the integration framework will provide the required reliability measures
  • Availability – Failover
    • Understand the availability and failover options
    • Plan for configuring these options based on your availability needs
  • Migration
    • Define your data migration needs
    • Check with the vendor – how to implement data migration
  • Monitoring
    • Failures and faults at the services/ adapters level
    • Failures and errors at the data synchronization level
    • Notifications/Reporting for failures/ errors
    • Integration Health Dashboard

Focus on User Management

User Management is done differently in different applications or tools. Some tools support LDAP (Light-weight Directory Access Protocol) based user management while others have their own user management functionalities. Application integration requires user synchronization between different tools. An Integration Platform should provide the following options for it:
  • LDAP/ Active Directory based User Management support for all applications
  • Automated User Mapping Policies between applications
  • Manual User Mapping between applications
  • Any central User Management system shared by all applications

Work on Project/Template Management Setup

Organizations deal with hundreds of projects. Reusing the configuration setup done for integrating several applications across projects is the key to success of an Integration Platform deployment. An Integration Platform should support the following best practices to facilitate an integration setup:
  • Automation in Integration Setup for large number of projects
  • Integration Templates for different project types
    • Set of applications to be integrated
    • Metadata mapping between objects from different applications
    • Set of Integration Flows or Rules
  • New projects inherited from the above templates based on the project type
  • Templates administered by Process/ Tools Group
  • Project specific Integration Setups are managed by Project Managers

Select Integration Adapters/ Connectors

Stakeholders need to identify the integration use cases upfront and ensure that the adapters/ connectors can support easy and effective implementation of those use cases.
  • Identify the tools, 3rd party and homegrown, for which Integration Adapters would be needed
  • For standard applications, discuss and define:
Tool Event Action
IBM RequisitePro – Requirements Management Tool A Requirement is approved for implementation in a particular release.  
HP Quality Center – Test Management Tool   RequisitePro Requirement is replicated in Quality Center as a Test Requirement.
HP Quality Center Test Cases created by Tester in Quality Center to test the functionality provided by the above Requirement. Test Cases are executed and Test Results are recorded in Quality Center.  
IBM RequisitePro   Test Results for the Requirement are replicated in RequisitePro.

Learn the Deployment Stages

Follow the best practices for deploying an integration platform.
  • Staging environment
    • Set up Development environment
    • Set up Test environment
  • Testing
    • Configure Test Cases to verify your Integration Use Cases
    • Execute Tests on Development and Test servers
    • Perform load testing
    • Perform security testing
    • Perform reliability testing – check the scenario when tools are down or offline
    • Perform availability and failover testing
  • Production
    • After successful testing, deploy the integration platform and adapters on Production servers
    • Ensure failure/exception alerts are sent to the right people
    • Set up regular backup of the relevant integration components

How Kovair Omnibus Integration Platform Helps

Kovair Omnibus is the leading Enterprise Service Bus (ESB) integration technology available for Application Development and IT tools. With standardized SOA based tool-specific Omnibus adapters, one can create his or her own tools ecosystem. These tools can be from any vendor, or any legacy data, or any custom homegrown application development and IT tools. Kovair’s Omnibus integration technology has major advantages that are not typically found in the vendor-specific point tools or even a suite of tools.

Conclusion

Organizations continually face challenges in finding out ways to leverage more ROI out of their existing infrastructure and applications. Having an effective Application Integration strategy is critical to taking on this daunting challenge. Choosing the right integration technology and following the best practices to establish an agile, reliable and scalable platform that is equipped to extend the life of your existing proven applications can meet your future application development demands.
Risk Management

Project Risk

A Project Risk is an uncertain event or condition that can have a positive or negative impact on the project. It has an effect on at least one project objective where objectives can include Scope, Schedule, Cost, and Quality. A Risk may have one or more causes, and if it occurs, it may have one or more impacts. Organizations perceive risk as the effect of uncertainty on their projects and organizational objectives. Each organization has a tolerance for risk based on the nature of the risk, and the risks that are threats to the project may be accepted if the risks are within tolerances and are in balance with the rewards that may be gained by taking the risks.

Managing Risks

The objective of Risk Management is to increase the likelihood/impact of positive risks and decrease the likelihood/impact of negative risks. Risks for a project can be managed by following the Risk Management cycle.

Risk management

This Risk Management cycle should be followed at almost every stage of a project to minimize the negative impact of a risk and to maximize the opportunity. The different stages of Risk Management are explained in the subsequent topics.

Risk Identification

In this phase, identification of risks that might affect the project is done, and characteristics of risks are ascertained. This can be done by following the methods of Brainstorming, Delphi Technique, SWOT analysis, Interviewing, Checklist etc.

Analyzing Risks

Risks should be analyzed both in quantitative and qualitative manner in terms of probability of their occurrences using tools like decision tree, fishbone diagram etc.

Planning Risk Response

Planning risk responses facilitates development of risk response stances for the identified and prioritized risks. Negative risks can be dealt with strategies like Avoid, Transfer, and Mitigate whereas positive risks can be dealt with strategies like Exploit, Share, and Enhance.

Monitoring and Controlling Risks

The key aspects involved in this phase may include, but are not limited to:

  • Tracking identified risks/identifying new risks
  • Monitoring residual risks and trigger conditions
  • Ensuring the execution of appropriate risk response plans

Overview of Kovair Risk Management

Kovair comes with a fully customizable and web-based Risk Management solution with a wide array of industry leading features. ‘Fully customizable’ means you can configure or design the process of Risk Management in this tool, and can make that process automatically synchronized with other workflows. One of the important principles of Risk Management states that it should be treated as an integral part of organizational processes, and also as a part of decision making. Keeping this principle in mind, Kovair has offered a flexible, customer friendly, easy-to-use enterprise level solution by means of which you can efficiently manage the potential risks of the project.

Risks vary according to the nature of the projects. For example, the potential risks of automotive project will be different from that of financial project. So, there should be a relationship between Project and Risk. In the Kovair – Risk Management solution, both Project and Risk are considered as separate entities, but are linked by means of a ‘relation’. Project entity has its own set of attributes (i.e., fields) to capture detailed information of each Project in the application. Risk entity has the attributes that are different from that of Project, and are specific to Risk related information.

Kovair’s Risk Management gives all the stakeholders a better visibility through a formal risk tracking process. The risk tracking features available in Kovair provide better risk impact assessment. This enables the project teams to identify, quantify and mitigate risks and thereby define appropriate corrective measures. By virtue of relationships, risks in Kovair can be related to any artifact in one or multiple ways. By categorizing risks, the solution helps the teams to be prepared for the unexpected.Kovair’s Risk Management solution implements an enterprise risk framework and applies risk tracking techniques by allowing you to document and respond to risks from a single, centralized repository.