Internet-Speed Development
   HOME

TheInfoList



OR:

Internet-Speed Development is an Agile Software Development development method using a combined
spiral model The spiral model is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolu ...
/
waterfall model The waterfall model is a breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. ...
with daily builds aimed at developing a product with high speed. It was developed in the late nineties because software development was changing rapidly. Companies were having problems delivering products with the correct requirements within the time scheduled for the project and as such were changing to more agile software development methods. More details about how the internet-speed method was developed can be seen in the evolutionary map in the paper of Abrahamsson.


Main ideas behind Internet-Speed Development

Often one of the biggest problems in software engineering is that the requirements change quickly and the internet-speed development method was created to adapt to this situation. The idea is to combine two main standards in software engineering models namely the spiral model and the waterfall model into a new model and base a new software engineering method on this new model. The main disadvantage of the waterfall model was that it was very rigid and not very flexible when it comes to changes in requirements, while the disadvantage of the spiral model was that it was not very structured. The idea behind internet-speed development is that the combination of these models will result in a method which does not have these disadvantages and is a better method to use in situations where requirements can change rapidly, but the project has to be executed in a structured way.


Goal of the method

The goal of the internet-speed development method is to allow software developers to perform a project in a structured way, but still be able to adapt to the needs of the customer. It aims to deliver a software product in a short time through intensive development. The method provides a means to deliver a fully implemented system and also has ways to determine progress in a project through the use of milestones. One of the main versions of this method is created by Microsoft and is called the Microsoft Solutions Framework.


The concepts behind Internet-speed development method

The first concept that is very important to internet-speed development is the creation of a vision and
scope (project management) In project management, scope is the defined features and functions of a product, or the scope of work needed to finish a project. Scope involves getting information required to start a project, including the features the product needs to meet its s ...
. What this means is that in the beginning of the project a global definition of the system is created which explains what the system aims to be and what is within the scope and what is not. This is one of the fundamental steps as it gives the developers some guidelines as to what the system will be without freezing any requirements. The scope can be documented in a
vision statement A vision statement is an inspirational statement of an idealistic emotional future of a company or group. Vision describes the basic human emotion that a founder intends to be experienced by the people the organization interacts with. The Infinit ...
. Another very important concept within this method is scope management. The scope needs to be managed throughout the project to prevent
scope creep Scope creep (also called requirement creep, or kitchen sink syndrome) in project management refers to changes, continuous or uncontrolled growth in a project’s scope, at any point after the project begins. This can occur when the scope of a pr ...
ing which results in delays. The scope will be determined early and changes to the scope (like adding additional features which were at first considered beyond the scope of the project) will be evaluated and either accepted or rejected. Changes in the scope can be made but this will always be affected by trade offs between features, resources and time. The internet-speed development method is very different from the traditional methods and therefore uses Agile method principles. It focuses on adaptation to requirements and as such is based on the basic principles of Agile software development. Internet-speed development also focuses on using one fixed framework architecture from which the product is built and relies heavily on tools to increase the development speed. Another basic concept of internet-speed development is that it also focuses on using small teams. The idea is that all projects can be divided into smaller activities which often can be done parallel. Smaller teams can often be more focused on their task and it is easier to determine accountability and monitor progress within the project. The last concept discussed in this entry of internet-speed development is the concept of parallel development. This concept basically means that all the software development is done in parallel as often as possible. This will allow very quick development and it allows the smaller teams to focus on their own feature as much as possible which has a good result on quality. To ensure that the smaller teams do work together to create the final system it is however needed to synchronize their development frequently. This can be done using
daily build A daily build or nightly build is the practice of completing a software build of the latest version of a program, on a daily basis. This is so it can first be compiled to ensure that all required dependencies are present, and possibly tested to s ...
s which means that all the developers check their code in at the end of the day after which a build is created which can then be evaluated and tested to monitor progress. After a feature is completed in the build it needs to be tested and refined which is sometimes called the synch-and-stabilize process. The developed features are synchronized with the build and tested. After these tests any bugs will be corrected and the feature can be refined to work better (which is the stabilization part). Internet-speed development is based on the agile principles and as such it has a lot of similarities with
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
,
Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proce ...
, DSDM and
Feature Driven Development Feature-driven development (FDD) is an iterative and incremental software development process. It is a lightweight or Agile method for developing software. FDD blends a number of industry-recognized best practices into a cohesive whole. These pr ...
. Internet-speed development is different however from these methods as it also incorporates a more extensive risk-management planning and has quality as a very important objective of a project.As shown in the paper of Zuser, Heil and Grechening. The development phase of Internet-speed development also shows some similarities with the
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
development model because many developers around the globe can be part of the development process because of communication through the Internet and the use of repositories for storing the code and documentation.


The phases of Internet-Speed Development

The model behind this method looks like this: ''Figure 1: Phase model'' This model shows the five basic phases of the method. These phases will be explained in the following sections of this entry. The phases are: Envisioning, Planning, Developing, Stabilizing and Deploying. After this cycle has been completed a version of the system is ready and a new cycle begins to create a new version. The phases are explained in the following sections and are shown through a
meta-modeling A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
technique. More details about multiplicities and concepts in a project context can be seen in the overall data model later on.


Envisioning phase

The envisioning phase can be modeled as follows: ''Figure 2: Envisioning phase process/data model'' ''Table 1: Envisioning activities'' The basic activities performed in the envisioning phase are analyzing the requirements, forming the team for the project, determining the risks and the scope of the project. From the requirements and the goals of the project a Vision/Scope document is created. This document describes what the product is to be when it is delivered. It does not contain very detailed functionalities of the product. ''Table 2: Concepts in the envisioning phase''


Planning Phase

''Figure 3: Planning phase process/data model'' ''Table 3: Planning activities'' In the planning phase a functional specification is created from the requirements. Features selected are included in this specification (a MoSCoW Method is often used for the features so they can be prioritized more easily). Also, the basic design and planning are created in this phase. The design however is in this phase not frozen as changes may be made in the development phase. ''Table 4: Concepts in the planning phase''


Development phase

''Figure 4: Developing phase process/data model'' ''Table 5: Developing activities'' The most important activity in the developing phase is the development of the features. Besides the implementation of these features the scope is also finalized in this phase. During development new features may be added to the product, but once the scope is finalized the features become frozen and ready for testing and stabilizing. The infrastructure is also developed in this phase which means that network structures are identified and servers like for example a database server are defined. ''Table 5: Concepts in the developing phase''


stabilization phase

''Figure 5: Stabilization phase process/data model'' ''Table 6: Stabilization activities'' The main activities are the testing and resolving of bugs. Once a build version is considered stable enough for a pilot a pilot version is created and deployed. From this pilot it will either go back into the testing/stabilizing loop or it will be approved and reviewed. ''Table 7: Concepts in Stabilization phase''


deployment phase

''Figure 6: Deployment phase process/data model'' ''Table 8: Deploying activities'' The main activity in the deploying phase is the installation of the infrastructure needed to run the product (deployment of servers etc.). Also, the documents are finalized and transferred to the operations and support department, a knowledge base is created and the product and project are reviewed by the customer (if applicable) and the project team. {, class="wikitable" , - ! Concept ! Definition (source) , - , PROCEDURES AND PROCESSES , Collection of procedures and processes. , - , PROCEDURES , Collection of procedures to be used for installation and operation of the product. , - , PROCESSES , Collection of processes to be used for installation and operation of the product. , - , KNOWLEDGE BASE, REPORTS, LOGBOOKS , Collection of the knowledge base, reports and logbooks. , - , KNOWLEDGE BASE , The knowledge base associated with the product. , - , REPORTS , The reports associated with the product. , - , LOGBOOKS , Logbooks associated with the product. , - , DOCUMENT REPOSITORY , A repository of all documents. , - , FINAL VERSIONS OF ALL PROJECT DOCUMENTS , The final versions of the project documents. , - , OPERATION AND SUPPORT INFORMATION SYSTEMS , Systems used by the operation and support teams associated with the product. , - , CUSTOMER/USER SATISFACTION DATA , Collection of data from the customer/user about his satisfaction with the product. , - , DEFINITION OF NEXT STEPS , Description of next steps to take for evolving the product. , - , PROJECT CLOSE-OUT REPORT , Final report on the product, project and the transfer to operations and support. ''Table 9: Concepts in Deploying phase''


Overall data model

''Figure 7: Overall data model'' This data model shows all the concepts with multiplicities and relations in a full project context.


Tools for use with Internet-Speed Development

* Drawing tools (examples: Microsoft Visio, Rational Rose, Dia) For making diagrams. * Word processors (examples: Microsoft Word, OpenOffice.org Writer,
AbiWord AbiWord () is a free and open-source software word processor. It is written in C++ and since version 3 it is based on GTK+ 3. The name "AbiWord" is derived from the root of the Spanish word "'' abierto''", meaning "open".Project MascoAbi the An ...
, Calligra Words) For making text documents like a vision statement or scope document. * Spreadsheets (examples: Microsoft Excel, OpenOffice.org Calc,
Gnumeric Gnumeric is a spreadsheet program that is part of the GNOME Free Software Desktop Project. Gnumeric version 1.0 was released on 31 December 2001. Gnumeric is distributed as free software under the GNU General Public License; it is intended to r ...
,
Calligra Sheets Calligra Sheets (formerly ''KSpread'' and ''Calligra Tables'') is a free software spreadsheet application that is part of Calligra Suite, an integrated graphic art and office suite developed by KDE. Among Sheets’ features are multiple sheets ...
) For making prioritized risk lists and making cost calculations. * Project tools (examples: Microsoft Project,
OpenProj OpenProj was an open-source project management software application. It has not been updated since 2008 and is not supported. Serena Software asked users to use ProjectLibre instead. History and status Marc O'Brien, Howard Katz, and Lauren ...
, Gnome Planner,
Calligra Plan Calligra Plan (formerly ''KPlato'') is a project management application that can create Gantt-style charts and is part of Calligra Suite – formerly included with KOffice. History Work on Plan was started in 2004 under the name KPlato ( K PL ...
) For planning project activities. * Database and database management tools (examples: MS SQL Server,
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
, Oracle, PostgreSQL) For making knowledge bases. * Automated testing tools (examples: Test scripts) For executing tests after each daily build.


See also

* Agile software development * Incremental and iterative development *
Microsoft Solutions Framework Microsoft Solutions Framework (MSF) is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology services from Microsoft. MSF is not limited to developing applications only; it is also applicable to ...
*
Dynamic systems development method Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (R ...
(DSDM) * MoSCoW Method


Notes


References

*Microsoft June 2002 Microsoft Solutions Framework (White Paper) Microsoft Press *Microsoft June 2002 MSF Risk Management Discipline v.1.1 (White Paper) Microsoft Press *Wolfgang Zuser, Stefan Heil, Thomas Grechenig 2005 Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study Proceedings of the 2005 workshop on Software quality *Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003 New Directions on Agile Methods: A Comparative Analysis ICSE *Michael A. Cusumano, David B. Yoffie 1999 Software Development on Internet Time 32 IEEE *Balasubramaniam Ramesh, Jan Pries-Heje 2002 Internet Software Engineering: A Different Class of Processes Annals of Software Engineering 14 169–195 Software architecture