Software Development Lifecycle

Launch Your Career in Software Development. Master techniques and best practices for traditional and agile software project management.

Instructor: Kevin Wendt , Praveen Mittal

Intermediate Level • 5 hours to complete Recommended experience • Flexible Schedule

What You'll Learn

  • Critically analyze software engineering development processes from our four selected development philosophies (traditional, secure, agile, and lean)
  • Describe the trade-offs among the philosophies with respect to environmental, organizational, and product constraints
  • Discuss the workings of exemplary processes within each of the given philosophies
  • Perform activities within each of the four aforementioned philosophies and explain how they satisfy the principles of the given philosophy

Skills You'll Gain

User Experience Design
Requirements Analysis
Software Quality Assurance
Lean Methodologies
Agile Software Development
Design Thinking
Software Design Patterns
Software Development Life Cycle
Engineering Software
Software Engineering
Kanban Principles
Application Security

Shareable Certificate

Earn a shareable certificate to add to your LinkedIn profile

Outcomes

  • Learn in-demand skills from university and industry experts
  • Master a subject or tool with hands-on projects
  • Develop a deep understanding of key concepts
  • Earn a career certificate from University of Minnesota

4 courses series

Software is quickly becoming integral part of human life as we see more and more automation and technical advancements. Just like we expect car to work all the time and can't afford to break or reboot unexpectedly, software industry needs to continue to learn better way to build software if it were to become integral part of human life.In this course, you will get an overview of how software teams work? What processes they use? What are some of the industry standard methodologies? What are pros and cons of each? You will learn enough to have meaningful conversation around software development processes. After completing this course, a learner will be able to 1) Apply core software engineering practices at conceptual level for a given problem. 2) Compare and contrast traditional, agile, and lean development methodologies at high level. These include Waterfall, Rational Unified Process, V model, Incremental, Spiral models and overview of agile mindset 3) Propose a methodology best suited for a given situation

Software industry is going crazy on agile methods. It is rapidly becoming the choice for software development where requirements are unpredictable or is expected to change over time. This course will help you gain knowledge on what is agile? Why agile is better suited for these situations? We will also cover some of the most common agile frameworks like scrum and XP in depth. Prerequisite: You need basic knowledge of software development process and software development methodologies. After completing this course, you will be able to : 1) Demonstrate the ability to participate effectively in agile practices/process for software development. 2) Explain the purpose behind common agile practices. 3) Ability to apply agile principles and values to a given situation. 4) Ability to identify and address most common problems encountered in adopting Agile methods. Project: You will also be given opportunity to apply what you learn in this course. You will be given fictional case studies, where after studying the case study, you will have to exercise some of the practices, techniques, etc that team members of an agile team members are expected to know.

While scrum and XP were transforming the software development industry, there were another set of ideas (derived from lean manufacturing and Six Sigma) that started to influence software development methods. These ideas around Lean Software Development forms the foundation of number of agile methods. In this course, we will explore lean concepts and cover some of the common Lean methods and techniques like Kanban, Value Stream Mapping, etc. In this course, we will also learn techniques like Lean Startup and Design Thinking that can help team learn about user and market needs much faster and cheaper. As part of this course, you will also apply the knowledge gained in this course to fictional case studies. These projects will help you gain experience to confidently apply these techniques in real world. At the end of the course, you will be able to apply lean techniques / methods to software development. You will also be able to apply methods to learn about your users and market needs much faster and cheaper.

Agile embraces change which means that team should be able to effectively make changes to the system as team learns about users and market. To be good at effectively making changes to the system, teams need to have engineering rigor and excellence else embracing change becomes very painful and expensive. In this course, you will learn about engineering practices and processes that agile and traditional teams use to make sure the team is prepared for change. In additional, you will also learn about practices, techniques and processes that can help team build high quality software. You will also learn how to calculate a variety of quantitative metrics related to software quality. This is an intermediate course, intended for learners with a background in software development. To succeed in the course, you should have experience developing in modern programming languages (e.g., Java, C#, Python, JavaScript), an understanding of software development lifecycle models, familiarity with UML diagrams (class and sequence diagrams), and a desire to better understand quality aspects of software development beyond program correctness. At the end of this course, you will be able to comfortably and effectively participate in various techniques and processes for building secure and high quality software.

Learner Testimonials

Felipe M.
Felipe M. • Learner since 2018

To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood.

Jennifer J.
Jennifer J. • Learner since 2020

I directly applied the concepts and skills I learned from my courses to an exciting new project at work.

Larry W.
Larry W. • Learner since 2021

When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go.

Chaitanya A.
Chaitanya A. • Learner since 2727

Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits.