Welcome to this IBM Rational podcast, Continuous Integration for Agile Embedded Software. Development. I'm Kimberly Gist with IBM.

Similar documents
2013 DISCOVER BCS NATIONAL CHAMPIONSHIP GAME NICK SABAN PRESS CONFERENCE

Chapter 5: TEST THE PAPER PROTOTYPE

No Child Left Behind Bill Signing Address. delivered 8 January 2002, Hamilton, Ohio

The open source development model has unique characteristics that make it in some

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

IT4305: Rapid Software Development Part 2: Structured Question Paper

5 Guidelines for Learning to Spell

Major Milestones, Team Activities, and Individual Deliverables

Software Maintenance

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Course Content Concepts

Five Challenges for the Collaborative Classroom and How to Solve Them

The Flaws, Fallacies and Foolishness of Benchmark Testing

A CONVERSATION WITH GERALD HINES

Susan Castillo Oral History Interview, June 17, 2014

Teaching Reproducible Research Inspiring New Researchers to Do More Robust and Reliable Science

Building a Sovereignty Curriculum

Welcome to the Purdue OWL. Where do I begin? General Strategies. Personalizing Proofreading

IN THIS UNIT YOU LEARN HOW TO: SPEAKING 1 Work in pairs. Discuss the questions. 2 Work with a new partner. Discuss the questions.

The Foundations of Interpersonal Communication

LEARNER VARIABILITY AND UNIVERSAL DESIGN FOR LEARNING

Eduroam Support Clinics What are they?

SCU Graduation Occasional Address. Rear Admiral John Lord AM (Rtd) Chairman, Huawei Technologies Australia

Computer Organization I (Tietokoneen toiminta)

Listening to your members: The member satisfaction survey. Presenter: Mary Beth Watt. Outline

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

A Pipelined Approach for Iterative Software Process Model

Faculty Schedule Preference Survey Results

An Introduction to Simio for Beginners

UNDERSTANDING DECISION-MAKING IN RUGBY By. Dave Hadfield Sport Psychologist & Coaching Consultant Wellington and Hurricanes Rugby.

Testing for the Homeschooled High Schooler: SAT, ACT, AP, CLEP, PSAT, SAT II

Education: Integrating Parallel and Distributed Computing in Computer Science Curricula

Introduction to CRC Cards

Computer Science. Embedded systems today. Microcontroller MCR

PUBLIC SPEAKING: Some Thoughts

Modeling user preferences and norms in context-aware systems

STUDENTS' RATINGS ON TEACHER

Essay on importance of good friends. It can cause flooding of the countries or even continents..

Module Title: Managing and Leading Change. Lesson 4 THE SIX SIGMA

Circuit Simulators: A Revolutionary E-Learning Platform

Kindergarten Lessons for Unit 7: On The Move Me on the Map By Joan Sweeney

A Pumpkin Grows. Written by Linda D. Bullock and illustrated by Debby Fisher

and. plan effects, about lesson, plan effect and lesson, plan. and effect

HOW TO LEARN FASTER AND (RE)DISCOVER JOY OF LEARNING

Executive Guide to Simulation for Health

Generating Test Cases From Use Cases

Institutionen för datavetenskap. Hardware test equipment utilization measurement

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

E-3: Check for academic understanding

MAKING YOUR OWN ALEXA SKILL SHRIMAI PRABHUMOYE, ALAN W BLACK

LEARN TO PROGRAM, SECOND EDITION (THE FACETS OF RUBY SERIES) BY CHRIS PINE

OCR LEVEL 3 CAMBRIDGE TECHNICAL

P-4: Differentiate your plans to fit your students

Webinar How to Aid Transition by Digitizing Note-Taking Support

Computers Change the World

CS 100: Principles of Computing

The Heart of Philosophy, Jacob Needleman, ISBN#: LTCC Bookstore:

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

1. Professional learning communities Prelude. 4.2 Introduction

Evaluation of Learning Management System software. Part II of LMS Evaluation

Getting Started with Deliberate Practice

White Paper. The Art of Learning

Notetaking Directions

Syllabus Fall 2014 Earth Science 130: Introduction to Oceanography

Introduction to Moodle

a) analyse sentences, so you know what s going on and how to use that information to help you find the answer.

Eller College of Management. MIS 111 Freshman Honors Showcase

Online Family Chat Main Lobby Thursday, March 10, 2016

Changing User Attitudes to Reduce Spreadsheet Risk

writing good objectives lesson plans writing plan objective. lesson. writings good. plan plan good lesson writing writing. plan plan objective

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

Case study Norway case 1

Android App Development for Beginners

Dentist Under 40 Quality Assurance Program Webinar

On May 3, 2013 at 9:30 a.m., Miss Dixon and I co-taught a ballet lesson to twenty

ATENEA UPC AND THE NEW "Activity Stream" or "WALL" FEATURE Jesus Alcober 1, Oriol Sánchez 2, Javier Otero 3, Ramon Martí 4

Creation. Shepherd Guides. Creation 129. Tear here for easy use!

The Enterprise Knowledge Portal: The Concept

Career Series Interview with Dr. Dan Costa, a National Program Director for the EPA

What is a Mental Model?

Speak Up 2012 Grades 9 12

Undocumented Students. from high school also want to attend a university. Unfortunately, the majority can t due to their

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

Chapter 9: Conducting Interviews

Best Practices in Internet Ministry Released November 7, 2008

Replace difficult words for Is the language appropriate for the. younger audience. For audience?

An Open Letter to the Learners of This Planet

Cognitive Thinking Style Sample Report

Beveridge Primary School. One to one laptop computer program for 2018

Strategy and Design of ICT Services

Writing Research Articles

Quick Reference for itslearning

Cal s Dinner Card Deals

By Merrill Harmin, Ph.D.

Thank you letters to teachers >>>CLICK HERE<<<

PART 1. A. Safer Keyboarding Introduction. B. Fifteen Principles of Safer Keyboarding Instruction

How to write websites in an essay >>>CLICK HERE<<<

SMARTboard: The SMART Way To Engage Students

Shockwheat. Statistics 1, Activity 1

Transcription:

IBM Podcast [ MUSIC ] GIST: Welcome to this IBM Rational podcast, Continuous Integration for Agile Embedded Software Development. I'm Kimberly Gist with IBM. Software teams have increasingly benefited from Agile development methods in recent years. They have adopted practices based on iterative and incremental development where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Today Martin Bakal, Worldwide Offering Manager, Electronics Industry for IBM Rational Software; and, Jennifer Althouse, Systems Sales Leader, Electronics Industry for IBM Rational software join us on the podcast to show how continuous integration can be employed in the context of embedded software development to improve a business's bottom line. Martin and Jennifer, welcome to the podcast today. ALTHOUSE: Thanks. BAKAL: Thank you very much. GIST: Martin, why don't you take our first question, which is, what do you mean by continuous integration for -1-

Agile embedded software development? BAKAL: Sure. So, continuous integration is a process that's part of Agile in general that some people use in Agile. What it really is is a process that allows you to sort of always integrate each of the pieces that you do whenever you do a check in and then have the different tests occur afterwards in different pieces like that. When we talk about embedded development, we're talking about development where something goes inside of an actual device and actually gets embedded inside of it. And the difficulty there for doing Agile has been a number of different things which we'll discuss further on, but primarily you can't get access to the hardware that easy to actually do some of the tests which it calls for testing all the time in Agile. It's not like sitting on a PC and just testing that device. So, continuous integration means whenever you bring the integration in, then you can sort of farm it out to the correct piece of hardware which might be back in a lab somewhere. And that way, multiple users can all be sort of doing the tests kind of offsite as they do it whoever they integrate different parts in. That's why continuous integration is actually important, to allow embedded developers to actually -2-

be agile. ALTHOUSE: Right. To build on what Marty was just saying, the whole value to the business of doing continuous integration is that you get constant feedback on the quality of the product you're developing. And it was kind of started over on the IT side of the house where people were building applications that were meant for the Web or meant to be posted on servers, but now that we're seeing the time to market pressures increase in embedded software development we're seeing it jump over into that area. And as Marty was mentioning, it's difficult to make sure that an entire system comes together when you have pieces that are hardware components, you have pieces that are software components. So it adds a certain complexity over a traditional IT continuous integration circuit where you have to make sure that you test the software you're creating, but you also have to make sure you test it in context with that hardware. GIST: That was a great definition. Jennifer, why do software teams need to adopt Agile development methods? -3-

ALTHOUSE: Well, Agile development methods help teams do a few things: one is to make sure that they can handle change. So as we've moved into an area where embedded software is having a very short time to market requirement, they have needed to kind of compress the entire development cycle down. And traditionally embedded development had a much longer cycle. They could afford to do a lot of this testing at the end. They could afford to write all the requirements at the beginning. And they could afford to in the middle do all of that development work and still meet those requirements. So what's happened is you compress that. You're having to get things out the door faster. Well, one of the ways to take cycle time out of a development effort is to not leave all that testing risk to the end and try to test your quality in, but to try to make sure that you're doing a constant cycle of testing. And that's the basic idea of what Agile development is, doing smaller chunks of development, breaking things down into kind of predictable smaller bites. But then also making sure that at the end of that development cycle you have a fully working and testing and validated piece of software. -4-

And so, again, it's that market condition that has changed. And that's what's requiring folks to get things done faster, and to get things done faster you need to take out any and all waste. And getting that testing early and often reduces the risk and squeezes out that extra waste in the development cycle. BAKAL: Another part to it is actually customer feedback is a very important piece. And Agile is very good because not only does it -- just like Jennifer mentioned, it actually allows you to basically get the feedback quicker because you're actually testing and then, here's a buildable entity. Let me show it to a customer or let me show it to my marketing group and say, is this what you mean? And then you can kind of develop the next part and go from there. So as we're getting much more responsive to customer needs in all industries, we're trying to develop things that they really want rather than things that they think they might want. The question really becomes, how do we do that? And so, for us, in many cases the importance there is really to understand what the customers want, show them a working prototype, give them feedback, allow them to get feedback really quickly, and then respond to that and develop it differently if need be. -5-

So I agree with Jennifer, it's to get it out quicker; it's also to get that feedback even if the product will take a while but come out the final product. If it's a medical device and it has to go through FDA requirements and stuff, you can still get earlier feedback and understand the customer needs ahead of time. GIST: Great. Well, then Marty, why don't you take this question: how can Agile practices apply to systems' development projects? BAKAL: Okay. So, I guess first we define what systems development projects are. When we say systems development projects we mean sort of embedded devices built into an overall entire system. It could be building a medical device. It could be building an airplane or something along those lines. And traditionally, Agile has been slower adoption in these industries because they're regulated and people want to have a plan in place. This is the whole plan we're going to do all the way through. But what they've started to see over the years is they really need to do more than that. They really need exactly what Agile's providing: better feedback from customers, testing earlier and often, and all those pieces. The hard -6-

part is that if they have a plan they have to be able to meet that plan, the customer signed off on those requirements, it has to be regulated. That's where things like continuous integration help keep them on that path, keep testing, and they can show that the thing is working correctly. They can map it to the actual requirements. They can show what they're actually doing so they actually have something that has traceability across the whole life cycle. That's the part that's so important, whether you're talking about aerospace and defense, medical, building mobile phones, building automobiles. All these different types of things you do in sort of a systems marketplace you have to have complete traceability across that. And the way to do that is to somehow automate some of that grudge work, make sure the traces all occur, and make sure you know from requirements through your design, through your testing, that everything actually fits correctly. And that can work fine in Agile, it just takes having that plan and understanding it and then being able to adjust to change as you go through it. ALTHOUSE: Marty, that was great. I don't have anything to add. -7-

GIST: Well, I see that testing and feedback are definitely consistent things throughout this topic of discussion. Jennifer, how does embedded software development discipline differ from IT application development? ALTHOUSE: It differs in a few different ways. One difference is that IT development is typically done with a very standard platform. So all of the IT development is going to look and feel somewhat similar in that it's interfaced with a machine where there's a monitor and you have that computer to talk to or to interface with. In embedded system development, you are typically scaling everything down to kind of very small processors. Right? So you don't have as much space. You don't have as much wiggle room to have extra memory used or to have extra cycles in what you're producing. The other thing is that often we are more tolerant of errors in IT development. So if the machine, your computer, has to be rebooted once a week, you find that to be completely acceptable. Even if it has to be rebooted every night, people are tolerant of that level of reboot. But as soon as we're talking about maybe your telephone or -8-

your automobile or some of the other more embedded medical devices, the idea of that having problems that would cause it to be rebooted once a day would be completely intolerable. Right? So no one wants to have to turn their car on and off periodically for everything to work right - -even though on the IT side that level of defect rate is acceptable. The other big difference is that as we start to talk about embedded development, a lot of times we're talking about something that does have some safety critical nature to it, like an automobile or a medical device, and again anything with a safety critical nature has this elevated level of testing because certainly you don't want your automobile to fail and cause harm to yourself or other people. So if you look at just those two factors: the factor of safety critical, the factor of kind of tolerance for a defect rate, the embedded software development has less tolerance for defects. And that's what's so nice about Agile development and this cyclic development being brought into the embedded development area is that it allows you to get that more constant feedback. It allows you to reduce your risk and reduce your defect rate earlier in your cycle of development so that over time you don't have these things coming out in the field in -9-

actual usage. And kind of back to the other part where I talked about the fact that you are often limited, you are limited in your ability to have memory for those devices, limited in the ability to have processor power. It also gives you more chance to vet out the architecture and vet out the way that your application runs and cycles, and also to make sure that that is running as efficiently as possible. So each time you go through a testing cycle you have the ability to get rid of some of what they call your architectural debt. So anything that you built up, anything that you got out the door but you didn't get out the door as efficiently as possibility so that it had room for improvement. Every cycle you get through Agile you get that chance to fix it or make it better, whereas with traditional waterfall development, everything's pushed to the end. You didn't have as many times or as many chances to kind of remove that extra excess. BAKAL: Jennifer, I thought that was a great answer. I think you covered most of what I wanted to say. I guess the only other thing I'd add is when you talked about regulated devices, one of the pains or advantages there is that it has -10-

to go through a regulatory process. It's going to take a longer period of time before you actually release and give it to customers. You don't want a heart pump to not be tested and qualified by the FDA and make sure everything works correctly at the end of the process. And that's very different than a lot of the software we see now in IT systems where they sort of...some company put something up on a Web site and just hopes that it all actually works. And if it doesn't, well, fine. They can replace it very easily. I once worked in a company that did a sub pump that inside the sewer system was measuring data on the sewer system itself. Nobody wants to go back in there and replace that. Now maybe they could do a software update on the fly. But if they really had to patch some things like the issue with how it did the software update on the OS or something else, then it'd be a real pain to have to go in and go get those living out of the sewer systems. A very expensive operation. So there are a lot of different types of things like that where updating it is much, much harder in embedded systems, and that makes it different than IT. -11-

GIST: Well, we've given a definition, we've looked at adoption, talked about the importance of feedback and obviously identified some of the discipline differences. So for our last question, what would you say are the benefits of using continuous integration for Agile embedded software development? Why don't we start with you, Marty? BAKAL: I think deep integration has benefits across all different types of Agile development because in general you're integrating into the strain quite regularly. But when we talk about Agile development, a lot of these Agile development projects tend to be very critical, but they also tend to be very large and have multiple teams working together. So you want to make sure you integrate things regularly. The advantage of continuous integration is to build a process in place where you actually can bring something into the stream much more quickly. Every day you're sort of putting something in there, having it testing, making sure it works so people don't kind of hang on to their code for a long period of time, which then breaks everyone else in the system's parts. We are dealing with a large group of people all working together to make sure it all works. That's very important. Another part of it is when you're doing testing in the lab -12-

you actually want to actually have the builds work in a kind of automated fashion. So you release it, you build it, you make sure it all works correctly. Now it gets scheduled automatically to be tested in lab on the different devices that you're working there. That's something that embedded people really need. People working on IT apps can test it on their computer because it's the same thing as the final device is going to be on in many cases. They have direct access to the hardware that's going to be the final system. But embedded, you don't have that type of direct access, which means you need to use a process like continuous integration in order to have it scheduled and to have the testing scheduled as part of what you're doing. GIST: Jennifer? ALTHOUSE: Sure. So with continuous integration, I mean, the idea being that you test early and often -- so, as soon as you finish testing, you test everything again. What that allows you to do is create an environment where little bugs don't grow into big bugs. Big bugs are exponentially harder to debug than little bugs. So it makes it so that you have this constant chance to -13-

catch the little bugs before they have a chance to grow up. And anyone who's done debugging of any kind of software, be it embedded or IT software development, they know that this kind of small thing that you just put in before it has a chance to compound and have other people's bugs on top, it's just infinitely easier. So again, it's all back to efficiency and making sure that you're not wasting any cycles in your develop time. And as requests for products coming out to market faster, as those become faster and faster cycles, I think this is just one more way for a business to reduce its overall test process. GIST: Thank you, Martin and Jennifer. A very interesting review on continuous integration with Agile. We sincerely appreciate you both sharing your time and expertise with us today. That was Martin Bakal, Worldwide Offering Manager, Electronic Industry for IBM Rational Software; and, Jennifer Althouse, Systems Sales Leader, Electronics Industry for IBM Rational, with a great overview of our topic: Continuous Integration for Agile Embedded Software Development. To hear this specific podcast or to browse additional topics check out our Rational Talks to You podcast page at www.ibm.com/rational/podcasts. This has been an IBM -14-

podcast. I'm your moderator Kimberly Gist. Thank you for listening, and we hope that you will choose to keep tuning in as Rational Talks to You. IBM Podcast [ MUSIC ] [END OF SEGMENT] -15-