Introduction to Agile for Embedded
This course is a broad overview of the current state of Agile.
This course is fast paced introducing both Agile processes and techniques. It is aimed at people requiring an understanding of Agile software development, but is not intended to go into the depth required to apply these Agile process and techniques without further consultancy/training.
Course objectives:
- To understand the principles of Agile Software Development
- To appreciate Agile for Embedded is different from Agile for non-Embedded
- To identify the tools required to support Agile Software Development
- Guideline to how Agile can be applied to software for High Integrity Systems development
- The challenges and pitfalls of Agile
Pre-requisites:
Attendees should have a good understanding of software development, including aspects such as design, coding and test.
Duration:
One day
Agile Introduction
- Manifesto
- Principles
- The Agile Onion
Agile Process Overview
- Foundations
- Scrum
- Lean
- BDD
Scrum
- Roles
- Artifacts
- Events
Agile Techniques (XP)
- Core
- Pair Programming
- Test-Driven Development (TDD)
- Simple Design
- Refactoring
- Middle layer
- Collective Ownership
- Metaphor
- Sustainable Pace
- Coding Standard
- Continuous Integration
- Outer Layer
- Whole Team
- Planning Games
- Small Releases
- Customer Tests
- Scrum and XP
TDD and Mocking in Principle
- TDD Foundations
- Test Construction
- Unit isolation
- Testing APIs with Mocks
Versioning
- from centralised to distributed
- workflows
Continuous Integration / Delivery / Deployment
- goals
- Architecture
- Isolation of Application from Platform
- Build System
- Workflow and builds
The Embedded Agile Toolkit
- Dump the IDE
- Code related
- Test frameworks
- Version Control
- make tools
- Build Servers
- Build environments
- Metrics
- Documentation
- Team workflow
Agile and High Integrity Systems
- Agile assumptions and Embedded Systems
- Software and Quality
- Standards and plan-driven development
- What Agile can address
- What’s missing
- Adapting Scrum - SafeScrum
Why is ‘Agile’ so difficult?
- Common agile [Scrum] pitfalls
- Dark Scrum
- Flaccid Scrum