embedded meets agile

53
AGILE PROJECT MANAGEMENT For Embedded Systems Development Ravneet Kaur Software Process Manager Philips

Upload: ravneet-kaur

Post on 21-Aug-2015

57 views

Category:

Documents


4 download

TRANSCRIPT

AGILE PROJECT MANAGEMENT

For Embedded Systems Development

Ravneet Kaur

Software Process Manager

Philips

“It is possible to finish on schedule and under budget but still not deliver anything of value.”

Why Traditional Projects Failed?

Requirements are never clear till end of the Project and always keep changing.

Why Traditional Projects Failed?

We can‘t estimate huge Projects upfront.

Why Traditional Projects Failed?

Institutionalization of Large Batch Sizes

Why Traditional Projects Failed?

Underutilization of Cadence

Why Traditional Projects Failed?

Hostility to Variability and Worship of Conformance

Managing Timelines instead of Queues

Why Traditional Projects Failed?

Inflexibility

and

Centralized Control

Why Traditional Projects Failed?No Feedback from the customer till the big bang delivery.

Agile Project ManagementAgile Project Management is a value-driven approach that allows

Project Managers to deliver high-priority, high-quality work.

Agile Project Management

Agile Project Management is about embracing change, even late in the development stage.

Agile Project Management

It’s about delivering the features with the greatest business value first, and having the real-time

information to tightly manage cost, time and scope.

Traditional Vs Agile

Most popular Agile Project Management ToolScrum

Agile Project Management in Embedded Systems

There are four key constraints that make it challenging to develop embedded systems in agile ways.

Agile Project Management in Embedded Systems

Need for system level documentation

Especially in areas were standards and regulations play a major role, simply developing a working product can not be something to

be aimed at to the detriment of important documentation.

Agile Project Management in Embedded Systems

Hardware-Software Interdependences

The development of hardware and software (and often mechanics too) are highly dependent on each other. Coupled with the long

development cycles of hardware and mechanics development this makes iterative and incremental development challenging.

Agile Project Management in Embedded Systems

Heterogeneous teams with different skillsets

Traditionally software, hardware and mechanics developers have been very separated in the development process and furthermore

each developer likely has their own area of expertise. Thus, developing the system in an agile way is difficult since knowledge

transfer between developers is challenging.

Agile Project Management in Embedded Systems

Inflexibility due to real-time functionality

Real-time requirements of embedded systems mean that certain

functions need to happen in a predictable time window on the chip. This makes the design flow very challenging, as the smallest

features and bug fixes can significantly change the timings of the chip. Thus, modular and readable code can not always be achieved

when speed and power consumption of the design matter more.

Agile Manifesto

Agile Principles for Embedded Systems Development

Our highest priority is to satisfy the customer through “early and continuous delivery of valuable software”.

Our highest priority is to satisfy the customer through “early and continuous demonstrations which lead to

the valuable system”.

“Welcome changing requirements, even late in development”. Agile processes harness change for the

customer’s competitive advantage.

“Defer making restricting design decisions to allow changing requirements, even late in development”.

This way the change can be harnessed for the customer’s competitive advantage.

Agile Principles for Embedded Systems Development

“Deliver working software frequently”, from a couple of weeks to a couple of months, with a preference to the

shorter timescale.

“Deliver demonstrations leading to the working system frequently”, from a couple of weeks to a couple of months,

with a preference to the shorter timescale.

Agile Principles for Embedded Systems Development

“Working software” is the primary measure of progress.

“Demonstrations and working system” are the primary measure of progress.

Agile Principles for Embedded Systems Development

The best architectures, requirements, and designs emerge from “self-organizing” teams.

The best architectures, requirements, and designs emerge from “co-operating and self-organizing“ teams.

Agile Principles for Embedded Systems Development

Agile Principles – change in culture and mindset

Business people and developers must work together daily throughout the project.

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

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

“Simplicity—the art of maximizing the amount of work not done”—is essential.

Agile Principles – change in culture and mindset

Agile Project Management in Embedded Systems Kanban

Visualise workflow with value stream mapping

Value stream mapping to Kanban Board

Kanban makes bottlenecks visible

Kanban helps in improving process

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

One day in Kanban Land

Kanban for System Thinking

Kanban for System Thinking

Kanban for System Thinking

Kanban at Scale

Kanban at Scale

Ravneet KaurCertified SCRUM Master

LKU Certified Kanban Practitioner SAFe Agilist Certified SAFe Program Consultant

ISTQB® Certified TesterETSI Certified TTCN-3® ExpertOMG Certified UML Professional™

Software Process Manager

Philips

[email protected]

0049-1746066353