Internet-speed development: Difference between revisions

Content deleted Content added
Changing short description from "An agile software development method" to "Agile software development method"
 
(10 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Agile software development method}}
'''Internet-Speed Developmentdevelopment''' is an [[Agile Software Development]] development method using a combined [[spiral model]]/[[waterfall model]] 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.<ref>Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003</ref>
Line 7 ⟶ 8:
 
==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==
Line 16 ⟶ 17:
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 buildbuilt 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]]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 init 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]], [[Rational Unified Process]], [[Dynamic systems development method|DSDM]] and [[Feature Driven Development]]. 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.<ref>As shown in the paper of Zuser, Heil and Grechening.</ref> The development phase of Internet-speed development also shows some similarities with the [[open-source software]] 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==
Line 31 ⟶ 32:
 
===Envisioning phase===
The envisioning phase can be modeled as followedfollows:
[[File:Envisioning.jpg]]
 
Line 189 ⟶ 190:
|}
''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.
{| class="wikitable"
|-
Line 404 ⟶ 405:
|}
''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"
|-