63
BSc Sc Sc Sc (Hon Hon Hon Hons) s) s) s) Co Co Co Compu pu pu puter ter ter ter games ames ames ames deve eve eve evelop op op opme me me ment Iss ss ss ssues es es es of Agil gil gil gile soft ft ft ftware develop op op opme me me ment when en en en crea ea ea eating a HT HT HT HTML5 game ame ame ame for Ga Ga Ga Galax ax ax axyTab2 Jam Jam Jam Jamie Cater ater ater ater 25/04/ 25/04/ 25/04/ 25/04/2013 13 13 13 Sup up up upervisor: Dr. Joh oh oh ohn N. Sutherland

Honours Dissertation

Embed Size (px)

DESCRIPTION

My computing honours dissertation

Citation preview

Page 1: Honours Dissertation

BBBBScScScSc ((((HonHonHonHons)s)s)s) CoCoCoCommmmpupupuputerterterter ggggamesamesamesames ddddeveeveeveevellllopopopopmemememennnntttt

IIIIssssssssuuuueseseses ooooffff AAAAgilgilgilgileeee ssssooooftftftftwwwwaaaarrrreeee ddddeeeevvvveeeellllopopopopmemememennnntttt wwwwhhhhenenenen ccccrrrreaeaeaeattttiiiinnnngggg aaaa HTHTHTHTMMMMLLLL5555ggggameameameame ffffoooorrrr GaGaGaGallllaxaxaxaxyyyyTTTTaaaabbbb2222

JamJamJamJamiiiieeee CCCCaterateraterater

25/04/25/04/25/04/25/04/2222000013131313

SSSSupupupupeeeerrrrvvvviiiissssoooorrrr:::: DDDDrrrr.... JJJJohohohohnnnn NNNN.... SSSSuuuutttthhhheeeerrrrllllaaaannnndddd

Page 2: Honours Dissertation

P a g e | i

DeclaDeclaDeclaDeclarrrraaaattttiiiioooonnnn

This dissertation is submitted in partial fulfilment of the requirements for the degree ofComputer games development (Honours) in the University of the West of Scotland.

I declare that this dissertation embodies the results of my own work and that it has beencomposed by myself. Following normal academic conventions, I have made dueacknowledgment to the work of others.

Name: JAMIE CATER

Signature:

Date:

Page 3: Honours Dissertation

P a g e | ii

LLLLiiiibbbbrrrraaaarrrryyyy ReReReReffffeeeerrrreeeennnncccceeee SSSShhhheeteeteeteet

SSSSurnurnurnurnaaaamemememeCater

FirFirFirFirsssstttt NNNNaaaamemememe Jamie

IniIniIniInittttiiiiaaaallllssss J.C

BorroBorroBorroBorrowwwweeeerrrr IDIDIDID NumbNumbNumbNumbeeeerrrr B00186941

CourCourCourCoursssseeee CodeCodeCodeCode COMPSCI

CourCourCourCoursssseeee DDDDesesesesccccripripripripttttionionionion Computer Games Development recognises that thefastest growing sector of the computer games industry is for game-playingon smartphones, tablets, internet sites and social networking spaces andthis degree prepares graduates for employment in this rapidly changingenvironment.

PPPProrororojjjjecececectttt SSSSupupupupeeeerrrrvvvviiiissssororororDr. John N. Sutherland

DiDiDiDisssssssseeeerrrrttttaaaattttionionionion TTTTiiiittttlelelele Issues of Agile software development when creating aHTML5 game for GalaxyTab2

SeSeSeSessssssssionionionion 2012/2013

Page 4: Honours Dissertation

P a g e | iii

HonoursHonoursHonoursHonours projectprojectprojectproject specificationspecificationspecificationspecification documentdocumentdocumentdocument

PPPProrororojjjjecececectttt TTTTiiiittttlllleeee:::: Issues of Agile software development when creating a HTML5game for GalaxyTab2

SSSSttttududududeeeennnntttt:::: Jamie Cater BBBBaaaannnnnnnneeeerrrr ID:ID:ID:ID: B00186941

SSSSupupupupeeeerrrrvvvviiiissssor:or:or:or: Dr. John N. Sutherland

MMMMododododeeeerrrraaaattttor:or:or:or: Dr. Mark Stansfield

OuOuOuOuttttlinelinelineline ofofofof PPPProrororojjjjecececectttt::::

This project aims to follow the Agile manifesto which expands on thefundamentals of the principles. The dissertation will analyse the best method ofcreating a game using the Agile manifesto. In order to achieve this, each aspect ofthe Agile manifesto must be examined in turn during the games development. Therise of the HTML5 platform has created a new way of making & playing games. Ishall create a working model of the results using the Pulse game engine(Javascript engine) developed in the Titanium SDK using HTML5/ Javascript forthe Galaxy Tab 2 which shall adhere to research carried out and demonstrate theprocesses involved in creating a successful project when adhering to AAAAggggileileileileprinciples. Analysis of the project’s results will allow me to create design pattern(s)for particular aspects of the project’s development. This will refine the processesfor academics/game developers interested in creating such a project in the future.

AAAA PaPaPaPasssssasasasableblebleble PPPProrororojjjjecececectttt wwwwiiiill:ll:ll:ll:

-Investigate Literature-Design Project-Do the work-Gather in results & analyse them

AAAA FirFirFirFirsssstttt ClClClClasasasasssss PPPProrororojjjjecececectttt wwwwiiiillllllll::::

-Investigate Literature with more convincing representation-Design Project which contains a convincingly structured insight tothe development-Do the work-Gather in results & analyse them-Propose a model/guide for later people doing work in this area

Page 5: Honours Dissertation

P a g e | iv

RRRReaeaeaeadingdingdingding LiLiLiLisssstttt::::

1. Cockburn, Alistair; (2002) “Agile software development”, Addison-Wesley2. Larman, Craig; (2004) “Agile & Iterative development: A manager’s guide”,

Addison-Wesley3. Highsmith, Jim; (2004) “Agile project management”; Addison-Wesley4. Ambler, Scott W.; (2002) “Agile mode ling: Effective practices for extreme

programming and the unified process; John Wiley & Sons, Inc., New York5. Coplien O. James Et al; (2005) “Organizational Patterns of agile software

development”; Pearson Prentice Hall6. Hoda, Rasina Et al ;( 2008) “Victoria University of Welington; Available:7. http://nzcsrsc08.canterbury.ac.nz/site/proceedings/Individual_Papers/pg2

18_ Agile_Project_Management.pdf8. Boehm, Barry; (1989) “Tutorial: Software risk management”, IEEE

Computer society press9. Boehm, Barry Et al ;( 2004) “Balancing Agility and Discipline”, Addison-

Wesley10.Beck, Kent; (2005) “Extreme Programming Explained embrace change”,

Addison-Wesley11.Martin, Robert C; (2009) “Clean code: a handbook of agile software

craftsmanship the object mentors”, Prentice Hall12.Mike, Beedle Et al (2002) “Agile Software Development with Scrum”,

Prentice Hall13.Richards, Keith (2007) “Agile Project Management: Running PRINCE2TM1. projects with DSDM TM Atern TM”, The Stationary Office14.Jutta Eckstein (2004) “Agile software development in the large”, Dorset

house publishing

RRRResesesesourourourourcccceeeessss RRRReeeequirquirquirquireeeed:d:d:d: (hardware/software/other)

Titanium Studio IDE, Paint.NET, Audacity, Pulse game engine, Graphics tablet,Word processor (Microsoft word), Zoe (animation program), PNGQuant (imagecompression program), Lucid chart diagram (online chart creation program),Gantter (online gantt chart creation program), Dropbox (online storage space)Galaxy Tab 2 7.0

MMMMaaaarrrrkkkkiiiingngngng SSSScccchhhheeeemmmmeeee::::

Introduction

MMMMaaaarrrrkkkkssss

5Literature review 25Methodology 35Research Implementation 25Conclusion 10

Page 6: Honours Dissertation

P a g e | v

TableTableTableTable ofofofof ContentsContentsContentsContents

Declaration............................................................................................................................................... i

Library Reference Sheet...........................................................................................................................ii

Honours project specification document............................................................................................... iii

Table of Contents.................................................................................................................................... v

Acknowledgments................................................................................................................................. vii

Abstract.................................................................................................................................................viii

1 Introduction..........................................................................................................................................1

1.1 Dissertation research overview.....................................................................................................1

1.2 Aims of the project........................................................................................................................ 1

1.3 Agile software development's core values....................................................................................2

2 HTML 5................................................................................................................................................. 4

3 Pulse game engine............................................................................................................................... 6

4 Tablets..................................................................................................................................................9

4.1 Ipad2..............................................................................................................................................9

4.2 Galaxy tab 2 7.0........................................................................................................................... 10

5 Software development.......................................................................................................................12

5.1 Software process models.............................................................................................................12

5.2 Examination of software development....................................................................................... 15

6 Agile software development.............................................................................................................. 17

6.1 Agility in software development................................................................................................. 17

6.2 The values of ASD culture............................................................................................................18

6.3 Agile benefits and shortcomings................................................................................................. 21

6.4 Methodologies.............................................................................................................................22

6.4.1 Scrum...................................................................................................................................22

Page 7: Honours Dissertation

P a g e | vi

6.4.2 Xp........................................................................................................................................23

6.4.3 DSDM Atern........................................................................................................................24

6.4.4 Adaptive systems development.........................................................................................24

6.4.5 Feature driven development..............................................................................................25

6.4.6 Crystal methodologies........................................................................................................25

6.4.7 Agile Modelling...................................................................................................................26

6.5 The Growth and future of ASD.................................................................................................... 26

7 Prototype development..................................................................................................................... 27

7.1 Integrating an agile framework in a single person team..............................................................27

8 Qualitative and quantitative research............................................................................................... 32

8.1 The questionnaire........................................................................................................................32

8.2 Prototype evaluation................................................................................................................... 33

9 Model and attributes recommendations........................................................................................... 34

10 Conclusion........................................................................................................................................37

References.............................................................................................................................................40

Glossary.................................................................................................................................................43

Appendix A - Implementing Physics using pulse engine........................................................................44

Appendix B - Design document............................................................................................................. 45

Appendix C - Technical documentation.................................................................................................48

Appendix D – Project management.......................................................................................................49

Appendix E- Preliminary game development........................................................................................50

Appendix E - Screen tests on ipad2....................................................................................................... 52

Appendix F - Programming code............................................................................................................52

Appendix G - Assets creation of the prototype..................................................................................... 53

Appendix H - Final game play screen.....................................................................................................54

Page 8: Honours Dissertation

P a g e | vii

AcknowledgmentsAcknowledgmentsAcknowledgmentsAcknowledgments

A big thanks to:

SSSSupupupupeeeerrrrvvvviiiissssorororor – Dr John Sutherland. A legend of a guy and now a great friend!Thank you for all your morale support and help during the project. If it wasn't foryour help I would not have gotten far with the development of my dissertation.Thank you!

MMMMododododeeeerrrraaaattttorororor – Dr Mark Stansfield is a great guy! Thanks for all the help you gavethroughout the project.

GameGameGameGame engineengineengineengine developersdevelopersdevelopersdevelopers – The Modulus team: Brandon Cannaday andCharlie Key! - Thank you for the help you provided during the development ofthe game. Most importantly thanks for making the game engine! It is awesome.

ClClClClaaaassssssssmmmmaaaatttteeeessss – Alan Wong, Gordon McCleod, Jonathan “Jof” Traynor, AdamKale, Shona Logan, Sean Winston, Andrew McNamara, Andrew Cunningham.Made some great friends during university! They certainly helped the morale attimes

LLLLecececectttturururureeeerrrr – Dr Daniel Livingstone for offering use of his Ipad2. Thankfully, Ididn't require the use of it but thanks again as it helped a lot during the projectknowing I had that as a backup reducing the risks of developing software!Thanks for your help!

FFFFaaaamimimimillllyyyy – Collette Maclachlan, Lyndsay Issac, Michelle Burns thanks for yoursupport

TestersTestersTestersTesters – Gong Wei Lee, Gong Ying Lee, Chris Henderson, Andrew Tsim,Sheryl McAllister, Colin Li, Alan Wong, Gordon McCleod, Jof Traynor, AdamKale, Shona Logan, Sean Winston, Andrew McNamara, Andrew Cunningham.Thank you for taking the time to try the game and complete the survey!

AgileAgileAgileAgile AllianceAllianceAllianceAlliance ---- I now appreciate what you created the manifesto for.

PaPaPaParrrreeeennnnttttssss – Mum & Dad - Thanks you for all your support throughout the project

AAAAllllllll ccccopopopopyyyyrrrrightightightight aaaandndndnd ttttrrrraaaaddddeeeemmmmaaaarrrrkkkkssss acknowledged.acknowledged.acknowledged.acknowledged. ©©©© 2012/132012/132012/132012/13

Page 9: Honours Dissertation

P a g e | viii

AbstractAbstractAbstractAbstract

This dissertation examines Agile software development (ASD) which provides thesyllogism to the question, “what are the issues of Agile software development whencreating a HTML5 game for the galaxy tab 2 7.0?” Traditional software developmentincurred high financial costs, duplicated resources and failed to recognise thesignificance of communication or each individual involved in the project. Furthermore,processes did not develop software in short incremental and iterative cycles involving theinput from the customer and a development team every day. ASD has contributed aflexible approach to the development process of creating software.

ASD is scalable to the size of an organisation. Until now, there has been no academicrecognition of whether Agile principles and values being applied by an individual, addingagility in software development by themselves, is favorable. In order to analyse thisthesis, a prototype was created following Agile values and principles by myself. Theprototype was evaluated by tablet gamers. The majority of them enjoyed it andhighlighted that they would purchase a commercially released version of the prototype.They also found it fun to play. The prototype was completed on time, due to the inherentvalues of Agile methodologies.

The crucial aspect, revealed by this study was that if the Agile manifesto is strictlyfollowed by an intrepid, enthusiastic worker who is highly motivated, the project is likelyto be successful. The study concludes, ASD is advantageous to a sole developer,because changes during the project can be avoided/fixed using ASD.

Page 10: Honours Dissertation

P a g e | 1

1111 IntroductionIntroductionIntroductionIntroduction

1.11.11.11.1 DissertationDissertationDissertationDissertation researchresearchresearchresearch overviewoverviewoverviewoverview

Since AAAAgilegilegilegile software development (ASD) began in 2001; development teamshave improved their effectiveness of producing quality software to the end usercompared to their previous approaches to development. What has yet to beunderstood is how capable is it of making a single teamed project agile enough toproduce a successful computer game. Using ASD for such a project may or maynot be suitable regarding the advantages and disadvantages it has withinindustry – for small and large teams. Furthermore, the introduction of the HTML5platform in 2012 has created many new opportunities to create new types ofgames. The innovative technological advancement of touch screen devices suchas the Ipad’s and galaxy tablets has allowed gaming to take place ‘on the move’.

It is arguable then that ASD could be the future of software development wheredevelopers are aiming to create a successful HTML5 game for a tablet device.The new market of gamers and new essential skills to develop such a gamecould be the future of small companies/independent games developers. I want toexamine exactly how this could be implemented.

1.21.21.21.2 AimsAimsAimsAims ofofofof thethethethe projectprojectprojectproject

• To identify the strengths and weaknesses of AgileAgileAgileAgile software development andhow it can be used to create quality working software

• Examine the potential of the HTML5 platform for creating games using thePulse game engine

• Highlight how AgileAgileAgileAgile would be used by a single person in development of apiece of software - One person keeps management of the project undercontrol and communicates to influential people involved in the development.

• Create a prototype game, which can be evaluated via play tests, as to howsuccessful the project was using ASD to complete a project by one person

• Recommend a software development model for future developers who mayadopt this mode of creating software using AgileAgileAgileAgile software development –identify strengths, weaknesses, opportunities and costs of the development.

Page 11: Honours Dissertation

P a g e | 2

1.31.31.31.3 AgileAgileAgileAgile softwaresoftwaresoftwaresoftware development'sdevelopment'sdevelopment'sdevelopment's corecorecorecore valuesvaluesvaluesvaluesThe Agile Manifesto was first formed at a meeting at the Snowbird cabin, Utah onFebruary (11th – 13th) 2001 by 16 software enthusiasts; and experts in their ownsoftware methodology domains who wanted to make software development whatthey referred to as “AgileAgileAgileAgile” These experts formed what they refer to as the Agilealliance. The manifesto was formed with the following eidolon: “Our highestpriority is to satisfy the customer through early and continuous delivery ofvaluable software.” The document lists principals which the Agile alliance regardsas vital values to adhere to when using AgileAgileAgileAgile software development:

“1. Welcome changing requirements, even late indevelopment. AgileAgileAgileAgile processes harness change forthe customer's competitive advantage.

2. Deliver working software frequently, from acouple of weeks to a couple of months, with apreference to the shorter timescale.

3. Business people and developers must worktogether daily throughout the project.

4. Build projects around motivated individuals.Give them the environment and support they need,and trust them to get the job done.

5. The most efficient and effective method ofconveying information to and within a developmentteam is face-to-face conversation.

6. Working software is the primary measure of progress.

7. AgileAgileAgileAgile processes promote sustainable development.The sponsors, developers, and users should be ableto maintain a constant pace indefinitely.

8. Continuous attention to technical excellenceand good design enhances agility.

9. Simplicity--the art of maximizing the amountof work not done--is essential.

10. The best architectures, requirements, and designsemerge from self-organizing teams.

11. At regular intervals, the team reflects on howto become more effective, then tunes and adjustsits behavior accordingly.”

Page 12: Honours Dissertation

P a g e | 3

All of these values should be applied within the development of softwareaccording to AgileAgileAgileAgile. In order to abide in the values stipulated, AgileAgileAgileAgile consists oflightweight methodologies such like Xtreme programming (XP), Crystal(clear),Scrum, Agile modelling (AM), Dynamic systems development method (DSDM),Feature driven development (FDD) and a range of others. AgileAgileAgileAgile softwaredevelopment may not require all of these methodologies in order to achieveagility. However, all of the methodologies have their usefulness which enabledevelopment teams to create software according to the Agile manifesto -ultimately to create quality working software for the end user.

AgileAgileAgileAgile software development has changed the perspective of how people shouldview software development; which is not only an approach to creating workingsoftware, but as a community of enthused workers aiming to achieve the best forthe end user by collaborating together efficiently.

Page 13: Honours Dissertation

P a g e | 4

2222 HTMLHTMLHTMLHTML 5555

Hypertext mark-up language (HTML) is a programming language which enablesweb developers to format a webpage document to be viewed online. Tim BernersLee created HTML (and consequently the World Wide Web) in 1989 when hewas having problems of accessing information on other computers and decidedto invent the method of Hyper-text: navigable text which allows the user tochoose where to go in the document. “Mark-up” refers to the syntax he opted touse which contained “tags” which defined properties of the document; forexample textual italics. He has changed the way we obtain information,interaction with different content and explore the World Wide Web. It hasadvanced since the release of HTML with versions: HTML+, HTML2, HTML3.2,and HTML4 and recently in 2012, HTML5.

All these versions introduced different web standards for the language whichincluded: new approaches to syntax and efficient code, improved semantics andapplication programmer interfaces (API). Figure 2 below demonstrates howcustom div ids are no longer required in HTML5 as the elements now exist asHTML5 element tags. (no need for div id=”header” to reference an element; just<header> is sufficient now.

Fig 1: Example of how new elements have been assigned. The id tags shownhave now been added into the elements in HTML5. http://www.alistapart.comhttp://www.alistapart.comhttp://www.alistapart.comhttp://www.alistapart.com

Web. 07 Jan 2013

Page 14: Honours Dissertation

P a g e | 5

Although HTML5 has improved the standard of processing information, it is yet tobe approved by the World Wide Web consortium (W3C). The W3C group wascreated in 1994. Their aim was to make standards for the entire web's usage ofHTML so that everyone would follow the same protocols which would make thelanguage more robust and less likely to cause unexpected errors. HTML5 is to bea fully formed language by 2022, which means that it will be standardised acrossall browsers when it has been analysed and adapted to newertechnologies/browser capabilities. On the contrary, there are few browsers whichpresently support features of HTML5: Opera, Safari, Chrome and Firefox.

The new features introduced in HTML5 include:

• New Element tags – for instance the <canvas> tag: used for renderingdrawings to the screen, or the <meter> tag: used for creating a graphicalbar for representation of stats, or moreover, the <video> tag: used forembedding a video. Various other new tags exist.

• New Attribute tags – height and width, autocomplete (forms), no-validateand more

• Full CSS3 Support – The new css3 platform for cascading style sheets• Video and Audio• 2D/3D Graphics• Local Storage• Local SQL Database• Web Applications

HTML5 can be used to create many webpages containing multimedia contentand also for creating browser games and native applications.

Page 15: Honours Dissertation

P a g e | 6

3333 PulsePulsePulsePulse gamegamegamegame engineengineengineengine

The pulse game engine is an open source Javascript graphics engine which wasmade by Modulus, a team of 3 developers based in Ohio, USA. The engine wasdesigned so that people who knew how to develop programs using an objectorientated approach, could use the engine, coding in Javascript, to develop HTML5games. The engine makes use of the canvas element of HTML5 to render graphicsto the screen.

The engine has the following qualities:

� Object typing (sprites, scenes, layers, nodes, labels)

� A sprite sheet Support for sprite sheets and animations

� Asset Management by use of scenes and layering of objects

� Plugin support

� Event handling for touch devices

� A Debug module for evaluating the games performance

Setting up a game in Pulse is done by first creating a document operated model(DOM) which sets up the webpage and game engine. This is achieved by creatingan HTML page:

<html><head>

<script<script<script<script type="text/javascript"type="text/javascript"type="text/javascript"type="text/javascript"src="engine/pulse.js"></script>src="engine/pulse.js"></script>src="engine/pulse.js"></script>src="engine/pulse.js"></script></head>

</html>

The pulse engine setup defines that only one engine object should be applied toeach game file. The ready method should call the DOM to setup the canvas withthe game engine – via custom game window element id. The engine.go should becalled to start the engine at the correct frame rate.

Page 16: Honours Dissertation

P a g e | 7

pulse.ready(function() {// The game is ready to be setup now//game coding goes herevar engine = new pulse.Engine( { gameWindow:

"myDivElementId" } );

...engine.go(33); // frame rate set at 33fps

});

Components of the Pulse engine include, Game scene manipulation, Sprites,Layers, Animations, Events handlers, Assets manager and an easy to use pluginarchitecture. Figure 3 shows the framework of a game and what is permitted by theengine. The engine may have as many scenes within the one engine. Each scenecan have as many layers as the programmer desires. In turn, these layers cancontain as many Nodes, i.e. Sprites, labels, objects, as is required.

Fig 2: The framework of setting up a game/app in pulse (one engine, many scenes,many layers in each scene, many nodes(sprites, labels,..) within the layers)

http://www.withpulse.comhttp://www.withpulse.comhttp://www.withpulse.comhttp://www.withpulse.comWeb. 07 Jan 2013

Page 17: Honours Dissertation

P a g e | 8

The pulse game engine also contains a Javascript class within the engine whichutilities the Box2D physics engine by Erin Catto. Box2D is an open source physicsengine written in C++ for simulating rigid bodies in 2D.

The pulse game engine has had 5 updates since it was released in January 212012. The developers, have issued a statement that the engine was going to havesome important updates in the next six months (December 2012 – May 2013).However at the time, no such updates were made available on the website for otherto download to date. (The end of March 2013)

Page 18: Honours Dissertation

P a g e | 9

4444 TabletsTabletsTabletsTablets

4.14.14.14.1 Ipad2Ipad2Ipad2Ipad2The Ipad2 was released in March 25th 2011. It has a 9.7-inch LED-backlit glossywidescreen Multi-Touch display. The tablet has the apple mac operating systeminstalled on it. It can be used in 2 orientation modes (horizontal/vertical) toprovide a different perspective display to the user. Game designers mustconsider the operating system if they intend to release an application for peopleto purchase. Screen size is also something they must consider in order to displaythe content correctly and in the correct orientation mode for the tablet. Appledemand that developers must purchase a license from them in order to releaseapplications for their devices. This costs $99 every year the developer wishes topursue application development for an Apple product. Developing webapplications for the device, do not require the purchase of the Apple license.

Fig 3: The Ipad2, www.prepaymania.co.uk, Last accessed: 02/04/2013

Page 19: Honours Dissertation

P a g e | 10

4.24.24.24.2 GalaxyGalaxyGalaxyGalaxy tabtabtabtab 2222 7.07.07.07.0The Samsung Galaxy Tablet 2 7.0 was released in April 2012. It is a 7’’ tabletwhich has a 1GHz Dual Core processor with 1GB of RAM. The tablet has theandroid 4.0 operating system installed on it. Similar to the Ipad2, the tablet canbe used in 2 orientation modes (horizontal/vertical). The galaxy tablet 2 7.0 hasthe Android operating system installed on it. This operating system unlike Apple,does not require that developers purchase a license in order to releaseapplications for Android devices. Developing web applications rather than nativeapplications means that game developers should ensure that the screen is sizedcorrectly, that multi-touch is disabled and that the mouse scroll function is alsodisabled in order to display the content correctly and in the correct orientationmode for the tablet.

CSS (cascading style sheet) has to be used in order to ensure that the gamescreen is positioned correctly to fill the tablet screen and to disable multi-touch.

body....page

{{{{

positionpositionpositionposition:fixed;:fixed;:fixed;:fixed;

toptoptoptop:-8px;:-8px;:-8px;:-8px;

leftleftleftleft:-8px;:-8px;:-8px;:-8px;

background-colorbackground-colorbackground-colorbackground-color:white;:white;:white;:white;

}}}}

####IfWinActiveIfWinActiveIfWinActiveIfWinActive ahk_class Chrome_WidgetWin_1

{{{{

^WheelDown::return::return::return::return

^WheelUp::return^WheelUp::return^WheelUp::return^WheelUp::return

#MaxHotkeysPerInterval#MaxHotkeysPerInterval#MaxHotkeysPerInterval#MaxHotkeysPerInterval 1000100010001000

}}}}

Page 20: Honours Dissertation

P a g e | 11

The positioning of the window can be adjusted via the body tag of the page. Themargins can then be set accordingly. Using the IfWinActive tag will check if thecurrent window is in use. If it is, then the WheelDown'and WheelUp variablewould be set to false as their default values during the time that the windows isactively in use. Similarly, the hot keys that are are to be found on a standardkeyboard, are set so that the user does not mistakenly interrupt their experiencewhile using the touch screen device.

Fig 4: The galaxy tab 2 7.0, www.googlereader.com, Last accessed: 02/04/2013

Page 21: Honours Dissertation

P a g e | 12

5555 SSSSofofofofttttwwwwaaaarrrreeee ddddeeeevvvveeeellllooooppppmmmmeeeennnntttt

5.15.15.15.1 SoftwareSoftwareSoftwareSoftware processprocessprocessprocess modelsmodelsmodelsmodelsSoftware engineering practices - such as project management and programmingtesting - were defined in the 1960’s in the creation of software. The approach tocreating software previously were linear and basic due to the quality of computersthat programmers were using to create the software and their lack of awareness ofmore suitable approaches to development. The development would consist ofmaking the programming code and then fixing errors if they were present thenmoving onto the next piece of software. This approach was named the “code andfix model”. This caused many problems, such as high costs of fixing the errors or ifthe design had to be changed when the customer received the software.

The customer's requirements were not sufficiently defined to enable the creation ofacceptable software for the customer as many aspects of the developmentchanged during the project. Moreover, the maintenance of the programming codewith the code and fix model could not be reused in other projects which was aproblem. The hard work that the teams invested during the development of thecustomer’s software, would be useless and would have to start from the beginningwith new projects which was inefficient to the company/team's time and money.Specific stages were implemented in order to resolve these difficulties duringdevelopment yet they incurred high financial risk to software developmentcompanies.

The transformation of software development therefore began in the 1970’s, whenthe waterfall model was introduced. This model was a heavyweight approach tosoftware development: the structure of the development was focused on rigorousprocesses - Analysis, Design, Implementation, Testing, Documentation, Evaluation,Maintenance -which eliminated the issues with the code and fix it model. Thewaterfall model presented linear procedures for creating software. According toBoehm (1988) the waterfall proved useful in maintaining the outcomes of a projectas each stage was done in iterative stages which standardised softwaredevelopment. Yet the model was unable to be flexible enough to adapt to changesduring development and cost companies money to fix.

Barry Boehm attempted to rectify these issues when he introduced the spiral modelin 1988. The model also has a heavyweight, iterative development approach to theproject in stages similar to the waterfall. Risk assessment/reviewing and planningobjectives are the focus of every step around the spiral.

Page 22: Honours Dissertation

P a g e | 13

It involves a top down and bottom up approach that offers a more flexibledevelopment compared to the waterfall. This means that refinements occur aftereach cycle of iterations which attempt to reduce risks and financial costs.

In contrast to the waterfall model, tasks are not to iterative down a bureaucraticstructure in order to refine any problems which is a positive aspect of the spiralapproach. Attention to identify risks, bugs or other aspects which may influence thedevelopment are highlighted during the spiral development cycle. However, therewere factors of the spiral model which hindered software developments overallefficiency. Boehm (1988) identified the difficulties with the spiral model which are;“matching to contract software, relying on risk-assessment expertise, and the needfor further elaboration of spiral model steps.“ The difficulty of developing a projectwith such a low cost tolerance puts pressure on the workforce and incurs costswhich may be damaging to a company's finance – especially with small businesseswho need to at least break-even to sustain their company.

Furthermore, because the project is amended after each software developmentcycle, the opportunity to re-use the processes of other projects are rare.Weaknesses associated with heavyweight methods have been highlighted by Chauet al., (2004) who denotes that the traditional approaches rely on documentation asthe main facilitator of communication of changes during development. Thesemeasures hinder the development process as documentation can be extremelyvolatile during a project. When design changes or mistakes are made,documentation then needs to be updated which takes time and proves costly.

Additionally, documentation becomes obsolete as it reaches different sections ofthe workforce after each iterative cycle and must be done repeatedly. While this isnot a disadvantage of the spiral model there could be a better way ofcommunicating instead of by way of documentation and organises developmentprocesses cost effectively. The process models at that time in softwaredevelopment history still were not perfect but were becoming more efficient thanthey ever were. The heavyweight process models such as the waterfall wereimportant however, because they created an operational approach to softwaredevelopment which identified tasks required to be completed during phases in thedevelopment.

Cohen et al., (2004) attests that processes change as failings of a particular aspectof one method are identified and another is created to resolve the problems. It isimportant to recognise that the traditional approach to software development,despite the time consuming inefficiency, is still important in relation to the phasesAnalysis, Design, Implementation, Testing, Documentation, Evaluation andMaintenance. Shortfalls were highlighted by Highsmith(2001) when he agrees thatalthough there had been improvements in software development, he argues that amore flexible approach was required.

Page 23: Honours Dissertation

P a g e | 14

Fig 5: The “waterfall model” An iterative software development lifecycle.http://www.Blogspot.com Web. 07 Jan 2013

Page 24: Honours Dissertation

P a g e | 15

5.25.25.25.2 ExaminationExaminationExaminationExamination ofofofof softwaresoftwaresoftwaresoftware developmentdevelopmentdevelopmentdevelopment

Improvements have been made to SD and it has been redefined since its inceptionin the 1960’s. At that time creating working software was the only considerationwithin the development process. From the 1970’s onwards, SD advanced withregard to team / resource efficiency and also the competence and attitude of theworkforce to deliver what the customer requires. More customer involvement in thisprocess has also resulted in further improvements in the way that software isdeveloped. It has become not only a process in a workplace, due to AgileAgileAgileAgile softwaredevelopment, but also a way of working in a social environment to the best of theSD teams abilities. Throughout the decades since 1970 this has been achievedbecause many of the traditional development processes were identified as beinginefficient or a hindrance to the project.

Software engineering practices helped form particular ways of carrying out tasks,for example the need for comprehensive documentation was reduced and riskmanagement was introduced within the development framework. In 2001, TheAgile manifesto, written by 16 software developers revolutionised the way SD isapproached: for small and large teams. These expert methodologists in their owndomains of software development / engineering collaborated together to form amethod of SD they named AgileAgileAgileAgile. It is now widely used in software creationcompanies as a standard SD approach due to the advocation of agility indevelopment teams. Agility promotes values and principles which create successfulprojects if the team abide to them. It has been proven that it enhances the softwareproduced, the satisfaction of the end user and the intrepidity of employees within acrafted SD environment.

The values in the manifesto such as “Individuals and interaction over processesand tools” and “Responding to change over following a plan” were neverconsidered positive within the traditional linear context of SD; it was a strictlyplanned and regimented process. Problems with the tayloristic approaches, forinstance using the waterfall model required many iterative processes during thedevelopment, due to the structure of the model, in order to meet the customer'sspecification. The spiral model by Barry Boehm aimed to change the negatives ofthe waterfall model but was still not too efficient as it incurred high costs and highrisk taking as the development changed due circumstances. AgileAgileAgileAgilemethods aimedto address these concerns and promote SD processes which were peopleorientated. Despite the positives, there are some negative aspects of AgileAgileAgileAgile such asthe social and psychological effects of team working, the concern for safety criticalsoftware due to the unpredictability of ASD and working effectively in largeteams/organisations.

Page 25: Honours Dissertation

P a g e | 16

On the contrary, the methods are flexible enough for almost any SD team toimplement if the team have focus. Large or small development teams havepotential with ASD to become successful, yet not all projects achieve a positive endresult. Different approaches to software development vary depending on the type ofway a company/team chooses to operate. Kortmann et al (2009) below in figure 5show a variety of approaches to software development.

Fig 6: Process cycle approaches to SD which contribute to Agile softwaredevelopment (with the exception of Linear which would be traditional softwaredevelopment) Kortmann, R. et al; 40th conference of the international simulation

and gaming association 2009

Page 26: Honours Dissertation

P a g e | 17

6666 AAAAggggileileileile ssssofofofofttttwwwwaaaarrrreeee ddddeeeevvvveeeellllooooppppmmmmeeeennnntttt

6.16.16.16.1 AgilityAgilityAgilityAgility inininin softwaresoftwaresoftwaresoftware developmentdevelopmentdevelopmentdevelopmentOne of the Agile alliance members, Cockburn (2002) views AgileAgileAgileAgile as:

“a cooperative game of invention and communication, with a primary goal ofdelivering useful, working software and a secondary goal of setting up for thenext game.”

Similarly, Qumer et al.(2008) extends this view of agility. He explains that AgileAgileAgileAgilesoftware development “exhibits flexibility to accommodate changes in the shortesttime span.” Agility within a development environment creates a team who workflexibly. Their roles in the team are dynamic which allows them to share knowledgeto improve the quality of their work. Furthermore, Highsmith (2001) makes the pointthat the AgileAgileAgileAgilemethods are constructed to allow teams to integrate their knowledgewhile “capitalising on each individual’s and each team’s unique strengths”.

In accordance with this view, Whitworth et al., (2007) found in their research thatAgileAgileAgileAgile projects encourage team collaboration which was helpful in motivating theteam. This is a distinctively positive aspect of AgileAgileAgileAgile because having a motivatedworkforce can be valuable to producing quality working software. An advantage ofAgileAgileAgileAgile is that team meetings are encouraged to occur daily, with the involvement ofthe clients and management in the project, in order to keep everyone informed ofany changes or problems which can be resolved together. If the workforce knowsexactly what to do and is getting on well with each other, the work is more likely tobe of high quality. The development team themselves must ensure that they canwork together and create the software conjointly; sharing their skills and workingtowards a quality end product.

Awad (2005) found that having a workforce that is capable of getting workcompleted - a “team of good people” - can make use of AgileAgileAgileAgile methodologies betterthan a team that is disinterested in the development. Whitworth et al., (2007) alsofound in their investigation due to Agile'sAgile'sAgile'sAgile's advocation of collaborating with peoplerather than working with tools/processes all day, the workforce felt exhausted aftera whole day being socially active. Moreover personality disagreements hinderedprogress and certain styles of individuals hindered the team getting along at times.Another negative aspect was that some individuals wanted to apply AgileAgileAgileAgile practices“ill-suited to AgileAgileAgileAgile interactions”. This would have affected the team’s motivation fortheir project and the confidence in the team ability would have been compromised.People work in different ways and the team must work together to work to their best.

Page 27: Honours Dissertation

P a g e | 18

AgileAgileAgileAgile offers the medium for discussion during daily/weekly team meetings but if theindividuals in the environment are not cooperating to form positive workingrelationships, the project is at risk of failure. Another advantage of AgileAgileAgileAgile is that thecustomer’s needs are always met. AgileAgileAgileAgile development teams keep a closerelationship with their customers. This means that if any changes ormisunderstandings occur, the team can alter what they have developed. Theflexibility of the Iterations and increments within the development mean thatchanges are easily made and the customer can see the results. A furtheradvantage of ASD is that the flexibility can improve time management. Projectmanagement is a vital part of software development and it is no different in an AgileAgileAgileAgileframework.

6.26.26.26.2 TheTheTheThe valuesvaluesvaluesvalues ofofofof ASDASDASDASD cultureculturecultureculture

The four points below in figure 7 provide an underpinning of what each of thestatements entails in the manifesto:

IndividualsIndividualsIndividualsIndividuals andandandand interactionsinteractionsinteractionsinteractions Over ProcessesProcessesProcessesProcesses andandandand toolstoolstoolstools

WorkingWorkingWorkingWorking softwaresoftwaresoftwaresoftware Over ComprehensiveComprehensiveComprehensiveComprehensive documentationdocumentationdocumentationdocumentation

CustomerCustomerCustomerCustomer collaborationcollaborationcollaborationcollaboration Over ContractContractContractContract negotiationnegotiationnegotiationnegotiation

RespondingRespondingRespondingResponding totototo changechangechangechange Over FollowingFollowingFollowingFollowing aaaa planplanplanplan

Fig 7: “Agile manifesto”; While there is value in the items on the right, we value theitems on the left more. Larman, C. Agile & Iterative development: A

managers guide. 2004

AgileAgileAgileAgile software development advocates the principles in the manifesto through thevarious AgileAgileAgileAgilemethodologies. The AgileAgileAgileAgilemethods include: Beck(1999) Kent Beck’sExtreme programming (XP), Sutherland et al(1999) Jeff Sutherland, Ken Swabberand Mike Beedle’s Scrum method, Cockburn(2004) Alistair Cockburn’s Crystal(clear) methodology, Amblers(2002) Scot Ambler’s Agile modelling (AM), Jeff DeLuca's Feature driven development (FDD) Jim Highsmith's Adaptive softwaredevelopment (ASD) and DSDM consortium’s Dynamic system development Aternmodel (DSDM). Each of these methods all have their advantages anddisadvantages which contributes to the agility of a project and the final product.Cohen et al., (2004) and Larman (2004) suggest that although AgileAgileAgileAgile methods areuseful in making software development more efficient, the processes are derivativeof the traditional processes which are still needed.

Page 28: Honours Dissertation

P a g e | 19

However, the heavyweight processes have been condensed into lightweightmethods that can be used due to ASD. The important aspects of AgileAgileAgileAgile methods arethat they have enhanced the processes and interpretation of traditional softwaredevelopment: in terms of effectiveness of producing the final output and whatsoftware development means to each individual project. Traditional approachesmake use of all available tools to create the end product which may not be wellstructured or designed, whereas AgileAgileAgileAgile supports an object orientated approach todesign. The more structured object orientated approach offers a reliable and flexiblemethod of creating software. Nonetheless, the traditional processes are not to beneglected when using AgileAgileAgileAgilemethods.

Highsmith (2001) states that AgileAgileAgileAgile has improved the organisation of softwarecompanies “XP and other AgileAgileAgileAgile approaches are forcing organizations to re-examine whether their processes are adding any value to their organizations.” Thisis important to consider when choosing to use ASD because some organisationsmay not be able to be flexible enough to use AgileAgileAgileAgile methods. The organisation maybe too large to incorporate the changes AgileAgileAgileAgile software development would bring totheir development teams and management involvement in projects which, in thelong term would be financially difficult to implement successfully for the entireorganisation. Furthermore, Turk et al (2002) identified that AgileAgileAgileAgile does not offer thequality control over software which is required to be safety critical. Pairprogramming for instance does not have the potential scope to highlight problemsduring a flexible project such as AgileAgileAgileAgile would advocate the best method to developsoftware which in turn puts human beings at risk.

AgileAgileAgileAgile software development has become the latest revolution in softwaredevelopment. While the traditional values are still present within the process, thestructure and approach to software development has changed and will benefit fromAgileAgileAgileAgile in respect to the principles it attempts to instil. Additionally, Vinekar et al.,(2006) highlight that the dynamic nature of AgileAgileAgileAgile teams means that it provesdifficult to implement the traditional linear approach and being AgileAgileAgileAgile together duringdevelopment. AgileAgileAgileAgile software development has helped improve teams to producequality working software for the customer. Constantine (2002) concurs when hedescribes that AgileAgileAgileAgilemethods create a finely tuned way of doing something withinthe development framework, for instance in relation to well-written code. Heexplains that it is easier to build on existing code or refactored code than it is tocreate the entire product collectively.

Moreover, the self-management workforce forges positive behaviour in teams toshare knowledge and produce quality work. Maurer et al., (2003) found thatcompared to traditional approaches, AgileAgileAgileAgile development allows for adapting tochange and getting tasks done to the best they can be done in stages which suitthe development environment.

Page 29: Honours Dissertation

P a g e | 20

It is a people orientated process of software development where the peopleinvolved are the central focus while the values of the team encapsulate theprinciples of the manifesto.

Furthermore, each project can be different and each AgileAgileAgileAgile software developmentapproach is too, which means each project gets its own effective method ofcollaborating and producing success. Hoda et al., (2008) found that AgileAgileAgileAgile methodsare flexible enough to cope with change in projects and thus reduce risks. Theyaccommodate frequent changes, work efficiently and productively while producinghigh quality working software for the customer compared to the traditionalapproaches. Hoda et al., (2008) provide a table in Figure 8 below which shows acomparative view of approaches of software development.

CategoryCategoryCategoryCategory TraditionalTraditionalTraditionalTraditional AgileAgileAgileAgileDevelopmentDevelopmentDevelopmentDevelopmentModelModelModelModel Traditional Iterative

FocusFocusFocusFocus Process People

ManagementManagementManagementManagement Controlling Facilitating

CustomerCustomerCustomerCustomer InvolvementInvolvementInvolvementInvolvement Requirements gathering anddelivery phases

On-site and constantlyinvolved

DevelopersDevelopersDevelopersDevelopers Work individually withinteams

Collaborative or in pairs

TechnologyTechnologyTechnologyTechnology Any Mostly Object orientated

ProductProductProductProduct featuresfeaturesfeaturesfeatures All included Most important first

TestingTestingTestingTesting End of Development Iterative and/or drives code

DocumentationDocumentationDocumentationDocumentation Thorough Only when needed

Fig 8: Traditional software development vs. Agile Software development Hoda, R etal; Computer science research conference

Page 30: Honours Dissertation

P a g e | 21

6.36.36.36.3 AgileAgileAgileAgile benefitsbenefitsbenefitsbenefits andandandand shortcomingsshortcomingsshortcomingsshortcomings

The difference in an AgileAgileAgileAgile development compared to traditional softwaredevelopment is the flexibility of each project which AgileAgileAgileAgile offers to companies/teams.Project management can keep all the aspects of the development secure buttransparent to the workforce which allows them to get on with their work. Thedevelopment can be organised and each individual knows what tasks they have tocomplete and by when they must complete it. While this is helped with thedevelopment iterations and meetings, project management in ASD is more thanmerely being organised.

It is about ensuring that development is running smoothly and can identify how tocarry out tasks differently to achieve better quality or be more time efficient. It canadapt via flexible framework which can highlight risks, compared to awaiting aparticular time to identify if anything is troubling the project. Costs can be saved dueto the constant need to plan for change or improve quality of working together as ateam. Boehm et al. (1989) states that “A good software project management theoryshould be simultaneously simple, general and specific.” This is true of AgileAgileAgileAgilesoftware development also; which means that having robust project management isadvantageous to software development.

In AgileAgileAgileAgile the end user is involved in the projects development throughout. Theybenefit from the early releases of working software which can be shown to themand further discussion about features or issues can be resolved. The flexibility ofAgileAgileAgileAgile ensures that the end user is always happy with what is happening to theirsoftware and, in turn, the development team stay motivated to create the softwareknowing that what they are creating is suitable. Therefore, AgileAgileAgileAgile offers a bondbetween all those involved in the project enabling them to collaborate togetherconfidently and produce quality software.

However, one major disadvantage of the flexibility of AgileAgileAgileAgile is when it isimplemented in a development team which is considered large. Boehm (2002)notes that Cockburn and Highsmith came to the conclusion that AgileAgileAgileAgile softwaredevelopment is more difficult for larger teams because of the bureaucracy within alarge team complicating aspects of development for the team. It has beensuggested by Cockburn that even more communication is required in large AgileAgileAgileAgileteams in order to succeed. Comparatively, Lindvall et al., (2004) found however thatas long as the large team finds the correct methodology to follow they can benefitsuch as Motorola did. Motorola highlighted that XP – an AgileAgileAgileAgile methodology whichwill be explained in the next section of the dissertation - can be implemented inlarge teams and the problems they discovered were not because of the method butbecause of the linear approaches they kept within the environment alongside XP.

Page 31: Honours Dissertation

P a g e | 22

6.46.46.46.4 MethodologiesMethodologiesMethodologiesMethodologies

6.4.16.4.16.4.16.4.1 ScrumScrumScrumScrum

Scrum is a methodology devised by Jeff Sutherland, Ken Schwaber and MikeBeedle. This lightweight model has a team orientated approach to softwaredevelopment. Teams are structured with a SCRUM master, the product owner andthe development team. The SCRUM master leads a 15 minute daily meeting toensure everyone knows what has to be done or if there are any problems to resolve.This can be done during the meeting.

Each day, the Scrum master collaborates with the customer (product owner) - alongwith the development team - and keeps the project on task in relation to the productowner’s product backlog (specifications). The development team then get to work insprints (iterations) of 2 – 4 weeks depending on the scope of the project. Whenprocesses/tasks have been completed, they are recorded so that the team can viewdiagrams, graphs and/or charts in the work environment: usually on a wall but maybe presented on computer screens. The development team can then determinewhat remains to be done or how long they have to complete a particular task.

The team meetings help to commix the team with the project, and discussionsabout remaining work can be communicated to everyone involved to improve teamcohesion. Eventually, the sprint is over and the work can be evaluated. If anyproblems occurred, the team and master can work together to see if there could beany potential to make their procedures more efficient. The use of SCRUM makesthe workforce feel in charge of their work. The principle behind the Agile manifestostate that the best architectures, requirements and designs emerge from self-organising teams. Teams managing themselves empowers them to work and toproduce high quality software while collaborating together on coding and sharingknowledge. The customer then receives the section of work to demonstrate thelatest features. The relationship between the product owner and the Scrum teamimproves on their trust for each other as they prove they are capable of producingthe software. A next sprint is then planned for the development team to beginanother part of the software or a new project.

Page 32: Honours Dissertation

P a g e | 23

Fig 9: An example of a “SCRUM” development cycle. http://www.scrumalliance.orgWeb. 07 Jan 2013

6.4.26.4.26.4.26.4.2 XpXpXpXp

Extreme programming (XP) by Kent Beck attempts to create a programmingenvironment by which individuals can have positive relationships with each otherand strive to increase quality and productivity as a team. XP is a lightweight methodwhich places responsibility on the team for their work. It advocates shortdevelopment cycles which should be properly programmed, tested and evaluated.The flexibility of the method allows the team to react to changes late in thedevelopment. Similar to AgileAgileAgileAgile modelling which respects the AgileAgileAgileAgile principals ofcommunication, courage, simplicity and feedback, XP also values these attributes.Motivating and consideration of the welfare of the team is paramount duringdevelopment.

XP aims to make teams program "in the extreme" in contrast to traditionalprogramming practises which did not encourage making the team or the coderesource efficient. Teams operate in weekly or quarterly cycles (as in a businesscalendar year) within an XP framework. This reduces the risks involved in linearprojects and planning during each phase of development can resolve problems.Communication is done socially and by using stories. Stories are written on cardsand are posted on a wall which allows team members to discuss points and refine

Page 33: Honours Dissertation

P a g e | 24

problems easily. The agreed final problems on the story cards can then bedelegated to members of the team to work on.

Fixing errors and frequent re-factoring is important when using XP as this refinescode which creates better usable code. Various techniques such as pairprogramming and testing are crucial to the success of XP. Testing may take theform of unit tests and/or test-driven development and continuous integration.

6.4.36.4.36.4.36.4.3 DSDMDSDMDSDMDSDM AternAternAternAternThe earliest methodology to be accepted as an AgileAgileAgileAgile method is Jenifer SandersDynamic Systems Development Model Atern (DSDM Atern) which is animprovement to the predictive project management method PRINCE2. DSDMeliminated the need for the BDUF (big design up front) approach, which requiredmany details from the customer from the outset to structure the project. DSDMadapts to the customer's needs via accommodating alterations compared to Prince2s method of processes to complete the development. Communication is donerarely via documentation but by social interaction. Similarly, Jim Highsmith’s bookon AgileAgileAgileAgile project management highlights that when choosing a model it is better toadapt to a current model rather than inventing a completely new one.

6.4.46.4.46.4.46.4.4 AdaptiveAdaptiveAdaptiveAdaptive systemssystemssystemssystems developmentdevelopmentdevelopmentdevelopment

Adaptive systems development (ASD) by Jim Highsmith, begins by setting out tofind the problem that the team are attempting to solve. This means that the problemcan be observed if any alterations are required during the projects development andhow they may affect the end product. The next stage in development is tounderstand the system via research and preparing the data collected, in readinessto create/fix problems that may be encountered when building the product for thecustomer. Adapting to change is the focus of the entire model, which makesresearch of potential concerns imperative to the success of the model beingimplemented in the development environment. Next, the modelling of the system iscreated and iterations take place to make the product. Adaptions are made duringthis phase if the requirements change or problems exist. The model is thenevaluated to eliminate errors and a high quality product is delivered to the customer.

Page 34: Honours Dissertation

P a g e | 25

6.4.56.4.56.4.56.4.5 FeatureFeatureFeatureFeature drivendrivendrivendriven developmentdevelopmentdevelopmentdevelopment

Feature driven development (FDD) by Jeff De Luca. It involves the initial processesof developing an overall model for the system (project). A feature list is then createdto document the processes which will be required to create the software product.These features create the development framework. A plan is then put in place forthe development to follow: for instance to produce a new feature every 2 weeks andreview how the tasks were completed. The plans are driven by the agreed featuresto develop for the customer. Chief programmers set the task for members of theteam to undertake. Those responsible for each class are assigned. Milestones areformed and defined during the start-up phases in FDD in order to reduce risk usingthe short development time allocated.

Next, the iterative and incremental flow of the development takes place when theteam design the product by the features to meet the milestone and informmanagers of progress that has been made. Concurrently, the process of buildingthe product by the defined features takes place during the development phase. Thephases in FDD, of building and designing by features continue until the project iscompleted.

6.4.66.4.66.4.66.4.6 CrystalCrystalCrystalCrystal methodologiesmethodologiesmethodologiesmethodologies

Crystal methodologies created by Alistair Cockburn are lightweight processes whichdetail effective practices in development teams considering communication,working in different types of environments and project management attributes. Hecreated the methods which are colour coded to represent the size of the teamwhich may use them most effectively. AgileAgileAgileAgile software development comes under thecrystal clear category which has the least number of team members in the crystalmethodology family. The number of team members and heaviness of each of themethods increase as the colours get darker: for example clear, yellow, orange, red,maroon.

The clear method is used in ASD and defines that all the team members will becapable of collaborating together to get the work done following AgileAgileAgileAgile principles.The main roles in the crystal clear method are the customer, the designer(s) andprogrammer(s). The deadlines are formed through the self-disciplined teamapproach. Documentation need only take place if there is a need to keep theinformation, for instance risk management procedures. The team work together tomeet the deadlines and regular output is produced in short iterations.

Page 35: Honours Dissertation

P a g e | 26

Reviewing the projects status take place with workshops occurring every 2/3 weeksto allow the team to reflect on the development. Individuals are encouraged to talkabout what went well or not so well and suggest processes which could improvetheir position. Crystal clear follows these processes until the working software isdelivered to the customer.

6.4.76.4.76.4.76.4.7 AgileAgileAgileAgile ModellingModellingModellingModellingAnother method is Scott Ambler’s AgileAgileAgileAgile modelling, which offers AgileAgileAgileAgile developers amethod for creating effective documentation during a project. It creates a disciplinefor creating documentation “when it hurts”. In order to refine problems it may besensible to provide documentation on a specific area. While AgileAgileAgileAgile presents thevalue of social communication over processes and tools, important changes orproblems which are difficult to communicate socially in a team may follow AgileAgileAgileAgilemodelling principles to resolve issues. Modelling encourages teams to work inspecific areas in the work environment and organise themselves around storyboarding, UML diagrams or flow charts which add to the positive atmosphere in theworkforce. Four principles to adhere to which reflect AgileAgileAgileAgile as a whole are;"simplicity, feedback, communication and courage."

6.56.56.56.5 TheTheTheThe GrowthGrowthGrowthGrowth andandandand futurefuturefuturefuture ofofofof ASDASDASDASD

Since the Agile manifesto document was created, there have been regularconferences held in various locations to enable people to get together and discussareas of interest that agilists have noted in their own projects and can offer ways toimprove/re-think their strategies. It also provides an opportunity to view exactlywhere software development is heading: making software developmentefficiencies and cost effectiveness within anAAAAggggileileileile frame work. The conferencesaim to raise awareness ofAAAAggggileileileile among software developers. The conferences andworkshops have been successful and in 2012, AAAAggggileileileile conferences reached thesouthern hemisphere in Brazil. Since software development is becoming aworldwide phenomenon as technologies become available, more companiescould be benefiting by becoming AAAAggggilililileeee.

The Agile alliance who organised these workshops and conferences, are tobroadcast the benefits of ASD to India in 2013. They aim to empower people of thecommunity to discuss, with relevant people, what they do in a businessenvironment. They have also confirmed on their website that the next conference inNashville, USA is to be held in August 2013. Companies such as Amazon,Motorola and IBM are using AAAAggggileileileile methods to release their products. If companiescontinue to have the desire for agility in their product/software development thenAAAAggggileileileile has the potential to grow further still.

Page 36: Honours Dissertation

P a g e | 27

7777 PrPrPrPrototototoooottttyyyyppppeeee developmentdevelopmentdevelopmentdevelopment

7.17.17.17.1 IIIIntntntnteeeeggggrrrraaaattttiiiinnnngggg anananan aaaaggggileileileile ffffrrrraaaammmmeeeewwwwoooorrrrkkkk inininin aaaa sisisisinnnngggglelelele ppppeeeerrrrssssoooonnnntttteameameameam

The central roles in the project such as, the programmer, sound engineer, projectmanager, designer and alpha tester were all completed by myself, at all timesadhering to the principles ofAAAAggggileileileile software development. There were otherexternal people involved in the project such as stakeholders - my computinghonours module supervisor and moderator - game play testers and the creators ofthe game engine. At the start of the academic honours year, I agreed and definedmy research. After some investigation into software development kits that wouldallow me to program an HTML5 game, I had to develop my skills to create aprototype which would be fun, playable, incorporate new technologies and bedeveloped purely with AAAAggggileileileile practices. I also researched the internet for suitablegame engines to develop the programming code in.

The first aspect of maintaining AAAAggggilililileeee's's's's philosophy was to involve all those in theproject from the beginning, and indeed throughout the project. Meetings werearranged weekly with my supervisor. I also informed my moderator and he agreedto be a major stakeholder in the project. According to Coplien et al (2005) “Eachorganization has its own pattern of effective communication and development.“ We agreed that when face-to-face discussion would be considered impractical inthe hours outside of the University, so we would remain in contact through theuniversity email system. I also informed them that I would be keeping a blog spaceonline where my progress during the week would be visible to them - althoughAAAAggggileileileile promotes communicating face-to-face daily, this was not feasible but weeklymeetings and emails enabled regular contact. In the book "AAAAggggileileileile softwaredevelopment with Scrum"(Ken Swabber et al 2002):

"Scrum meetings do much more for a team than just capturing information.They don't only make everyone capture what they did, but it makeseveryone say it in front of everybody else...It also makes everyone promisein front of everyone else what you will be working on next, so it putseveryone's credibility and trust to the test. Scrum is about deep socialinteractions that build trust among team members."

My supervisor, one of the stakeholders in the project, suggested that I should aimto produce a game for the tablet market. I decided that the Ipad2 would be a goodtablet for which to develop the game. The first week was used to research thegame engine. I started learning basic programming techniques such as renderingimages to the screen and manipulating the image via key presses. The learningprocess did not take long and eventually, I created a working game menu. I lookedinto the engines facility to support HTML5's touch function for touch screen devices.I had used the central storage site dropbox in previous modules for storing filesand decided that it would serve its purpose well as a space for source control andkeeping all my files in the one place. During the second week when I told somefellow students of my project, one of them said he had an Ipad2 and

Page 37: Honours Dissertation

P a g e | 28

offered to test some of my code on it for me. I sent him the files I had create for themenu and he tested it on his Ipad2.

The touch function worked but the screen would not scale well on the Ipad2. Hesent me the screen caps of the failed screen. I decided at this point in the weekthat I would make a gantt chart which would provide a mock time scale forcompleting the initial analysis and design work. Later in the week, after someresearching and learning about how devices handle scaling, I resolved the issue ofthe scaling on the ipad2. When I sent my tester the code he sent me the screencapture of it working. I decided to start some of the coding for the physics elementof the game. When I had set up the physics module of the engine in the code, itfailed to work despite it being coded correctly. I decided to send the creators of theengine an email as none of their help pages stated any issues with the physicsengine.

The creators of the pulse engine are based in Ohio, USA which meant I wouldhave to wait to hear back from them because of the five hour time difference. Untilthen I decided to design some characters for the game. I had an idea of the genreof game in mind as my supervisor suggested an Egyptian theme. I named theprototype game "Tale of Kareem". Not being able to have daily meetings andworking alone had its effects on me. I found that I was in a rather complex positionwith lots of work started, none of which could be completed at present with thecertainty of being able to use them in the project. There were many things todocument on the blog space in order to record and communicate my progress todate. I also decided to keep a daily log of progress in a text file. The design of theprototype game was done using FDD, DSDM Atern during the first twelve weeks.The mix of these methodologies enabled the project to develop incrementally.Unlike any other of the methodologies, the flexibility of FDD allowed for the un-confirmable features - due to problems - to be developed when they could be andother tasks could therefore take precedence. I began designing the characters andsprites adding features weekly to the game. Audio creation took place alongsidethe artwork development which was manageable due to the flexible working hoursavailable within the Agile framework.

I ended the week with a progress review of my work so far. It was during thisreview that I realised that if some or all of the issues I was waiting to be resolvedwere not answered or just would not be resolved, there were risks for which Iwould have to develop fall back positions. I carried out a risk managementassessment. I found that I would have to make a decision about an alternativegame engine - which would have been "construct 2". I would also have needed toinform my supervisor and moderator of this decision. I realised that it would bebest to continue to learn new skills with pulse in order to produce different gametypes and get familiar with construct 2 in the hope that the Modulous team wouldrespond to my physics engine query. Further thought made me aware of whatwould be involved in changing everything.

I would have to create a scrolling physics game instead of real time physics. I alsofound that the statement: Simplicity-the art of maximizing the amount of work not

Page 38: Honours Dissertation

P a g e | 29

done-is essential was profoundly important to this project - not least because I wasattempting to use AAAAggggileileileile software development, but because I was on my owndoing a team’s job every day. After each meeting with my supervisor when I had adiscussion of what happened during the week or a discussion of an email I senthim regarding the project, I would go back home and write up an account of theweek referring to my log and blog what happened that day.In week three, Brandon, one of the three developers of the game engine, replied tome saying that I was correct there was a bug with the engine and the physicsmodule. He also supplied code to try and sort my problem.What was happening was that the physics global variable was being overridden bythe physics engine, taking precedence over the pulse game engine when it waschecking for physics interaction. The solution worked. I continued to work onresearching the pulse engine and designing elements of the game with mygraphics tablet. I identified elements of the design which I could work on in thefollowing weeks such as power ups, music and story. In week 6 my tester told mehe had to sell his Ipad2 which meant I had no way of testing the code I had done.The most appropriate response to this news was by sending contact details on aUniversity collaboration site. In a few hours I had a reply from a lecturer who kindlyoffered use of his Ipad2 but access to it would be restricted to the university. Iresponded to him that I would contact him if I could not find an alternative as Irequired use in my development environment: my home. When I met with mysupervisor he said that I should develop for the Galaxy tab 2 7.0 as it was a similartechnology but for the Android operating system.

He could authorise access for me to use one. While this was good news it meant Ihad to re-design all of the images for the screen size. In week 9, while awaiting thetablets availability to take home, I took a moment to tidy up some documentationthat I had created. The documents actually came in useful in the later weeks. Icreated a design and technical document. I also produced a feedback formdocument which could be used to get information on how well the game would bereceived by a game play audience. During this week I alsothought a lot about what types of classes I would require to get the game runningefficiently. I created Class, responsibilities and collaborator cards which helped methink about what was going to be on the programming agenda in the next week.

In the following week I decided to have another project review and identify exactlywhere I was in relation to the entire honours project - prototype, learning new skillsand the honours module deliverable documentation. After reading about JimHighsmiths advice to teams reviewing their progress, I decided to make anassessment card of my own and put it on the blog space. This allowed me toorganise my time better and also conveyed the position I was in to thestakeholders without waiting for the formal meetings which happened each week.In week 10 I received the galaxy tablet 2 7.0 When I got it home and set it up, Isoon realised that the physics did not work well on the tablet. It was runningintermittently in the chrome browser. I then tried all the available browsers. None ofthem was able to sustain the speed of the engine processing the physicsmathematics in real time.

Page 39: Honours Dissertation

P a g e | 30

At this point in the development of the prototype I was pleased that I had alreadyconsidered creating a scrolling game on which I carried out unit tests and it workedfine on the galaxy tab 2. I had to review what features I could implement in thesmaller screen with the potential of creating a fun and immersive runner game. Inweek 11 and 12 I was unwell. This is the only inflexible aspect of developingsoftware adhering to AAAAggggileileileile practices by yourself. I could not do as much work as Iwas usually capable of and was no-where near as enthusiastic as I normally wouldbe. I carried on with planning and coding some elements of the introduction userinterface for the Galaxy tab 2 7.0 screen.At the start of week 13 I had the new menu and scrolling mechanics implemented.It was then that the Titanium SDK reported an error with its internal files whichcaused the environment not to load. I searched Google for a solution but all I foundwas a help page saying that the effects of the error could not to be resolved andthat the software required the user to re-program some files in the SDK directory. Imade an informed decision to use the eclipse SDK, which I had already used inprevious university projects as this would be an easier option. It also containednothing better or worse than Titanium and was still free to use. The first semesterwas now over The main game mechanic coding of the game could take place nowand into February, hopefully in time to carry out some research and play testsbefore my presentation in March. This would mean I could present a fullyargumentative case that AAAAggggileileileile software development can be utilised in a singleperson team.

By now I realised that Scrum with XP would be the way ahead for me to developthe remainder of the features of the game. I started with some re-factoring andrevised the title screen layout for the smaller screen. I decided to make a featurelist which I could track on my blog space - the space acting as the Scrum storyboard in a real AgileAgileAgileAgile team environment. I decided to put a time scale on the finaldevelopment so I could enhance my efforts to get the games 3 levels debuggedand playable for the middle of February. 2 week Sprints were defined and manyfeatures in the feature list. For instance, the run animation for the main character,obstacles and more game play elements required programming. Over the twoweeks I got to work and documented, as before, daily progress on the blog spaceand in my log text file.

I was making steady progress. I allowed my moderator to try the game and hesaid he was satisfied and to carry on with the development. Old features weregetting ticked off, new ones could be put on or scored out which fleshed out thegame more. At the end of the two weeks in January I reviewed my progressentirely. Similar to last time using the team assessment chart, I made one of thesprint in order to reflect and document what happened and what went well. WhatI found was that I had boosted my creativity using Scrum and Xp. Time wasalways an important aspect of the project to consider but making sure the work isbeing done and quality is maintained at a high level is considerably moreimportant. Ensuring the standard is always high during the development, even ifthe worker(s) is enthusiastic and organised, can only be achieved by good shortterm thinking.

Page 40: Honours Dissertation

P a g e | 31

In his AAAAggggileileileile project management book, Jim Highsmith states:That adapting to change is of greater worth to developing software than it is tofollowing a plan. He states 3 points to consider in order to react positively tochange:

“·Envision – explore versus plan-Do·Exploration versus production·Adapting versus anticipating”

Envisioning, exploring and adapting were values which contributed to thedevelopment of the prototype: learning new skills and communicating problemsand receiving feedback.

I found that my efforts at this stage in the development were aiming to achieve theXP aims to inspire developers to achieve when creating software: Risk taking toachieve a goal while knowing what can be done due to the flexibility and shortterm thinking of the entire project. The developer must be courageous during thedevelopment of the project and must always be aware of his or her role andresponsibilities in the project. I prepared myself for the final sprint of the project toget the final features working and playable. I made a back-up plan to account forsome risks that may occur in order to produce quality working software to testbefore the date of my presentation. I made an energised work diagram toreinforce the aspects I had identified.

This highlighted the need to rest more and take breaks during the sprint rather thanputting so much human effort into the work. The diagram reminded andempowered me that I was the controller of the flexible working times. The balanceof work would still be achieved if I considered personal health and other work thatneeded attention. A single person doing all of the work meant it was quite an effortto produce your very best every day for two weeks for 9 hours a day. I did get a lotof features done in this time however which made it worthwhile. If Agile is to betruly integrated the development team/person should be enthusiastic, conscientious,ambitious and amicable. The statement of simplicity of the development is crucial.

Simple organisation, simple communication and simple design elements - refiningprocesses that work, and expanding on failed processes - ensuring technical debtdoes not disrupt the development of software. A burn down chart was made topredict if there was enough time to finish the project in time to get organised togather feedback on the game. The burn down chart showed that in the last 13days I could potentially complete the prototype in 5 days before it would be toolate to organise gathering feedback. I managed to finish the game.

Page 41: Honours Dissertation

P a g e | 32

8888 QualitativeQualitativeQualitativeQualitative andandandand quantitativequantitativequantitativequantitative researchresearchresearchresearch

8.18.18.18.1 TheTheTheThe ququququeeeestistististioooonnnnnnnnaaaaiiiirrrreeee

I created a questionnaire document to obtain information from potential end userswith reference to their view of the tablet runner game. The results of the game playtest questionnaire documented the gamers experience. The testers were promptedwith questions which provided research data for the game including bothquantitative data as well as qualitative data. Maxwell et al (1986) attests thatcombining both of these research methods "deepens the perspective" which allowsthe results to be tested in context with the investigation in a bigger scale thanreducing questions which cover one data range - be it purely quantitative orqualitative . Moreover, “Collecting different kinds of data by different methods fromdifferent sources provides a wider range of coverage that may result in a fullerpicture of the unit under study than would have been achieved otherwise”(Bonoma, 1985)

This view was certainly supported by the end results of the honours projectresearch. I provided the potential gamers with access to the Galaxy tablet 2 7.0 totest the game. I did not interfere during the gamers experience in order tomaintain complete impartiality. I then directed them to the website for the surveyand they completed it. I gathered research data from 13 males and 6 females whoparticipated in the survey. There were 12 people who were in the 18-25 years oldcategory, 5 were 26 - 38 and 2 were above the age of 39. Compiling and analysingthe results from all the gamers, I found that (14 / 19) “Enjoy Runner games”. (18 /19) “Liked the Aesthetics”. (12 / 19) “Liked the Controls”. (14 / 19) “Liked the Gameplay”. (13 / 19) said it was a “respectable runner game”.

Finally, and most crucially, (16 / 19) Said playing the game was fun. In the survey Ialso included a field to assess how much people would be willing to pay for thegame if it was put onto the Android market store for applications. The majority ofpeople would pay £0.69 for the final version of the game. One person saidbetween 59p and £1. Another person said between 60p and £1. This wasparticularly pleasing result as the majority of the 19 people who took the surveysaid that they would pay for the final version of the game. The reasons given bythose who disagreed was that they expected the game to be free either at first orthey already played better games which were free to play.

Only one person said that the game was not up to modern standards whichprompted their disapproval of the games fun factor. They also expected the gameto be free to play. The majority of people did not like the player jump gamemechanic which proved to be annoying. Nonetheless, the challenge of the timingfor jumping - which was noted to be completely different from any other runnergame on the market - was also a positive aspect of the game as a whole.

Page 42: Honours Dissertation

P a g e | 33

Positive comments from the majority of respondents state that the game wasfrustrating and addictive but it needed work if the game was to becomecommercially available to the public market. One problem linked with this is thecriticism of the tutorial screen which was not clear enough or attractive.

More visuals were recommended in order to provide the gamer with moreinformation on what is happening on the screen. Another criticism was aimed atthe controls of the game. While some agreed that they liked the controls and theywere straight forward to use - "not many to remember" - the controls provedbothersome to a minority of the gamers as the "dexterity required to play the gamewas a challenge". One gamer said that the controls were hard to get to grips withbut overall the experience was fun. One person stated in the comments sectionthat the controls were simple. The feedback also included responses regardingsome extra features which people would have liked to be in the game if theintention was to market it. Various suggestions to include in a production versionwere: a level points system, more levels, more fast pace, check points.

8.28.28.28.2 PrPrPrProtootootootottttyyyyppppeeee eeeevvvvaaaalllluuuuaaaattttiiiioooonnnn

To consider the prototype as a success would be true. However, there were a fewfailures highlighted by testers during the play test. However, analysis of the datacollected supports the view that incorporating the values suggested by the Agilemanifesto is during the prototype's development is a success for AgileAgileAgileAgile softwaredevelopment and of the project as a whole. The prototype received positivefeedback in parallel to being fun and challenging. Furthermore, people stated theywould purchase a copy of the game for a/their tablet device. The prototypefollowed the principles of the Agile manifesto throughout the project. It deliveredthe software on time, was able to adapt to change during the project smoothly, thepeople involved in the project were able to communicate and provide feedback onvarious aspects during each week of development. The prototype was alsoavailable to demonstrate when new features were ready. The positivity of the datacollected supports the success that was achieved entirely. AgileAgileAgileAgile values can beimplemented in a single person team; and they can get positive results.

Page 43: Honours Dissertation

P a g e | 34

9999 MMMMododododeeeellll aaaannnndddd aaaattttttttrrrriiiibbbbuuuutttteseseses rrrrececececoooommmmmmmmeeeennnnddddaaaattttiiiioooonnnnssss

In a single person team project, adhering to the principles of the Agile manifestowhile using AAAAggggileileileile methods of developing software is a challenge. The difficultiesthat occur during the project emphasise the absence of a development team tosupport the project. The entire challenge of development with AAAAggggileileileile is therefore, apersonal one. The individual must accept the responsibility of dealing with all theoccurrences during the development. In order to achieve success, the person mustbe prepared to learn and be determined and courageous to develop the skillsrequired to compete the project well and on time. Identified by Ambler(2002, p. 25)he states that;

“The best developers have the humility to recognize that they don’t knoweverything."

Fundamentally, the person should adopt a routine which encompasses theprinciples of agility. This routine should consider the best method of working withinanAAAAggggileileileile framework: the most appropriate development methods to use within theenvironment they are working in. Similarly in AAAAggggileileileile software development IID isused and the best method of developing working software is chosen dependingon the type of organisation. Project management must be in place within the AAAAggggileileileileframework if the project is to go well. Barry Bohem et al,(1989) said that "win-winsituations exist, and often they can be created by careful attention to people’sinterests and expectations." The individual should therefore show leadership andmost importantly, courage to organise their project and communicate changesfrequently.

It is important to communicate well with all those involved in the project, daily inaccord with theAAAAggggileileileile principles. In the creation of the prototype I found that weeklymeetings were a reliable and realistic approach to discussion regarding variousproblems during development. Although face-to-face is the best form ofcommunicating, the email system worked well for the project outwith the normalhours of attendance at the University, to communicate any changes to thoseinvolved in the project - supervisor, moderator and for a brief period, my fellowstudent Jonathan. Beck (2005, p. 4) notes that using XP in AAAAggggileileileile means that "youdon’t prepare for failure. Keeping a little distance in relationships, holding backeffort either through underwork or overwork, putting off feedback for another roundof responsibility diffusion: none of these behaviours have a place on an XP team.”

In order to keep the development transparent during these times, I set up a blogspace which was accessible by all. Despite the fact that in order to truly claim toimplementAAAAggggilililileeee, you must be communicating with the development team andsharing ideas, in a single person development team this is virtually impractical. Inorder to keep track of progress or ideas I had, I kept daily logs in a text file which Idocumented each day - like a daily meeting. They offer the ability to reflect on whathas occurred previously quickly and any issues that are observed can be resolved.Responding to changes in development can be done well in a single person team.

Page 44: Honours Dissertation

P a g e | 35

The flexibility of the individual aiming to complete tasks daily, allows for adaptionto any changes to take place almost instantaneously. If problems do not arise,there is always something else that the person can use their initiative on, toreduce the amount of work they may have. When beginning to program, it isimportant to ensure understanding of how to use the development environment. Itis also vital to set standards that will be used in the programming code files at thestart to ensure consistency of readability of them. Xp is recommended to ensurethe correct disincline is being invoked within the AAAAggggileileileile framework. Theprogramming code should be designed properly.

The code should contain the most appropriate data types ensuring that processesare running as efficiently as possible. The variable names should be meaningfulto the programmer and others who may look at it - use of metaphors in the codewill aid maintenance later in the development. Debugging and re-factoringregularly eliminates doing more work later to enhance the code and also inducesan understanding of the overall code which has been created. Testing codeshould be done daily. Unit testing should be done for new features. Ultimately,doing this frequently will save investing time later in the development fixing errorsor holding up other features that need to be completed. Martain(2008, p. 11Ch 1)makes a good point about ensuring the code written is designed well - 'clean' -and is fit for the purpose it was built for “You know you are working on clean codewhen each routine you read turns out to be pretty much what you expected. Youcan call it beautiful code when the code also makes it look like the language wasmade for the problem.”

This is an important aspect of AAAAggggileileileile while developing software. Even in a singleperson development team, ensuring the code is readable and designed to its fullpotential for the application is important. Using Scrum along with XP while in theimplementation phase of the project, will keep the project manageable. Userstories written and documented ensure that continuous integration is re-enforcedon paper - as no Scrum meetings can be had daily with one person doing thedevelopment themselves; effectively taking the role of the Scrum master anddevelopment team. Producing a sprint backlog is also a good idea to remindyourself of the time scale of the project. Reflection, just like in a team using Scrum,should occur at the end of the sprint to highlight the inefficiencies and allow theperson to act on them for the next sprint. Beck (2005, p. 18) sums up this pointaptly of the correct attitude when you reflect upon the practices used whileprogramming: “When you encounter a problem, ask yourself if the problem wascaused by a lack of communication. What communication do you need now toaddress the problem? What communication do you need to keep yourself out ofthis trouble in the future?"

Audio creation and art work can be created incrementally as the development ofthe project goes on. When there is room to define a feature and create, time mustbe assigned to get the assets created. This can be done at the same time as theprogramming is taking place because there is one person managing thedevelopment and making the decisions. The only weakness of creating thecontent is the skills required to make them. Time and effort must be made in your

Page 45: Honours Dissertation

P a g e | 36

own time to develop these skills such as sketching. Creating animations alsotakes time which means that the person must be prepared to exert a lot of energyinto the project. They must be enthusiastic throughout the project and have akeen interest it what they are doing. I recommend the following principles as arequirement for a single person adhering to the Agile manifesto and AgileAgileAgileAgilesoftware development to create software. In relation to my research, peopleshould be aware of these attributes to give their project the best opportunity tobecome an overall success.

TheTheTheThe ssssingleingleingleingle ppppeeeerrrrssssonononon tttteaeaeaeammmmwwwwiiiitttthhhh AAAAggggileileileile 11110000 aaaattttttttriburiburibuributttteeeessss fffforororor ssssuuuuccccccccesesesessfsfsfsfulululul proproproprojjjjecececectttts:s:s:s:

1. The art of simplicity - reducing the amount of work not done - is a pivotalaspect to get right at an individual level: it affixes flexibility and focus to theindividual, meanwhile affecting the quality of the project and its outcome.

2. A highly motivated and amicable individual(s) is required: They mustunderstand and adhere to all aims of the project and their role. They should beaware that such a project is a burden on their time and should always be giving100%

3. Short releases of working software and communicating regularly is importantbecause it can resolve issues or create new problems.

4. Similar to the self-organising teams, the best architectures, requirements anddesigns emerge from an organised individual who is intrinsically motivated toperfect everything about the development with amount of time available.

5. Planning in the short should be an aspect of an individual’s technical ability inthe project: Envisioning, exploring and adapting are key stages they must dowell

6. As with XP, individuals should be considered as human beings - not mereworkers. Respect should be instilled during the project for their own time,health and wellbeing.

7. Regular meetings with key people involved in the project are a must: Unlesschanges or problems are being communicated, nothing can be done aboutthem.

8. Always be aware of time constrains but it is not wasteful to document/modelwhen the entire project is being carried out by a single person: It can aiddesign in the short term but it does not not need to be updated as too manyaspects change.

9. Keeping logs of progress is a good idea so that they can be referred to forinformation about previous direction in the project if required - team meetingsusually have meeting minutes, treat each day like a personal meeting.

10. Deliverable features should be considered regularly in a single person team.Unlike a team who can delegate specific features to add - at a particular timein the project - the time and importance of the feature must be agreed by allpeople involved, and then developed in order to be delivered on time.

Page 46: Honours Dissertation

P a g e | 37

10101010 CCCCononononclclclcluuuusisisisioooonnnn

In conclusion, creating HTML5 games for the Galaxy tab 2 7.0 can be achievedthrough single person development when the individual is following the principlesof the Agile manifesto using AAAAggggileileileile practices. The project successfullydemonstrated the strengths and weaknesses of AAAAggggileileileile software development andhow it is used to create quality working software. Research has proven that AAAAggggileileileilesoftware development can be scaled up and downwards for different team sizes.However, the individual(s) must be organised, reliable and determined to work tothe best of their abilities.AAAAggggileileileile also improves the trust between the customer andthe development team through the short releases of the software and the dailyinvolvement in the project.

Weekly meetings in person and email during the week strengthened the trust withthose involved and also productivity as feedback could be given and pointsdiscussed in detail. Furthermore, I was able to do the project with AAAAggggilililileeee. I didn'tneed to resort to traditional methods which contributes to the success of theresearch. I achieved it myself with no-one's help. The only team member I had wasat the beginning where I kept in contact with my tester - but after this, testing wasdone by myself using TDD. It could be done quicker also - Jonathan worked duringthe days. Crucially, the values that AAAAggggileileileile advocates were true. All of these traits ofAAAAggggileileileile software development in small and large teams were found to benefitsoftware development with a single person development team. Examination of thePulse game engine showed that HTML5 games could bemade by learning how to program in Javascript, CSS and HTML5.

Development of the prototype was achieved during the first twelve weeks usingFDD and DSDM Atern by designing potential features first and organising theproject resources and tasks: with particular attention to the people involved. Duringthe remaining twelve weeks of development I used AAAAggggileileileilemodelling, Scrum and XP.The practices contained in these methods ensured that the project went well andadhered to the principles AAAAggggileileileile teaches. The development was centred ontechnical excellence, communication and simplicity. My research proved a successfirstly that the combination of methods used to follow Agile principles enabled thegame to be completed by the agreed time and was proven to be of a high quality.

Personal reflection occurred daily and a more in depth review taking place at theend of each sprint. Changes occurred frequently during the twenty-four weeks andthe framework for development of the prototype was flexible enough toaccommodate the changes and implement them on time and to a high quality. AAAAggggileileileilesoftware development is all about getting what the customer wants and theprototype was exactly what the customer wanted. To ensure that this was the case,communication and showing progress regularly was key to success. When thegame was ready to be tested, academic research also supported that it workedwell in accordance with AAAAggggileileileile software development.

Page 47: Honours Dissertation

P a g e | 38

It was received well by those who provided their view of the game. Thequestionnaires were deigned to record quantitative and quantitative feedback on thegame when they tested it to make certain that the feedback received gave a clearindication of the games success or failure. When developing the prototype Iidentified that the flexibility of Scrum and XP allowed the development of the gameto increase when all the skills which were required to create the game were learned.Another factor determining the dissertation's success is that when the software wascompleted, there was still time left over (2 weeks) which would have been enoughtime to make the changes people suggested for the commercial release of theprototype. Each point in the manifesto was being controlled within the AAAAggggileileileileframework effectively but this was only because of ten vital attributes which myresearch identified regarding the environment and the people involved in the projectsdevelopment.

Simplicity must be the main factor in single person development. The person mustdo everything possible to ensure that each part of the development is simplified togive them more time to perfect. It also means less work will need to be done which inturn means fewer problems to communicate and less feedback to receive. A highlymotivated individual is a must. They must understand and accept theirresponsibilities from the outset and be involved right away. They should beenthusiastic about completing the project and aim to perfect every task they need tocomplete. Short releases of the software being developed allows for the customerand the developer to communicate better. It enables them to agree on certainaspects of the game and receive better feedback on what the customer wants. Italso benefits the developer gaining a sense of reward for their hard work. Theindividual must be comfortable in their environment.

They must show courage, skill and initiative to complete the work. They must bethe leader in the development of the project which requires them to learn frommistakes and perfect everything in the development. Short term planning is a must.Reviews must occur daily to ensure all that is happening in the development will gosmoothly and nothing will be forgotten either to communicate, or a task that maybuild up in the feature list. Value must be placed on the human needs of theindividual. They must be able to recognise that their health is also important whendeveloping software. In order to merge rest and developing a balance must befound which enables them to do the work to perfection while not fatiguing them.Regular face-to-face communication is a must with all those involved.

Good time management must be in place. Modelling when there is time availableis not a bad thing. Keeping logs/blogs and tracking progress aids understanding ofthe time scale and progress that has been made (and what remains to completethe project). All instances during the development require use of good judgment. Itis important to develop the game to be delivered on time and at good quality.Neglecting to be more efficient, or not communicate problems is not an option inAAAAggggileileileile software development. Collectively, the project and research were a success.The research demonstrated that new skills can be learned to support HTML5 andtouch screen technology using AAAAggggileileileile software development within a single personteam.

Page 48: Honours Dissertation

P a g e | 39

In addition, research that was gathered regarding the testing of the game waspositive. Conjointly, the research in the dissertation proves that one person canachieve the goal of creating an HTML5 game for the Galaxy tab 2 7.0. The issues ofchanges affecting development can be avoided/fixed usingAAAAggggileileileile softwaredevelopment. If AAAAggggileileileile principles are understood and followed by the individualdeveloping software, the project is likely to be a success.

Page 49: Honours Dissertation

P a g e | 40

ReReReReffffeeeerrrreeeennnncescescesces

[1] Amblers, S. (2002) “Agile Modelling: Effective Practices for eXtremeProgramming and the unified Process”. New York: John Wiley & Sons, Inc. NewYork, 2002.

[2] Beck, K. (1999) “Embracing Change with Extreme Programming”, Journaldetailing all the aspects of extreme programming by Kent Beck, Vol 32, Issue 10

[3] Kent Beck (2005). Extreme Programming explained: Embrace change.Boston: Addison-Wesley.

[4] Boehm, B. (1988) “A spiral model of software development and enhancement”,Journal about the spiral software development model and software development,Vol 21, Issue 5

[5] Boehm, B and R, Ross. (1989) “Theory-W Software Project Management:Principles and Examples”, Journal about management principles, Vol 15, Issue 7

[6] Boehm, B (2002) “Get Ready For The Agile Methods, With Care, Journal aboutagile methodologies”, Part1 of a Journal about agile software development methodsand approaches, Vol 35, Issue 1 pp. 64-69, 2002.

[7] Bonoma, T.V, "Case Research in Marketing: Opportunities, Problems, and aProcess," Journal of Marketing Research (22:2), May 1985, pp, 199-208

[8] Chau, T., F. Maurer, and G. Melnik, (2003). “Knowledge Sharing: Agile Methodsvs. Tayloristic Methods”. In12th IEEE International Workshop on EnablingTechnologies: Infrastructure for Collaborative Enterprises (WETICE2003). IEEEComputer Society. 302–307.

[9] Chau, T. and Maurer, F. (2004) “Knowledge Sharing in Agile Software Teams”,Journal assessing how teams collaborate in an agile software developmentenvironment, 2004, ISSU 3075, pp. 173-183

[10] Cockburn, A. (2004) “Crystal Clear A Human-Powered Methodology ForSmall Teams, including The Seven Properties of Effective Software Projects”,Journal: The crystal clear methodology, 2004

[11] Cockburn, A. (2002) “Agile software development”. Addison-Wesley

[12] Cohen, D, Lindvall, M and Costa, P. (2004) “An introduction to agile methods”,Journal about the spiral software development model and software development ,Vol 62, pp. 1 – 66 2004

Page 50: Honours Dissertation

P a g e | 41

[13] Constantine L. L. (2002) “Process Agility and software usability towardlightweight usage-centered design”, Journal of the development approach of IIDin software development, August 2002.

[14] Turk, D., France, R., Rumpe, B., 2002. “Limitations of agile softwareprocesses”. In: Proceedings of the 3rd International Conference on ExtremeProgramming and Agile Processes in Software Engineering. Sardinia, Italy.

[15] Dybå, T., and Dingsøyr, T. 2008. “Empirical Studies of Agile SoftwareDevelopment: A Systematic Review,” Journal: Information and SoftwareTechnology (50:9-10), pp. 833-859.

[16] Highsmith, J. (2001) “What is agile software development”, Journal about agilesoftware development, Vol 15, Issue 10

[17] Hoda, R. J, Noble, S, and Marshall, S. (2008) “Agile Project Management”;Computer Science Research Student Conference, Christchurch, New Zealand, pp.18-221. April 2008

[18] James O. Coplien & Neil B. Harrison (2004). Organizational Patterns of AgileSoftware Development: Prentice Hall.

[19] Kortmann, R., Harteveld, C. (2009) “Agile game development: lessons learnedfrom software engineering. In: Learn to game, game to learn”, Agile gamedevelopment: lessons learned from software Proceedings of the 40th conference ofthe international simulation and gaming association. 2009

[20] Lachlan. H. (2007). "A Preview of HTML5". Available:http://www.alistapart.com/d/previewofhtml5/structure-div.gif.Last accessed 07th Jan 2013.

[21] Larman, C and Basili, V.R. (2004) “Iterative and Incremental Development: ABrief History”, Journal of the development approach in IID, Vol 36, Issue 6

[22] Larman, C . (2004) “Agile & Iterative Development: A manager's guide”. 5th ed.USA: Addison-Wesley.

[23] Lindvall M, Muthig D, Dagnino A, Walling C, Stupperich M, Kiefer D. (2004)“Agile software development in large organizations”, Journal about how largeorganisations manage agile software development, Vol 37, Issue 12

[24] M. Awad. (2005) “A Comparison between Agile and Traditional SoftwareDevelopment Methodologies”, Thesis paper denoting agile and traditional softwaredevelopment practices,Honours program thesis, University of Western Australia,2005.

Page 51: Honours Dissertation

P a g e | 42

[25] Maxwell, J.A, Bashook, P.G. and Sandlow, L.J, "Combining Ethnographic andExperimental Methods in Educational Research: A Case Study," in EducationalEvaluation: Ethnography in Theory, Practice, and Politics, D,M, Fetterman and M,A,Pitman(eds.). Sage Publications,Beverly Hills, CA, 1986, pp, 121-143.

[26] Modulus team. (2012). Pulse game engine. Available:http://withpulse.com/about.Last accessed 07th Jan 2013.

[27] Qumer, A, and Henderson-Sellers, B. (2008) “An Evaluation of the Degree ofAgility in Six Agile Methods and its Applicability for Method Engineering, Informationand Software Technology”, Journal regarding six agile methodologies , Vol 50,Issue 4

[28] Robert C. Martin. (2008). Chapter 1. In: Clean Code: A handbook of agilesoftware craftsmanship: Prentice Hall. P11.

[29] Sutherland, J, Devos, M, Beedle, Sharon, Y and Schwaber, K. (1999) “SCRUM:An extension pattern language for hyperproductive software development”, Journalabout the Scrum methodology , Vol 4, 1999

[30] Ken Schwaber, Mike Beedle. (2002). "Why does Scrum work ?. In: Agilesoftware development with Scrum". Upper Saddle River, NJ: Prentice hall. 105.

[31] Vinekar, V, Slinkman, C. W. and Nerur, S. (2006) “Can Agile and TraditionalSystems Development Approaches Coexist? An Ambidextrous View”, Journal aboutagile and traditional approach to software development and how they can beintegrated together, Vol 23, Issue 3

[32] Whitworth, E. and Biddle, R. (2007) “The Social Nature of Agile Teams”,Proceedings of the AGILE Conference 2007,Journal of how team work isimplemented in agile teams, p.26-36, August 13-17, 2007

Page 52: Honours Dissertation

P a g e | 43

GGGGlllloooosssssasasasarrrryyyy

TTTTEEEERMRMRMRM MMMMEEEEAAAANNNNINGINGINGINGSD Software DevelopmentIID Iterative and incremental developmentFDD Feature driven developmentDSDM Atern Dynamic systems development Atern methodASD Agile Software DevelopmentRAM Random access MemoryXP Extreme ProgrammingASD Adaptive software developmentCode and Fix A software development model which entailed

programming the software for a set amount of timethen fixing the errors after this process has beencomplete

AM Agile ModellingPRINCE2 PPPPRRRRojects ININININ Controlled EEEEnvironments 2BDUF Big Design Up FrontUML Unified modelling languageLightweight methodology A methodology which is not as process intensive as

traditional heavyweight methodologiesLED Light emitting diodeCSS Cascading style sheetsHTML Hypertext mark-up languageAgilists Someone who advocates the principals of the Agile

manifesto document and who appreciates Agilesoftware development. They may themselves bepracticing Agile.

Agile/Agility The ability to react to changes to the requirementsefficiently and flexibly at any time duringdevelopment. Also the ability to collaborateassertively in the attempt to resolve issues/getfeedback to produce quality working software.

Sprint A period of time (typically 2 - 4 weeks) which isassigned to the development of software in the Scrummethodology

Javascript A programming language which is used on webpages. It is used to allow the user to programinteractive content for the browser.

Plugin Components of a piece of software which has theability to interact with a bigger application(program) which enables use of it's features. Forinstance a javascript plugin for checkboxes can beused in the Pulse game engine

Page 53: Honours Dissertation

P a g e | 44

AAAAppppppppeeeendndndndiiiixxxx AAAA ---- ImplementingImplementingImplementingImplementing pppphysicshysicshysicshysics usingusingusingusing pulsepulsepulsepulse engiengiengienginenenene

In pulse, the physics module is accessed by sourcing it in the html file.

<html><head>

<script type="text/javascript" src="pulse.physics.min.js"></script></head>

</html>

Next, in the javascript game file, the ready function is used to set the pulse to Box2Dphysics ratio parameter. The area of which to have physics can then be set along withgravity for the world space. The world can then be defined as:

World =(AWorldObject){ theworld,thegravity,are phsyics active }

Pulse.ready(function() {// Ratio of Box2D physics to pulse mm.Box2DFactor = 0.01;

// Define area of physics bounding box for the worldvar worldAABB = new b2 AABB(); worldAABB.lowerBound.Set(-10000.0,-10000.0); worldAABB.upperBound.Set(10000.0, 10000.0);

// Setup gravity vector and world for Box2Dvar gravity = new b2Vec2(0.0, 7); // was 0.0 , 7 var world= new b2World(worldAABB, gravity, true);

When sprites are defined, they can be manipulated via calls to the physics module. Forinstance, to get a sprite(S) to move up on the y axis.

S.b2body.SetLinearVelocity(newb2Vec2(2,S.b2body.GetLinearVelocity().y));

One final aspect of setting up physics is ensuring that the physics module runs at a ratewhich accompanies the frame rate of the game and of the engines update loop. Theupdate function loop parameters consider the scenes that are being used in the game andthe frame rate (elapsed). For each iteration of the physics loop (Step), the game updateloop works synchronously with the physics and the other game processes on the screen.When the game is rendered, the game should run smoothly with no asynchronous hangups.

function update(sceneManager,elapsed) {// update the Box2D physics world world.Step(elapsed/1000, 10);//. . .}

Page 54: Honours Dissertation

P a g e | 45

AAAAppppppppeeeendndndndiiiixxxx BBBB ---- DesiDesiDesiDesiggggnnnn dodododoccccuuuummmmeeeennnntttt

The design documentation made the game ideas more focused and purposeful duringthe projects initial development. The document was particularly important during thebeginning of the project when new ideas and problems arose. The ideas contained inthe document could be elaborated on when aspects of the development changed, forinstance the conversion of assets from ipad2 to galaxy tab 2 screen dimensions or thephysics being unable to implement fast enough on the tablet meaning that I had tocreate my own, thus changing the game mechanics and the objectives, influences,characters of the game.

Page 55: Honours Dissertation

P a g e | 46

Page 56: Honours Dissertation

P a g e | 47

Page 57: Honours Dissertation

P a g e | 48

AAAAppppppppeeeendndndndiiiixxxx CCCC ---- TTTTecececechhhhnnnnicalicalicalical dodododoccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn

The technical documentation aided the thoughts about the requirements for theproject to be a success. Particular attention to the document at the beginning ofthe project – despite the many changes made since it’s creation, made planningeasier to manage when changes were made to the requirements. It allowedideas/concepts to be communicated easily to stakeholders during the initial startup phase of the project.

Page 58: Honours Dissertation

P a g e | 49

AAAAppppppppeeeendndndndiiiixxxx DDDD –––– ProjectProjectProjectProject managementmanagementmanagementmanagement

Dropbox enabled the storage of all the files and documents for the project in the onespace. The website is accessible anywhere with a simple login and was free to use. Icould keep track of multiple versions and any changes made could be recovered if aprevious version was required. I kept versions of code, documents, daily progressrecords and documents of my dissertation work.

Page 59: Honours Dissertation

P a g e | 50

AAAAppppppppeeeendndndndiiiixxxx E-E-E-E- PrPrPrPrelielielielimmmmiiiinnnnaaaarrrryyyy ggggaaaammmmeeee ddddeeeevvvveeeellllooooppppmmmmeeeennnntttt

Page 60: Honours Dissertation

P a g e | 51

AAAAppppppppeeeendndndndiiiixxxx EEEE ---- SSSSccccrrrreeneeneeneen ttttesesesesttttssss oooonnnn iiiippppaaaadddd2222

Page 61: Honours Dissertation

P a g e | 52

AAAAppppppppeeeendndndndiiiixxxx FFFF ---- PrPrPrProgogogogrrrraaaammmmmmmmiiiinnnngggg ccccododododeeee

Page 62: Honours Dissertation

P a g e | 53

AAAAppppppppeeeendndndndiiiixxxx GGGG ---- AAAAsssssesesesettttssss ccccrrrreaeaeaeattttiiiioooonnnn ooooffff ththththeeee pppprrrroooottttototototyyyyppppeeee

Page 63: Honours Dissertation

P a g e | 54

AAAAppppppppeeeendndndndiiiixxxx HHHH ---- FFFFiiiinnnnaaaallll ggggaaaammmmeeee pppplaylaylaylay scscscscrrrreeneeneeneen