Suitability and Contribution of Agile Methods in Mobile Software Development  100502047.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Digital inclusion – a CS perspective Alex Poulovassilis ESRC TLRP-TEL Inclusion and Impact conference, June 2010.
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS3773 Software Engineering Lecture 01 Introduction.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Agile development By Sam Chamberlain. First a bit of history..
Process- Related Requirement Management By Viswaketan Reddy.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Frequently asked questions about software engineering
Lecture 1.
AGILE Development Group KEVIN STEVEN EKAPUTRANTO RENDY WINARTA STEFANY TRIFOSA GLADYS NATALIA.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1- Introduction
Mantova 18/10/2002 "A Roadmap to New Product Development" Supporting Innovation Through The NPD Process and the Creation of Spin-off Companies.
Software Development Process
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
1 Agile Methodology & Programming Ric Holt July 2009.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Current Trends in Systems Develpment
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
An Agile Method for E-Service Composition Author : Pouya Fatehi, Seyyed Mohsen Hashemi Department of Computer Software, Science and Research Branch, Islamic.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
10 key principles of agile software development
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Requirements Engineering for Agile Methods Lecture # 41.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Presented by: Debarun das (DED59)
Embedded Systems Software Engineering
Software Development - Methodologies
Agile Project Management Athanasios Podaras
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Development methodologies
Introduction to Software Engineering
Lecture 2 Revision of Models of a Software Process
Chapter 2 – Software Processes
Agile Process: Overview
Process Models Coming up: Prescriptive Models.
Project Lifecycle and IT Product Life Cycle
Adapting Agile in Pharmaceutical Industries
Chapter 5: New and Emerging Process Methodologies
System Development Methods
Presentation transcript:

Suitability and Contribution of Agile Methods in Mobile Software Development 

Challenge Increasing mobile app complexity Changing hardware Multiple platforms Security Network communication Easy to use UI Managing requirement from multiple stakeholders and managing activities from entire development lifecycle.

Limitation Customer requirements change frequently Limited physical resources Different OS and Hardware Security Bandwidth Screen size Memory capacity Battery Small keyboard size Coverage Different input method

Why use agile method in mobile app development? A lot of potential users with demand of fast delivery of these app(app’s life cycle are short), so engineer should develop application in a efficient way with less cost and high quality

Not just efficient Luis Corral, Alberto Sillitti and Giancarlo Succi concluded that first of all agile practices should be used for mobile application development but these methodologies based on agile model need to be fine tuned to meet the needs of mission critical applications and safety.

What kind of methods are analyze? Harleen K. Flora, Dr. Swati V. Chande have reviewed and analyzed mobile application development processes using agile methodology. According to them agile practices are natural fit for mobile application development. Starting from Mobile-D, they covered all other agile practices for mobile app development, like RaPiD7, Hybrid Methodologies, MASAM and SLeSS.

Literatures review covers the comparison of agile methodologies on the basis of limitations and characteristics for mobile application development. Mostly these comparative studies are done by defining four categories which are as follows: social influences and human bases of agile methodology introduction and adaptation finally comparative study. In these comparative studies it is found that usage of agile methodology is beneficial

Comparative analysis is done based on 5 perspectives: Software development life cycle with the process aspect Theoretical principles v.s. concrete regulation Project management Generally predefined v.s. situation suitable. Empirical evidence.

CHANGING MOBILE ENVIRONMENT They need processes that respond efficiently while facing these challenges and cope with changing requirements of mobile environment. Agile Methods, spiral methodology, NPD engineering and Plan base methodologies have been proposed to cope the needs of mobile app development and to provide high quality products.

AGILE FOR MOBILE DEVELOPMENT The focus of agile approach is to deliver iterative and increment product

Mobile-D is drawn from agile practices and can meet the needs of changing mobile environment. It works on 9 principle elements extracted from agile practices and is tested on some development project and effectively evaluated against CMMI level 2. Mobile-D is good for small teams and short projects. (proposed by Abrahamsson et al.)

RaPiD7 Dooms et al. proposed the method to produce better product based on improved documentation. The idea was simple - to create reality based document with as minimum effort as possible. We know that by better human interaction and documentation better quality product can be developed. RaPiD7 actually, embraces two very agile practices: Whole Team & Do the Simplest Thing That Will Work.

Hybrid methodology Design is based on many practices like agility, review meeting, reusability support, market awareness, market base architecture, etc. this methodology is completed in four iterations Development starts with generic SDLC(software development life cycle)

MASAM (mobile application software agile methodology) is based on swift production and delivery of mobile applications using Extreme Programming, Agile unified Process, RUP and SPEM. It has some variation, from Mobile-D rather shows strong tie with it - like follow up tools and project management. It has three process assets i.e. roles, tasks and work product. It undergoes four phases namely Preparation, Embodiment, Development and Commercialization Phase.

SLeSS integrated Scrum with Lean Six Sigma. Scrum is used for software development and project management even for complex projects while Lean Six Sigma (LSS) reducing defects and eliminating waste provide better quality product.

How to choose? it’s up to developer and organization which methodology they select based on team size and project complexity. so there is no hard or fast rule to choose some methodology among all of these. Rather one should go through pros and cons of using these methodologies while developing some specific app, and then pick the one with maximum advantages.

Table I provides mapping of agile home ground(team is flexible enough to embrace changing needs) characteristics to corresponding view of mobile app development, made available in Though agile methods were considered best fit for mobile software but the fact is that mobile devices and platforms are evolving at very fast speed, and at that time mobile business was different from current one.

Differences between this mapping and current status of mobile domain are identified as under Though new models, new devices and platform are introduced each year but still mobile developers also have settles operating platform like iOS and Android and they possess their own APIs and SDKs. So new models can easily interact with previous one. Now user needs are different so there are mobile apps for banking as well as health monitoring and these apps need to follow strict standards. Consequently we can’t classify them as non-critical software. Nowadays mobile apps are no more standalone. They interact with other system as well as collaboration tool using hardware resources, etc. this implies that mobile software is not anymore small.

BENEFITS OF USING AGILE Besides the fact that agile provides significant ways to speed up the development of mobile app projects, there are some other benefits as well – that count in enhancing the market position of your organization

1. Boost up delivery build minimum viable product and deliver it to your customer in minimum possible time. This fast delivery of product and inquisitiveness of versioning factor marks up market value of that product.

2. Responsiveness towards changing market needs Technology is enhancing and changing with very fast pace and so is the proliferation in mobile market. Thus, need of the hour is to cope with changing market trends and customers requirements efficiently.

3. Risk identified at early stage Agile is an adaptive approach in which the team tackles the problems as they arise. The team must be well prepared to undertake any risk coming on their way. Risks are identified at earlier stages because of customer evolvement and feedback at each phase of the project.