Project Management in Software Development: The

Report 0 Downloads 85 Views
PAGE 1

iOS Application Development

Project Management in Software Development: The Origin of Agile Development

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 2

LEARNING OUTCOMES By the end of the unit, you should be able to: 1. Differentiate between Waterfall and Agile process 2. Explain the benefits of Agile as a software development process 3. Identify the Agile Manifesto principles

VOCABULARY ● Waterfall ● Agile ● Scrum

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 3 Evolution of Software Development Process Early on in the history of software development, most companies developed software using the “Waterfall Model”. The Waterfall Model relies on stages that must be completed before proceeding to the following stage. Each stage requires that the entire app is approved before it can move onto the next stage. For example, the requirements must be completed and approved for the entire app before it can move to the design stage. You would typically start by analyzing the problem that you are trying to solve, then write all the requirements that the software needs to meet, then design the software, then code it, and finally you would integrate it all into one software package. The diagram below gives you a feel for why it is referred to as the ​Waterfall​ ​Model​; it looks like a Waterfall.

There are some fundamental problems with this approach. First, it assumes that you can accurately complete each stage before going to the next one. This is typically impossible for software projects. For example, the Waterfall Model assumes that you will be able to anticipate all the requirements of the app correctly before moving on to the design stage. Waterfall leaves little room for error or flexibility and requires you to start the entire process over again if any changes need to be made “downstream”. This can be very inefficient and expensive if each stage takes weeks or even months.

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 4

Since each stage must be completed in its entirety before it moves onto the next stage, the client typically doesn’t see any part of the app until all of the stages have been completed. If the client wants to make changes after seeing the final project, the entire process must be started over. You can image how frustrating it would be for a client to not see his or her app for months and then have it not look and feel the way they had imagined. Thankfully, a new philosophy around how to develop software emerged, which resulted in the ​Agile Manifesto​—a collection of values outlined by the leaders in the field: Individuals and interactions over process and tools Working software over comprehensive documentations

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 5 Customer collaboration over contract negotiation Responding to change over following a plan This manifesto led to a more iterative development method called ​Agile Development​. What is Agile Development? Agile Development is essentially iterative development wherein the development team works for a set amount of time on a smaller set of goals and frequently demonstrates the app to the client. This allows the client an opportunity to provide feedback earlier and the team to make smaller, more frequent changes. Unlike how Waterfall separates out stages into individual workflows, Agile is based on the premise that you get as much as possible done in a short amount of time and get it in front of the client to get feedback early and often. Waterfall vs. Agile Example For example, let’s suppose we have 9 requirements that make up our software product: Waterfall Model The Waterfall Model would require us to complete all 9 tasks at every stage before delivering to the client. Lets suppose each stage takes 4 weeks for all 9 tasks, the client won’t be able to see any part of their app for around 5 months. Plus, if any changes need to be made, the entire process must start over. All 9 requirements move through the Waterfall together…

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 6

STEP 1

STEP 2

STEP 4

STEP 5

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

STEP 3

STEP 6

DELIVERY TO CLIENT!

© 2016 Mobile Makers Academy, LLC

PAGE 7

Agile Development Based on the ​Agile Manifesto​, we want to build working software in a highly collaborative environment. Therefore, we choose a handful of tasks at a time, complete the entire development process on those tasks, and deliver the tasks to the client in a short period of time. This way the client sees what is being built every couple weeks instead of every few months. At a glance, you can see how different the process looks from the Waterfall Model—Agile Development is a continuous flow rather than steps of a ladder. Tasks get added to the project, prioritized in a backlog, developed during a sprint, and delivered to the client. The entire team works together at the same time during the sprints to build and deliver working software.

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC

PAGE 8

Agile Development is a broad term used across the software industry. However, there is a specific Agile process many development shops use, called ​Scrum​, which is what you will learn in this course.

MOBILE MAKERS ACADEMY 223 W Erie, Suite 4NW, Chicago, IL 60654 www.mobilemakers.co

 

© 2016 Mobile Makers Academy, LLC