|TECH FOCUS: BUILDING BETTER SOFTWARE WITH AGILE METHODS|
|WithToyota'shardware and software quality problems still very much oneveryone's mind, it is important to remember that problems are alsoopportunities. Recently, in “The Non-quality revolution,”Jack Ganssle made the point that “if a nation (or perhaps even acompany) starts a software quality revolution, like Japan, they willcorner the market for their products .”
The big question facing embedded systems developers, then, is howto achieve that necessary software quality? One possibility Jack hasbrought up repeatedly in his columns is the use of Agile software development methods .Check Ganssle's “Theuse of Agile , “ “Software for dependablesystems,” “Skip debugging to speed delivery,”andmany othercolumns .
According Bruce Powel Douglass, author of “The basics of beingAgile in a real time embedded systems environment ,” Agilemethods are nothing more than common sense combined with intense effortand rigorous attention applied to software development and entirelycompatible with existing techniques.
For more on this methodology read: “Embedded Agile: Acase study in numbers ,” by Nancy Van Schooenderwoert and “Usingstatic code analysis for Agile software development ,” byAndrew Yang. Other recent topics on Embedded.com have included: Agile coding conventions,Agiledocumentation strategies, using Agile for onlinecollaboration, theimportance of code inspections and reviews, Agile best practicesand configuration/changemanagement.
If after reading these and other contributions on the topic, you areconvinced your company should adopt Agile methods, you should also read “Pitching Agile toSenior Management ,” and “10 mistakes to avoidin transitioning to Agile .” (BernardCole, Embedded.com Editor, email@example.com
|EDITOR'S TOP PICKS by Bernard Cole, Embedded.com Editor|
|The basics of being Agile in a real-time embedded systems environment
In a three part tutorial, Bruce Powel Douglass, author of “Real-Time Agility,” presents a convincing argument as to why agile approaches are now necessary in embedded software development and how the techniques can be used in the context of real-time embedded applications.
|Using static code analysis for Agile software development
Since the goal of Agile development is to have working software early, source code analysis enables developers to analyze the quality and security of code from day one of coding ” one of the earliest points in the software development process
|Pitching Agile to Senior Management
Scott provides a “management speak” primer on how to effectively pitch your ideas to your boss.
|JACK GANSSLE: On the need for Agile Methods|
|The Use of Agile
The agile community's primary conference occurs in August, and looks to be quite interesting.
|Software for dependable systems
How can we know if a system, and in particular the software, is dependable? An interesting, well-written book tackles this question.
|Skip bugging to speed delivery
Inspecting code is an important group exercise that's painless if you follow etiquette and stay within its narrow scope.
|DESIGN ARTICLES: Agile Fundamentals|
|Embedded Agile: A Case Study In Numbers
Agile/XP advocate Nancy Van Schooenderwoert describes a developer lead-conversion to agile programming methods using a simple home-made unit test framework for development in the C language.
|Coding Conventions: Make Them Agile
Documented coding conventions take the pain out of development
|Imperfectly Agile: You Too Can Be Agile!
Depending on your situation, you can adopt some agile techniques but not others.
|Agile Documentation Strategies
Documentation is an important part of every system, agile or otherwise.
|The Agile End Game
Release-related activities that occur at the end of a development project should be the first thing on your mind.
|Online collaboration and agile software development
Agile software development requires input from all team members,and such collaboration is most effective when everyone participates.
|10 Mistakes in Transitioning to Agile
Levent explores the 10 most common mistakes in the transition from legacy development methodologies to Agile.
|DESIGN ARTICLES: Using Agile Methods|
|Code Inspection Book
Code inspections and reviews are a powerful bug-prevention tool. Here's a great book on the subject.
|Think Globally, Code Locally
Damon shares tried-and-true best practices that help global teamsimprove the development process by thinking globally and coding locally.
|Collaborative Development Environments
While traditional integrated development environments focus on improving the efficiencies of individual developers, collaborative development environments focus on improving the efficiencies of the entire development team.
|Using CMMI for software requirements testing in system design & development
Use the Capability Maturity Model Integration (CMMI) standard to improve software project processes, particularly requirements management and traceability.
|Ensuring software quality & reliability with configuration & change managemen
Configuration management systems help to deliver coordinated high quality and highly reliable software and hardware by easily identifying features and functional content within a particular software and hardware availability
|Requirements Management Reduces Software Defects and Improves Code Quality
Investment in software requirements management, equal to that made for design and coding, is necessary to secure a firm foundation on which to construct a successful project.
|Paying attention to your software processes to achieve higher quality code
Software methodologies such as the waterfall method or its mutated cousin, the V-Model will result in high qualiity code only if they are backed up with a structured software development process.
|GANSSLE'S EMBEDDED POLL QUESTION|
|What are your job expectations in 2010? To answer this Embedded Poll question, go to the Embedded.com Home Page.|