Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s...
-
Upload
jordan-dunn -
Category
Documents
-
view
217 -
download
0
Transcript of Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s...
Agile methods for software development
HTML5
2
History: waterfall approach
• 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering what was needed
Maintain
Plan
Analyse
Implement
Deploy
Time
3Some common types of project
failure:
1. The system fails to meet the business requirements for which it was developed– The system is either abandoned or expensive adaptive
maintenance is undertaken2. There are performance shortcomings in the system,
which make it inadequate for the users needs– It is abandoned or amended incurring extra costs
3. Errors appear in the developed system cause unexpected problems– Patches have to be applied at extra cost
4. Users reject the imposition of the system, for political reasons, lack of involvement in its development or lack of commitment to it– The system is subverted or abandoned
5. Systems are initially accepted but over time become unmaintainable and so pass into disuse
4
History: prototyping
– "Prototyping is a technique of a working model (crude and incomplete) of a system that could be speedily constructed for user clarification. It helps in communicating the dynamics of the situation, which static paper description fails to demonstrate.”
(Mayhew and Dearnley 1983)
• A response to the problems of waterfall models, popular from the late 1980s
• Split into – Throwaway prototyping– Evolutionary prototyping
Mayhew P. J. and Dearnley P. A. (1983) In favour of of System Prototypes and their Integration into the Systems Development Cycle. Computer Journal, 26(1):36-42; http://doi:10.1093/comjnl/26.1.36
5History: Rapid Applications
Development (RAD)
• Developed from evolutionary prototyping thinking
• Attempt to quickly convert prototypes into production systems by incremental development
• Quick, but dirty and difficult to maintain• Does not scale well to larger systems
6
History: Throwaway prototyping
• Basic idea– Discover initial requirements– Build a quick very incomplete version
containing just enough to let users see how it works
– Refine the requirements until they are reasonably stable and complete
– Throw the prototype out– Start implementation phase
• Good for uncertain requirements, complex systems, scales well
• Does not deliver working software rapidly
7
Agile methods
• "Web-age" approach evolved from RAD thinking• Main ideas
– Deliver working code quickly, using very short development cycles (2-6 weeks)
– Users are part of the team– Test early, test often, test everything– Program in pairs– Don't spend much time planning or analysing at the
start of a project
• Good for projects that have well-defined parts, uncertain requirements, need for speed; produces reliable code
• Does not scale well, or deal with great complexity as there is little centralised control or management
8Dynamic Systems Development
Method (DSDM)
• Basic idea to take Agile development approach and add enough project management to– Manage large and complex projects– Deal with technology risks
• Introduces a "Starting" phase to develop overall framework and plan with– Feasibility study– Business study
• Development broken down into– "Stages", each of which is properly reviewed and
consists of– One or more "timeboxes" which are run as small agile
projects, but use MoSCoW priorities
• Has set of well-defined roles for people
9 MoSCoW Prioritisation
MoSCoW only meaningful within a timeframe(e.g. Project/Incremet/Timebox)
Hierarchical breakdown
Must
Should
Could
Won’t
Minimum usable subset
Significant benefits. Work- arounds possible but costly
Significant benefits. Work- arounds easy or cheap
Out of scope this time
1 2 43 5 6 7 8 9
I guarantee this
All out to achieve this
Best endeavours
We’ll re-prioritisenext time
S C W M S C WM
M S S C
60%
40%
EstimatedEffort
© 1995-2001 DSDM Consortium
10
DSDM ideas
– DSDM assumes that 80% of the solution can be produced in 20% of the time it would take to produce the complete solution.
– DSDM assumes that all previous steps of the development process can be revisited as part of its iterative approach, so the current step need only be completed enough to move to the next.
11
DSDM principles
1. Active user involvement is imperative.
2. DSDM teams must be empowered to make decisions.
3. The focus is on frequent delivery of products.
4. Fitness for business purpose is the essential criterion for acceptance of deliverables.
5. Iterative and incremental development is necessary to converge on an accurate business solution.
6. All changes during development are reversible.
7. Requirements are base lined at a high level.
8. Testing is integrated throughout the lifecycle.
9. A collaborative and co-operative approach between all stakeholders is essential.
12
Pairs programming
• "Two heads are better than one"• Fewer mistakes
– Continuous code review
• Better code – Faster coding– Better quality solutions
• More satisfying– "pair programmers are more self-sufficient,
perform better and are more likely to complete the class with a C or better" (Williams et al. 2002)
13
Resources
• Larman C. and Basili V. R. (2003) Iterative and Incremental Development: a brief history. IEEE Computer, 36(6), 47-56
• The Agile Manifesto (2001) http://www.agilemanifesto.org• Nerur, S., Mahapatra, R., and Mangalaraj, G. 2005. Challenges of
migrating to agile methodologies. Commun. ACM 48(5), 72-78. DOI= http://doi.acm.org/10.1145/1060710.1060712
• Layman, L., Williams, L., and Cunningham, L. 2004. Motivations and measurements in an agile case study. Workshop on Quantitative Techniques For Software Agile Process (Newport Beach, Cal.), 14-24. DOI= http://doi.acm.org/10.1145/1151433.1151436
• Ambler S. (2007) Agile Requirements Best Practices http://www.agilemodeling.com/essays/agileRequirementsBestPractices.htm
• Davies R. (2005) Agile Requirements part 1 (of 3, linked) http://www.methodsandtools.com/archive/archive.php?id=27
• Williams, L., Yang, K., Wiebe, E., Ferzli, M., and Miller, C., "Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations," presented at OOPSLA Educator's Symposium, Seattle, WA, 2002
HTML5
14
Motivation
• Evolve HTML, don’t start again• Compatible with XHTML, HTML4
– can write HTML5 in either style– XHTML style enforces standards
15
What is HTML5?
• A suite of tools for– Markup (HTML 5)– Presentation (CSS 3)– Interaction (JavaScript)
16
New features: document flow
• section shows the document structure – can be used with h1,… ,h6 elements
• article is an independent piece of content– e.g. a blog entry or newspaper article
• aside is a piece of content that is only slightly related to the rest of the page– similar to a sidebar in a magazine article
• header for introductory or navigational aids • footer for a section
– author details, copyright information, etc.
• nav is a section of the document intended for navigation
17
New features: form controls18
• calendar• date• time• email• url• search
New features: figure
• figure refers to a non-text unit of a document– <figure>
<video src="example.webm" controls></video> <figcaption>Example</figcaption> </figure>
– figcaption can be used for a caption (optional)
19
figure
Image, video, table, diagram, …
caption
New features: media
• Currently no web standard for video or audio on a page, so relies on browser plugins
• audio– formats in HTML5 Ogg Vorbis, MP3, wav
• video– formats in HTML5 Ogg, MPEG4, WebM
• embed
20
New features: graphics
• canvas Uses JavaScript to give pixel-by-pixel control over a rectangular area– paths– gradients– image manipulation– events
• svg – direct inclusion of vector drawing commands
21
New HTML features: storage
• Local data storage– session– long term
• Replace cookies– cookies can’t store much data sa they are
transmitted by every request to the server
• Manipulated by JavaScript, browser based SQLite or IndexedDB
22
CSS3
• Rounded corners• Gradients• Box and text shadows• Fonts• Transparencies• Multiple background images and border images• Multiple columns and grid layout• Box sizing• Stroke and outlines• Animation, movement and rotation• Improved selectors
23
HTML5 summary
• New HTML features• CSS3• JavaScript
24
Resources
• W3C for the current versions of all documents
• Advocacy sites– http://html5rocks.com– http://html5watch.tumblr.com– http://www.css3.info– http://css3generator.com
25