Home

This document provides the guidelines followed by Metova personnel during the software development process. This process aims to account for all input that drives development and ensure the client receives the maximum return on investment.

While this is the standard process for Metova, it is understood that many clients will have their own process. Internally, Metova manages and delivers all software solutions according to this process to ensure quality and performance according to the declared estimates or statements of work. Metova will work with the client to provide the necessary artifacts to satisfy their process needs with the understanding that additional requirements by the client to satisfy their process may require additional time. Accordingly, this time should be added to the stated estimates.

Target Audience

It is intended for this document to be a reference for those involved in the high level process of defining and prioritizing functional software deliverables. A person from any business should be able to read this document, understand the planning process and have a high level overview of software delivery. It should not be necessary for someone outside development to read any further than this document in order to maintain a sufficient understanding. On the other hand, it is important for any developer to have a deep understanding of this process, as it will be the driving factor for the tasks they perform every day.

Conventions

  • Words of significance to the process will be italicized.
  • Roles involved will be identified in bold.

Objectives

  • Enable functionality to be defined by the business owners.
  • Business owners define priority for functionality to be delivered.
  • Enable the business to respond to changing conditions, and in-turn, Metova to quickly respond to changing requirements.
  • Efficiency
  • Transparency
  • Honesty (no smoke and mirrors)

Agile methodologies suit these objectives well.

Overview

What is an agile methodology?

An agile methodology is one that addresses the problems of quickly delivering quality software, then evolving it to meet the changing business needs. It is a discipline that values simplicity, communication, feedback, and maximum return on investment.

Agile methodologies address long running projects by breaking them into a sequence of self-contained, one to three week mini-projects called an iterations. During each iteration:

  • Client picks features to be added.
  • Developers implement features that are complete and ready to be deployed.
  • Clients specify, and developers automate tests to demonstrate the presence of these features.
  • Developers evolve the design of the system to gracefully support all the features in the system. Without careful planning, this process falls apart.
  • The client team must choose the best possible features to implement.
  • The team must react as positively as possible to the inevitable setbacks.
  • Development team members must not over commit, or they will slow down.
  • The development team must not under commit, or the client won't get value for their money.
  • Team members must figure out clearly where they are and report this accurately, so that everyone can adjust their plans accordingly.

Our Process

Clients define functionality using business language, and prioritize those requests based on the value added. Progressing through the process, functional requirements are broken into even smaller pieces and detailed by the client. Development and Quality Assurance teams work to fulfill the functional requirements in the order prioritized by the client.

How does this differ from previous approaches?

Previous approaches saw outsourced teams operating in a rogue fashion with little or no oversight. The outsourced team prioritized items to be completed, which was not always inline with the client's expectations or rapidly changing business needs. Changes were difficult to accept, costly to implement, and inherently carried greater risk to the business. The agile process tries to enable efficient and practical interaction between client representatives and Metova's software delivery efforts. Metova prides itself on transparency. Clients may logon at anytime to Jira and see any level of detail they choose including functionality currently in progress, by which developer, as well as the roadmap for future progress. Changes can be made quickly, and the impact to cost as well as risk is clearly represented.

Who should be involved?

Client representatives will be responsible for guiding and prioritizing development. It is best to involve client information technology personnel and designated business representatives that are intended to utilize the software solution.

How does remote customer relationships impact the implementation of the Agile methodology?

The Agile methodology fundamentally works the same, but it is accelerated because it is critical to reduce the communication gap. With that in mind, each User Story is typically smaller, and each development effort is kept on a cadence of weekly Iteration delivery to the customer.

Process Requirements

The client can dramatically improve risk factors and the quality of deliverables by following the Metova Process and all of the following requirements:

  • All information exchanged about the work to be performed is communicated through Jira, Metova's online issue tracker. In order to ensure an excellent service level, Metova must be very organized and it is necessary for the client to at least minimally engage with Metova through Jira. Email is not an acceptable way to discuss or resolve issues due to the large amount of information that must be tracked through the development process.
  • Iterations are represented as versions in Jira.
  • Iterations have a fixed time (usually one week), not fixed functionality. Iterations are always released on time, unfinished items are moved to the next iteration. This allows us to remain in-line with client expectations and receive feedback earlier rather than later.
  • Iterations (Jira versions) will be released weekly.
  • Developers will tag the code in Subversion with the same name as the iteration at the same time as the release in Jira. All releases shall be readily recreated from source control through this process.
  • Development builds of each iteration will be delivered weekly. These are for internal use/testing only, the entire team will be notified when an iteration build is slated to be delivered as a milestone to the client.

Search

Searching Development Process

Table of Contents

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© 2011 Metova, Inc.