25
Agile methods for software development HTML5

Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

Embed Size (px)

Citation preview

Page 1: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

Agile methods for software development

HTML5

Page 2: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

2

History: waterfall approach

• 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering what was needed

Maintain

Plan

Analyse

Implement

Deploy

Time

Page 3: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 4: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 5: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 6: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 7: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 8: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 9: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 10: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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.

Page 11: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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.

Page 12: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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)

Page 13: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 14: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

HTML5

14

Page 15: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

Motivation

• Evolve HTML, don’t start again• Compatible with XHTML, HTML4

– can write HTML5 in either style– XHTML style enforces standards

15

Page 16: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

What is HTML5?

• A suite of tools for– Markup (HTML 5)– Presentation (CSS 3)– Interaction (JavaScript)

16

Page 17: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 18: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

New features: form controls18

• calendar• date• time• email• url• search

Page 19: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 20: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 21: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 22: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 23: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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

Page 24: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

HTML5 summary

• New HTML features• CSS3• JavaScript

24

Page 25: Agile methods for software development HTML5. 2 History: waterfall approach 1970s and 1980s Waterfall approach dominated slow, expensive, not delivering

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