Content deleted Content added
→Tools for use with Internet-Speed Development: Calligra Tables -> Sheets |
LucasBrown (talk | contribs) Changing short description from "An agile software development method" to "Agile software development method" |
||
(13 intermediate revisions by 13 users not shown) | |||
Line 1:
{{Short description|Agile software development method}}
'''Internet-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>
==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
==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
==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
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
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
==The phases of Internet-Speed Development
The model behind this method looks like this:
[[File:PhaseModel.jpg]]
Line 31 ⟶ 32:
===Envisioning phase===
The envisioning phase can be modeled as
[[File:Envisioning.jpg]]
Line 40 ⟶ 41:
! 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)<ref name="ReferenceA">Microsoft Solutions White Paper June 2002</ref>
|-
| Define Goals and Constraints
|“Envisioning, by creating a high-level view of the project’s goals and constraints.”
Line 51 ⟶ 52:
|Form Team
| Formation of the core team.
|-
| Create Vision/scope
| “The preparation and delivery of a vision/scope document.”
Line 77 ⟶ 78:
(MSF Process model)<ref name="ReferenceA"/>
|-
| SCOPE
| “''Scope'' identifies the part(s) of the vision can be accomplished within the project constraints.”
(MSF Process model)<ref name="ReferenceA"/>
|-
| RISK ASSESSMENT DOCUMENT
| “Standardized document for Risk Assessment”
Line 97 ⟶ 98:
(MSF Risk Management Discipline)<ref name="ReferenceB"/>
|-
| 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.”
Line 107 ⟶ 108:
(MSF Process model)<ref name="ReferenceA"/>
|-
| CONTACT POINTS
| “Designated points of contact that the project team has with the customer.”
(MSF Process model)<ref name="ReferenceA"/>
|-
| TEAM ROLES
| “Definition of who plays which roles and has specific responsibilities.”
Line 121 ⟶ 122:
===Planning Phase===
[[File:
''Figure 3: Planning phase process/data model''
{| class="wikitable"
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 246 ⟶ 247:
|}
''Table 4: Concepts in the planning phase''
===Development phase===
[[File:Developing.jpg]]
Line 257 ⟶ 259:
| Building of solution components (documentation as well as code).”
(MSF Process model)<ref name="ReferenceA"/>
Also includes testing after the daily build, bug fixing and evaluating the features.
|-
Line 310 ⟶ 312:
|}
''Table 5: Concepts in the developing phase''
===stabilization phase===
[[File:Stabilizing.jpg]]
Line 317 ⟶ 320:
! Activity
! Definition (source)
|-
| Testing
| Testing during this phase emphasizes usage and operation under realistic environmental conditions.“
Line 329 ⟶ 332:
| Once a build has been deemed stable enough to be a release candidate, the solution is deployed to a pilot group.”
(MSF Process model)<ref name="ReferenceA"/>
|-
| Review
| Once reviewed and approved, the solution is ready for full deployment to the live production environment.”
Line 340 ⟶ 343:
! 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.
Line 352 ⟶ 355:
| 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===
[[File:Deploying.jpg]]
Line 401 ⟶ 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"
|-
Line 448 ⟶ 452:
|}
''Table 9: Concepts in Deploying phase''
===Overall data model===
[[File:Datamodel.jpg]]
''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 (software)|Dia]]) For making diagrams.
Line 464 ⟶ 470:
* [[Incremental and iterative development]]
* [[Microsoft Solutions Framework]]
* [[Dynamic systems development method]] (DSDM)
* [[MoSCoW Method]]
|