SlideShare a Scribd company logo
Agile for Embedded & System
Software Development
Challenges and Approaches
6th May 2016
- Priyank KS
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
About Me
Priyank K S
http://in.linkedin.com/in/priyank-ks-10b18214
priyank.ks@arithaconsulting.com
Priyank works as a Technical Consultant &
Agile Coach at Aritha Consulting Services and
consults enterprises in Agile for Embedded &
System Software Development area.
Let’s connect:
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Need For Agile
A Real World Example
Gateway-Router
Small Office
Home Office
ISP
Ethernet
Telephone Line
(ADSL)
Pic source:
thinkdiff.org
Pic source:
bb.osmocom.org
1
5
1
8
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Inverted Test Pyramid
Radical shift in testing approach
Unit Tests
Integration
Tests
Manual end-to-end
Tests
Automated end-to-end
Tests
Automated
Integration
Tests
Automated Unit Tests
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 Four weeks or less is too short a time to have potential
releasable functionality.
 Required skills are too diverse to have a cross-functional
team
 Hardware and Software development cannot be
done in parallel.
 First we need hardware, then only can the software be developed.
 User Stories do not work for embedded system
development
Common Challenges (myths) in
Embedded/System Software Development
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
MTP to Final Product
Pic source: http://www.slideshare.net/tumma72/agile-embedded-software-development-whats-wrong-with-it
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Landmines in the embedded world
Field Issues
Memory
Corruption
System
Out of Memory
System
Crash
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Lets Identify a Landmine in Code
char output[5]; char user_input[5];
memset(output, 0x0, 5);
user_input = read_user_input();
sprintf(output, user_input);
Example 1:
Example 2:
// allocate Array
char *sz = new char[20];
// Initialize the first and last element to 12
sz[0] = 12;
sz[20] = 12;
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 External Quality – Quality of a product as measured by the customer
 Finds all the focus of the organizations
 Internal Quality – Quality as measured by the programmers
 Finds neglect of the organizations
A different perspective towards quality
Business Layer
Technical Layer
External Quality
Internal Quality
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 External Quality Characteristics
 Correctness
 Usability
 Efficiency
 Reliability
 Integrity
 Accuracy
 Robustness
 Internal Quality Characteristics
 Maintainability
 Flexibility
 Portability
 Re-usability
 Readability
 Testability
 Understandability
How Does it Translate to Day-to-Day Practices?
Source: Steve McConnell’s book – Code Complete
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 External Quality
 Continuous integration
 End-to-end system tests
 Iteration demos with stakeholder feedback
 Internal Quality
 Unit testing
 Test Driven Development (TDD)
 Code Reviews
 Pair Programming
How Does it Translate to Day-to-Day Practices?
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 One of the key principles of Lean Software Development – Build Quality In
 You can build quality product, but it is hard to add quality later.
 “Maintainability is not an afterthought, but should be addressed from the
start of the project” – Joost Viser in the book “Building Maintainable
Software”
 Automate the tests
“Build Quality In”
Automated
End-to-end
Tests
Automated
Integration
Tests
Automated
Unit Tests
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 Continuous Feedback is Important
“Build Quality In”
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Quality and The Test Pyramid
Source: Growing Object-Oriented Software, Guided by Tests, by Steve Freeman, Nat Pryce
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
eXtreme Programming (XP) – to build Internal quality
Source: http://www.codeproject.com/Articles/604417/Agile-software-development-methodologies-and-how-t
Kent Beck’s basic idea was
 Take observed effective team practices
 Push them to extreme level
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
XP Practices
Pair
Programming
The Planning
Game Small
Releases
Metaphor
Simple
Design
Testing
Refactoring
Collective
Ownership
Continuous
Integration
40 hour
week
On-Site
customer
Coding
Standards
XP
Practices
(Source: Extreme
Programming explained
– by Kent Beck)
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
XP Practices
Pair
Programming
The Planning
Game Small
Releases
Metaphor
Simple
Design
Testing
Refactoring
Collective
Ownership
Continuous
Integration
40 hour
week
On-Site
customer
Coding
Standards
XP
Practices
(Source: Extreme
Programming explained
– by Kent Beck)
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Why XP?
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Emergent Architecture
 Sprint Zero
 Architecture RunWay, Architecture Vision
Do the Simplest thing that possibly work
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Emergent Architecture
Architecture Runway
Source: http://www.slideshare.net/assocpm/agile-at-lockheed-martin-4th-february-2014
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Emergent Architecture
 Sprint Zero
 Architecture RunWay, Architecture Vision
 Architecture Runway --- “ilities”
 Scalability, Reliability, Extensibility, Security, Reusability,
Maintainability, Usability …
 Spikes
 When in doubt, Code or Model it out
Do the Simplest thing that possibly work
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
 “By deferring important architectural and design decisions until the last responsible
moment, you can prevent unnecessary complexity from undermining your software
projects” (Source: IBM Developerworks)
 Creating a flexible architecture, and taking care not to create an irreversible
decision
 As new concerns appear, the architecture is changed accordingly to handle the
new concerns
 Walking Skeleton (with Broad brush architecture )
 A tiny implementation of the system that performs a small end-to-end function.
 It need not use the final architecture, but it should link together the main architectural
components.
Definition Credit Alistair Cockburn
Emergent Architecture - Approaches
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
A Walking Skeleton for Embedded
Pic source: http://www.slideshare.net/tumma72/agile-embedded-software-development-whats-wrong-with-it
Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.
Unity - Unit Test Tool for C
TEST(sprintf, NoFormatOperations)
{
char output[5];
memset(output, 0xaa, sizeof(output));
TEST_ASSERT_EQUAL(3, sprintf(output, “hey”));
TEST_ASSERT_EQUAL_STRING(“hey”, output);
TEST_ASSERT_BYTES_EQUAL(0xaa, output[4]);
}
A sample Unity test code

More Related Content

PDF
Will Agile work in my embedded development environment?
PPTX
Embedded meets Agile
PPTX
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
PDF
Scaling agile scrum practices 2.0
PPTX
Introduction to Disciplined Agile Delivery (DAD) : Presented by Dr. Sanjay Sa...
PDF
Working Smarter: Learn, Optimize, Accelerate
PPTX
Agile Adoption and Transformation in a regulated environment
PDF
Portfolio visualisation Scrum Gathering Prague
Will Agile work in my embedded development environment?
Embedded meets Agile
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Scaling agile scrum practices 2.0
Introduction to Disciplined Agile Delivery (DAD) : Presented by Dr. Sanjay Sa...
Working Smarter: Learn, Optimize, Accelerate
Agile Adoption and Transformation in a regulated environment
Portfolio visualisation Scrum Gathering Prague

What's hot (20)

PDF
The Good Shepherd - the Role of BAs in Agile
PDF
Agility meets regulatory compliance
PDF
Agile Testing is nonsense, because Agile is about testing!
PPTX
Experience Report : Agile transformation & implementation - Cisco Video Bus...
PDF
Why self-organization might not work, and what has that to do with the compan...
PPTX
Scaled agile framework (SAFe) - adopting agile at enterprise scale
PDF
Agile transformation model
PDF
Burning Agile
PPTX
AgileCamp 2014 Track 1: Scaling agile with Disciplined Agile Delivery
PDF
Avoiding the Dilbert Syndrome
PDF
Out of Sight, Out of Mind: Survival tricks and tools for remote developers
PPTX
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
PDF
Approaches to scaling agile
PDF
Where next?
PDF
Introduction to scaled agile framework
PDF
Foundations of the Scaled Agile Framework: Be Agile. Scale Up. Stay Lean. And...
PDF
AgileLIVE – Accelerate Enterprise Agile with the Scaled Agile Framework®: Part I
PDF
Agile IT Operatinos - Getting to Daily Releases
PDF
Coaching opposing sides large scale lean program management
PDF
IBM DevOps - Adopting Scaled Agile Framework (SAFe) Webinar
The Good Shepherd - the Role of BAs in Agile
Agility meets regulatory compliance
Agile Testing is nonsense, because Agile is about testing!
Experience Report : Agile transformation & implementation - Cisco Video Bus...
Why self-organization might not work, and what has that to do with the compan...
Scaled agile framework (SAFe) - adopting agile at enterprise scale
Agile transformation model
Burning Agile
AgileCamp 2014 Track 1: Scaling agile with Disciplined Agile Delivery
Avoiding the Dilbert Syndrome
Out of Sight, Out of Mind: Survival tricks and tools for remote developers
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
Approaches to scaling agile
Where next?
Introduction to scaled agile framework
Foundations of the Scaled Agile Framework: Be Agile. Scale Up. Stay Lean. And...
AgileLIVE – Accelerate Enterprise Agile with the Scaled Agile Framework®: Part I
Agile IT Operatinos - Getting to Daily Releases
Coaching opposing sides large scale lean program management
IBM DevOps - Adopting Scaled Agile Framework (SAFe) Webinar
Ad

Viewers also liked (20)

PPT
3.7 heap sort
PDF
iBeacons: Security and Privacy?
PDF
Interfaces to ubiquitous computing
PPTX
Demystifying dependency Injection: Dagger and Toothpick
PDF
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
PDF
Dependency Injection with Apex
PDF
HUG Ireland Event Presentation - In-Memory Databases
PPTX
Agile Methodology PPT
PDF
Skiena algorithm 2007 lecture07 heapsort priority queues
PDF
Privacy Concerns and Social Robots
PDF
ScrumGuides training: Agile Software Development With Scrum
PDF
Design & Analysis of Algorithms Lecture Notes
PDF
09 Machine Learning - Introduction Support Vector Machines
PDF
Final Year Project-Gesture Based Interaction and Image Processing
PPTX
Going native with less coupling: Dependency Injection in C++
PPTX
In-Memory Database Performance on AWS M4 Instances
PDF
Machine learning support vector machines
PDF
Sap technical deep dive in a column oriented in memory database
PDF
Dependency injection in scala
PDF
RFID Privacy & Security Issues
3.7 heap sort
iBeacons: Security and Privacy?
Interfaces to ubiquitous computing
Demystifying dependency Injection: Dagger and Toothpick
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
Dependency Injection with Apex
HUG Ireland Event Presentation - In-Memory Databases
Agile Methodology PPT
Skiena algorithm 2007 lecture07 heapsort priority queues
Privacy Concerns and Social Robots
ScrumGuides training: Agile Software Development With Scrum
Design & Analysis of Algorithms Lecture Notes
09 Machine Learning - Introduction Support Vector Machines
Final Year Project-Gesture Based Interaction and Image Processing
Going native with less coupling: Dependency Injection in C++
In-Memory Database Performance on AWS M4 Instances
Machine learning support vector machines
Sap technical deep dive in a column oriented in memory database
Dependency injection in scala
RFID Privacy & Security Issues
Ad

Similar to Agile for Embedded & System Software Development : Presented by Priyank KS (20)

PPTX
Fllow con 2014
PPT
Waterfallacies V1 1
PPTX
Emergent Design: History, Concepts, and Principles
PDF
eXtreme Programming
PPTX
It's XP Stupid (2019)
PPTX
Architecture and very large scale agile software development
PPTX
Post-Agile Methodologies and all that Jazz
PDF
Agile Embedded Software Development, what's wrong with it?
PDF
Emergent Design: History, Concepts, and Principles
PPS
Software Development in the Brave New world
PPS
3685807
PPTX
Holistic Product Development
PDF
Enterprise Agile at Lockheed Martin - 4th February 2014
PPT
Software Development in 21st Century
PPT
Extreme programming
PPTX
Agile software development and extreme Programming
DOCX
Incremental model
PPTX
Agile
ODP
Brief Intro to Agile, Benefits & Transition
PDF
Agile Embedded Software
Fllow con 2014
Waterfallacies V1 1
Emergent Design: History, Concepts, and Principles
eXtreme Programming
It's XP Stupid (2019)
Architecture and very large scale agile software development
Post-Agile Methodologies and all that Jazz
Agile Embedded Software Development, what's wrong with it?
Emergent Design: History, Concepts, and Principles
Software Development in the Brave New world
3685807
Holistic Product Development
Enterprise Agile at Lockheed Martin - 4th February 2014
Software Development in 21st Century
Extreme programming
Agile software development and extreme Programming
Incremental model
Agile
Brief Intro to Agile, Benefits & Transition
Agile Embedded Software

More from oGuild . (20)

PDF
How Scrum Master can help the team in quitting 'SMOKING' - Talk by Bhanu Golc...
PDF
Culture and You - Talk by Hariharaganesh (Discuss Agile Day Delhi 2019)
PDF
Webinar on Big Data Challenges : Presented by Raj Kasturi
PDF
Leadership in Agile : by Karthik Mahadevan & Ramakrishnan Sitaraman
PPTX
Kanban for Self Development : Presented by Sundaresan Sethuraman
PDF
Agile Coach: Magician Changing Mindset - by Sasnka Kiran Ravula
PPTX
Art of Doing Effective Scrum : Presented by Mohammed Javid
PDF
Agility Beyond Framework and Dev Team : by Anubhav Sinha
PDF
Influential Leadership : Presented by Ramanathan Yegyanarayanan
PDF
Agile Inception Strategies : Presented by Khaarthigha Subramanian
PDF
Becoming Successful Product Owner : Presented by Arne Ahlander
PDF
Agile Transformation and The Metrics Drama : Presented by Deepak Gururaja
PDF
Appreciative Enquiry : Presented by Sridharan Vembu
PPTX
Agile Vendor Management Manifesto : Presented by Gaurav Rastogi
PPTX
Design Thinking & Innovation Games : Presented by Cedric Mainguy
PPTX
Killing Agile Software Development : Presented by Rizky Syaiful
PPTX
If You Need To Run A Project You've Already Failed : Presented by Evan Leybourn
PDF
The Day I Realized I Was Not Yet An Agile Coach : Presented by Sylvain Mahe
PDF
Introduction to Management 3.0 : Presented by Ralph van Roosmalen
PPTX
Adopting a DevOps Culture
How Scrum Master can help the team in quitting 'SMOKING' - Talk by Bhanu Golc...
Culture and You - Talk by Hariharaganesh (Discuss Agile Day Delhi 2019)
Webinar on Big Data Challenges : Presented by Raj Kasturi
Leadership in Agile : by Karthik Mahadevan & Ramakrishnan Sitaraman
Kanban for Self Development : Presented by Sundaresan Sethuraman
Agile Coach: Magician Changing Mindset - by Sasnka Kiran Ravula
Art of Doing Effective Scrum : Presented by Mohammed Javid
Agility Beyond Framework and Dev Team : by Anubhav Sinha
Influential Leadership : Presented by Ramanathan Yegyanarayanan
Agile Inception Strategies : Presented by Khaarthigha Subramanian
Becoming Successful Product Owner : Presented by Arne Ahlander
Agile Transformation and The Metrics Drama : Presented by Deepak Gururaja
Appreciative Enquiry : Presented by Sridharan Vembu
Agile Vendor Management Manifesto : Presented by Gaurav Rastogi
Design Thinking & Innovation Games : Presented by Cedric Mainguy
Killing Agile Software Development : Presented by Rizky Syaiful
If You Need To Run A Project You've Already Failed : Presented by Evan Leybourn
The Day I Realized I Was Not Yet An Agile Coach : Presented by Sylvain Mahe
Introduction to Management 3.0 : Presented by Ralph van Roosmalen
Adopting a DevOps Culture

Recently uploaded (20)

PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPT
Project quality management in manufacturing
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
Well-logging-methods_new................
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PPTX
Sustainable Sites - Green Building Construction
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
737-MAX_SRG.pdf student reference guides
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Project quality management in manufacturing
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
UNIT-1 - COAL BASED THERMAL POWER PLANTS
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Foundation to blockchain - A guide to Blockchain Tech
Well-logging-methods_new................
Automation-in-Manufacturing-Chapter-Introduction.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
III.4.1.2_The_Space_Environment.p pdffdf
Sustainable Sites - Green Building Construction
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Internet of Things (IOT) - A guide to understanding
737-MAX_SRG.pdf student reference guides
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF

Agile for Embedded & System Software Development : Presented by Priyank KS

  • 1. Agile for Embedded & System Software Development Challenges and Approaches 6th May 2016 - Priyank KS
  • 2. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. About Me Priyank K S http://in.linkedin.com/in/priyank-ks-10b18214 [email protected] Priyank works as a Technical Consultant & Agile Coach at Aritha Consulting Services and consults enterprises in Agile for Embedded & System Software Development area. Let’s connect:
  • 3. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Need For Agile A Real World Example Gateway-Router Small Office Home Office ISP Ethernet Telephone Line (ADSL) Pic source: thinkdiff.org Pic source: bb.osmocom.org 1 5 1 8
  • 4. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Inverted Test Pyramid Radical shift in testing approach Unit Tests Integration Tests Manual end-to-end Tests Automated end-to-end Tests Automated Integration Tests Automated Unit Tests
  • 5. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  Four weeks or less is too short a time to have potential releasable functionality.  Required skills are too diverse to have a cross-functional team  Hardware and Software development cannot be done in parallel.  First we need hardware, then only can the software be developed.  User Stories do not work for embedded system development Common Challenges (myths) in Embedded/System Software Development
  • 6. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. MTP to Final Product Pic source: http://www.slideshare.net/tumma72/agile-embedded-software-development-whats-wrong-with-it
  • 7. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Landmines in the embedded world Field Issues Memory Corruption System Out of Memory System Crash
  • 8. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Lets Identify a Landmine in Code char output[5]; char user_input[5]; memset(output, 0x0, 5); user_input = read_user_input(); sprintf(output, user_input); Example 1: Example 2: // allocate Array char *sz = new char[20]; // Initialize the first and last element to 12 sz[0] = 12; sz[20] = 12;
  • 9. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  External Quality – Quality of a product as measured by the customer  Finds all the focus of the organizations  Internal Quality – Quality as measured by the programmers  Finds neglect of the organizations A different perspective towards quality Business Layer Technical Layer External Quality Internal Quality
  • 10. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  External Quality Characteristics  Correctness  Usability  Efficiency  Reliability  Integrity  Accuracy  Robustness  Internal Quality Characteristics  Maintainability  Flexibility  Portability  Re-usability  Readability  Testability  Understandability How Does it Translate to Day-to-Day Practices? Source: Steve McConnell’s book – Code Complete
  • 11. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  External Quality  Continuous integration  End-to-end system tests  Iteration demos with stakeholder feedback  Internal Quality  Unit testing  Test Driven Development (TDD)  Code Reviews  Pair Programming How Does it Translate to Day-to-Day Practices?
  • 12. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  One of the key principles of Lean Software Development – Build Quality In  You can build quality product, but it is hard to add quality later.  “Maintainability is not an afterthought, but should be addressed from the start of the project” – Joost Viser in the book “Building Maintainable Software”  Automate the tests “Build Quality In” Automated End-to-end Tests Automated Integration Tests Automated Unit Tests
  • 13. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  Continuous Feedback is Important “Build Quality In”
  • 14. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Quality and The Test Pyramid Source: Growing Object-Oriented Software, Guided by Tests, by Steve Freeman, Nat Pryce
  • 15. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. eXtreme Programming (XP) – to build Internal quality Source: http://www.codeproject.com/Articles/604417/Agile-software-development-methodologies-and-how-t Kent Beck’s basic idea was  Take observed effective team practices  Push them to extreme level
  • 16. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. XP Practices Pair Programming The Planning Game Small Releases Metaphor Simple Design Testing Refactoring Collective Ownership Continuous Integration 40 hour week On-Site customer Coding Standards XP Practices (Source: Extreme Programming explained – by Kent Beck)
  • 17. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. XP Practices Pair Programming The Planning Game Small Releases Metaphor Simple Design Testing Refactoring Collective Ownership Continuous Integration 40 hour week On-Site customer Coding Standards XP Practices (Source: Extreme Programming explained – by Kent Beck)
  • 18. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Why XP?
  • 19. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Emergent Architecture  Sprint Zero  Architecture RunWay, Architecture Vision Do the Simplest thing that possibly work
  • 20. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Emergent Architecture Architecture Runway Source: http://www.slideshare.net/assocpm/agile-at-lockheed-martin-4th-february-2014
  • 21. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Emergent Architecture  Sprint Zero  Architecture RunWay, Architecture Vision  Architecture Runway --- “ilities”  Scalability, Reliability, Extensibility, Security, Reusability, Maintainability, Usability …  Spikes  When in doubt, Code or Model it out Do the Simplest thing that possibly work
  • 22. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved.  “By deferring important architectural and design decisions until the last responsible moment, you can prevent unnecessary complexity from undermining your software projects” (Source: IBM Developerworks)  Creating a flexible architecture, and taking care not to create an irreversible decision  As new concerns appear, the architecture is changed accordingly to handle the new concerns  Walking Skeleton (with Broad brush architecture )  A tiny implementation of the system that performs a small end-to-end function.  It need not use the final architecture, but it should link together the main architectural components. Definition Credit Alistair Cockburn Emergent Architecture - Approaches
  • 23. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. A Walking Skeleton for Embedded Pic source: http://www.slideshare.net/tumma72/agile-embedded-software-development-whats-wrong-with-it
  • 24. Copyright © 2016, Aritha Consulting Services Pvt. Ltd. All rights reserved. Unity - Unit Test Tool for C TEST(sprintf, NoFormatOperations) { char output[5]; memset(output, 0xaa, sizeof(output)); TEST_ASSERT_EQUAL(3, sprintf(output, “hey”)); TEST_ASSERT_EQUAL_STRING(“hey”, output); TEST_ASSERT_BYTES_EQUAL(0xaa, output[4]); } A sample Unity test code