webmail customer support search
Login to webmail

Software Development

Software engineering

Introduction

Software development is a complicated process. According to recent surveys over 70% of all software development projects fail. In the midst of this Mission Data has a reputation of constantly delivering projects on time, on budget. To understand this let's explore the field of Software Engineering.

Using the terminology of the Rational Unified Process(RUP), the software development process consists of the phases of Inception, Elaboration, Construction, and Transition. Mission Data can help your organization in each of these phases, as described next.

Inception

The Inception Phase describes the work performed just after "aha" moment when you've had a great idea for building a new application or modifying an existing one. In this phase we explore and build-out the idea, answering the question "Should we build it?" We'll work with you to define the application, and understand the risks involved. Using techniques borrowed from "Design For Six Sigma", the Unified Modeling Language (UML), and other business analysis processes we'll work with you to design your system. Using Function Point Analysis (FPA) combined with proven empirical techniques, we'll help you understand the potential costs involved.

As this phase concludes we'll typically develop a Requirements Specification, Request For Proposal (RFP), Request For Quote (RFQ).

Elaboration

Next, if we're proceeding with a RUP project, we answer the question "How do we build it?" We begin creating a Project/Phase Plan, detailing development iterations, and discussing risks that we are mitigating.

In a project where we use an Agile process like eXtreme Programming (XP) or Scrum, we jump almost immediately to the Construction phase. This doesn't mean we don't consider risks -- indeed, we actively attack them with techniques such as architectural spikes and test-first programming.

Construction

Whether we're working in a RUP or Agile manner, the Construction Phase proceeds in development iterations (also known as "sprints"). At this point we're building the software as rapidly as possible, using languages like Java, C#.NET, Ruby, and others. We use best-of-breed tools, our own best practices (source code control, repeatable builds, automated testing, and more), and a large base of pre-written, pre-tested code to make development as rapid as possible. In most large projects we also provide training and mentoring services to as our team works side-by-side with your development team.

As the customer you'll get to see the working application as it's developed. From the first view until the final product the application will always be in a working state, either in a Test or Production environment.(Oftentimes you'll hear that a project is "50%" or "90%" done -- but you can't test it because it won't run!)

Transition

In the Transition Phase we take the project live. We finish final user acceptance testing, create user and developer documentation, and deploy your project to the best servers in the industry, housed at the world-class data center facilities provided by Peak 10.

Software Development