Internet-Speed Development
Encyclopedia
Internet-Speed Development is an Agile Software Development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

 development method using a combined spiral model
Spiral model
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model , it is a systems development method used in information technology...

/waterfall model
Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...

 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 is was very rigid and not very flexible when it comes to changes in requirements, while the disadvantage of the spiral model was that is 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
Microsoft Solutions Framework
Microsoft Solutions Framework is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology solutions from Microsoft. MSF is not limited to developing applications only, it is also applicable to other IT projects like deployment, networking or...

.

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)
Scope (project management)
In project management, the term scope has two distinct uses: Project Scope and Product Scope.Project Scope"The work that needs to be accomplished to deliver a product, service, or result with the specified features and functions."Product Scope...

. 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.
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
Scope Creep in project management refers to uncontrolled changes or continuous growth in a project's scope. This phenomenon can occur when the scope of a project is not properly defined, documented, or controlled...

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 build 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
Daily build
A daily build or nightly build is the practice of each day doing a software build of the latest version of a program. This is so it can first be compiled to ensure that all required dependencies are present, and possibly tested to show no bugs have been introduced...

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 in 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
Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...

, RUP, DSDM and Feature Driven Development
Feature Driven Development
Feature-driven development is an iterative and incremental software development process. It is one of a number of Agile methods for developing software and forms part of the Agile Alliance. FDD blends a number of industry-recognized best practices into a cohesive whole. These practices are all...

. 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. The development phase of Internet-speed development also shows some similarities with the open-source software
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...

 development model because many different 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 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 followed:
Figure 2: Envisioning phase process/data model





























Activity




Definition (source)


Analyze requirements








During
the envisioning phase, business requirements must be identified
and analyzed.


These are refined more rigorously
during the planning phase.”



(MSF Process model )


Define Goals and Constraints








Envisioning,
by creating a high-level view of the project’s goals and
constraints.”




(MSF Process model




Form Team




Formation of the core team.




Create Vision/scope


The
preparation and delivery of a vision/scope document.”




(MSF Process model )




Create Risk assessment


During
the envisioning phase, the team prepares a risk document and
presents the top risks.”




(MSF Process 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.

















































Concept




Definition (source)




VISION/SCOPE DOCUMENT


Document
defining the Vision and Scope.”




(MSF Process model )




VISION


Vision
is an unbounded view of what a solution may be.“




(MSF Process model )




SCOPE


Scope
identifies the part(s) of the vision can be


accomplished within the project
constraints.”




(MSF Process model )




RISK ASSESSMENT DOCUMENT


Standardized
document for Risk Assessment“




(MSF Risk Management Discipline )




PRIORITIZED RISK LIST


Detailed
risk information including project condition, context, root cause,
and the metrics used for prioritization (probability, impact,
exposure) are often recorded for each risk in the risk statement
form.”




(MSF Risk Management Discipline )




RISK PLANNING


Translation
of the prioritized risk list into action


plans.”



(MSF Risk Management Discipline )




PROJECT STRUCTURE DOCUMENT


The
project structure document includes information on how the team is
organized and who plays which roles and has specific
responsibilities. The project structure document also clarifies
the chain of accountability to the customer and designated points
of contact that the project team has with the customer. These can
vary depending on the circumstances of the project.”




(MSF Process model)




TEAM ORGANIZATION


Information
on how the team is organized.”




(MSF Process model )




CONTACT POINTS


Designated
points of contact that the project team has with the customer.”




(MSF Process model)




TEAM ROLES


Definition
of who plays which roles and has specific responsibilities.”




(MSF Process model


Table 2: Concepts in the envisioning phase

Planning Phase

Figure 3: Planning phase process/data model


























































Activity




Definition (source)


Define Requirements












Early
in the planning phase, the team analyzes and documents
requirements in a list or tool. Requirements fall into four broad
categories: business requirements, user requirements, operational
requirements, and system requirements (those of the solution
itself).”




(MSF Process model


Trace Requirements to Features








As
the team moves on to design the solution and create the functional
specifications, it is important to maintain traceability
between requirements and features. Traceability does not have
to be on a one to one basis. Maintaining traceability serves as
one way to check the correctness of design and to verify that the
design meets the goals and requirements of the solution.”




(MSF Process model


Define Functional Specification








The
team prepares the functional specification.”




(MSF Process model












Create Planning




Estimate Risks




Team creates a risk estimation.




Estimate Costs




Team creates a costs estimation.




Create work plans




Team creates work plans.




Create Schedules




Team creates schedules.
















































Create Design




Create Use-Case Model


This
begins with a systematic analysis of user profiles


(also
called “personas”) which describe various types of
users and their job functions (operations staff are users too).
Much of this is often done during the envisioning phase. These are
broken into a series of usage scenarios, where a particular
type of user is attempting to complete a type of activity, such as
front desk registration in a hotel or administering user passwords
for a system administrator. Finally, each usage scenario is broken
into a specific sequence of tasks, known as use cases,
which the user performs to complete that activity. This is called
“story-boarding.””




(MSF Process model




Create Conceptual Design




Creation of a conceptual design.




Create Logical Design




Creation of a logical design.




Create Physical Design




Creation of a physical design.




Create Architecture




Creation of the architecture for the product.


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
MoSCoW Method
MoSCoW is a prioritisation technique used in business analysis and software development to reach a common understanding with stakeholders on the importance they place on the delivery of each requirement - also known as MoSCoW prioritisation or MoSCoW analysis.According to A Guide to the Business...

 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.









































Concept




Definition (source)




REQUIREMENTS LIST


Documentation
of requirements in a list or tool.”




(MSF Process model




RISK MANAGEMENT PLAN


Document
on how the team plans to implement the risk management process
within the context of the project.”




(MSF Risk Management Discipline )




MASTER PROJECT PLAN


All
plans are synchronized and presented together as the master
project plan.”




(MSF Process model




WORKPLANS


A
plan or plans for the deliverables that pertain to the role and
participates in team planning sessions.”




(MSF Process model




COST ESTIMATES




An estimation of the costs of the project.




SCHEDULES


Time
estimates and schedules for Deliverables.”




(MSF Process model




MASTER PROJECT SCHEDULE


The
various schedules are then synchronized and integrated into a
master project schedule.”




(MSF Process model




FUNCTIONAL SPECIFICATION


The
functional specification describes in detail how each feature is
to look and behave. It also describes the architecture and the
design for all the features.”




(MSF Process model


Table 4: Concepts in the planning phase

Development phase

Figure 4: Developing phase process/data model
























Activity




Definition (source)


Develop Features








Building
of solution components (documentation as well as code).”


(MSF Process model



Also includes testing after the daily build, bug fixing and
evaluating the features.


Create Daily Build










Creation of a build after a workday.


Finalize Scope








At
this milestone, all features are complete and the solution is
ready for external testing and stabilization.”




(MSF Process model


Develop Infrastructure








The
infrastructure is developed.”




(MSF Process 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.












































Concept




Definition (source)




INSTALLATION SCRIPTS AND CONFIGURATION SETTINGS FOR DEPLOYMENT




A collection of scripts and settings needed for the product to
install/run.




INSTALLATION SCRIPTS




The scripts needed to install the product.




CONFIGURATION SETTINGS




The configuration properties of the product.




PERFORMANCE SUPPORT ELEMENTS




Elements that support the performance of the product (extra
databases, servers etc.).




TEST SPECIFICATIONS AND TEST CASES




Specification of the tests and test cases used to validate the
product.




FUNCTIONAL SPECIFICATION


The
functional specification describes in detail how each feature is
to look and behave. It also describes the architecture and the
design for all the features.”




(MSF Process model




SOURCE CODE AND EXECUTABLES




The source code/executables combination.




SOURCE CODE




The source code of the product.




EXECUTABLE




The executable created by source code.


Table 5: Concepts in the developing phase

stabilization phase

Figure 5: Stabilization phase process/data model
























Activity




Definition (source)


Testing








Testing
during this phase emphasizes usage and operation under realistic
environmental conditions.“




(MSF Process model


Resolve Bugs








The
team focuses on resolving and triaging (prioritizing) bugs and
preparing the solution for release.”




(MSF Process model


Deploy Pilot








Once
a build has been deemed stable enough to be a release candidate,
the solution is deployed to a pilot group.”




(MSF Process model


Review








Once
reviewed and approved, the solution is ready for full deployment
to the live production environment.”




(MSF Process 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.
















































Concept




Definition (source)




TEST RESULTS AND TESTING TOOLS




Collection of test results and tools used for testing.




TEST RESULTS




Results of executed tests.




TESTING TOOLS




Tools used for testing.




GOLDEN RELEASE




The version used for the final reviewing.




RELEASE NOTES




Notes for a release version.




SOURCE CODE AND EXECUTABLE




The source code/executables combination.




SOURCE CODE




The source code of the product.




EXECUTABLE




The executable created by source code.




MILESTONE REVIEW




Review of the final version and the project documents.




PROJECT DOCUMENTS




Collection of all the project documents.


Table 7: Concepts in Stabilization phase

deployment phase

Figure 6: Deployment phase process/data model
































Activity




Definition (source)


Deploy the Core Components











Deployment of all components needed by the product (such as
database servers, mail servers etc.)


Deploy the solution on site










For tailor-made systems deployment of the product occurs here
(can be skipped for software products).


Stabilize the deployment










Tacking, monitoring and improving the deployed components.


Transfer the project to operations
and support










Transferring all documents and code to the operations and
support team.


Obtain final approval from customer








The
customer must agree that the team has met its objectives before it
can declare the solution to be in production and close out the
project. This requires a stable solution, as well as clearly
stated success criteria. In order for the solution to be
considered stable, appropriate operations and support systems must
be in place.”




(MSF Process model )


Review the project










Final review of the project.


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.




























































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
    AbiWord is a free and open source software word processor. It was originally started by SourceGear Corporation as the first part of a proposed AbiSuite. Development stopped when SourceGear changed their focus to Internet appliances. AbiWord was adopted by some open source developers and AbiWord...

    , Calligra Words) For making text documents like a vision statement or scope document.
  • Spreadsheets (examples: Microsoft Excel, OpenOffice.org Calc, Gnumeric
    Gnumeric
    Gnumeric is a spreadsheet program that is part of the GNOME Free Software Desktop Project. Gnumeric version 1.0 was released December 31, 2001. Gnumeric is distributed as free software under the GNU GPL license; it is intended to replace proprietary and other spreadsheet programs such as Microsoft...

    , Calligra Tables) For making prioritized risk lists and making cost calculations.
  • Project tools (examples: Microsoft Project, OpenProj
    OpenProj
    OpenProj is an open source project management software intended as a complete desktop replacement for Microsoft Project, being able to open existing native Project files. It was developed by Projity in 2007...

    , Gnome Planner, Calligra Plan) For planning project activities.
  • Database and database management tools (examples: MS SQL Server, MySQL
    MySQL
    MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

    , Oracle, PostgreSQL
    PostgreSQL
    PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...

    ) For making knowledge bases.
  • Automated testing tools (examples: Test scripts) For executing tests after each daily build.

See also

  • Agile software development
    Agile software development
    Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

  • Incremental and iterative development
  • Microsoft Solutions Framework
    Microsoft Solutions Framework
    Microsoft Solutions Framework is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology solutions from Microsoft. MSF is not limited to developing applications only, it is also applicable to other IT projects like deployment, networking or...

  • DSDM
  • MoSCoW Method
    MoSCoW Method
    MoSCoW is a prioritisation technique used in business analysis and software development to reach a common understanding with stakeholders on the importance they place on the delivery of each requirement - also known as MoSCoW prioritisation or MoSCoW analysis.According to A Guide to the Business...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK