Development of a Wireless Environmental Data Acquisition Prototype Adopting Agile Practices: An Experience Report
- 1 Civil Engineering Department, The City College of New York, New York, USA
- 2 Electrical Engineering Department, The City College of New York, New York, USA
- 3 CUNY’s Environmental CrossRoads Initiative, The City College of New York, New York, USA
Abstract
The traditional software development model commonly named “waterfall” is unable to cope with the increasing functionality and complexity of modern embedded systems. In addition, it is unable to support the ability for businesses to quickly respond to new market opportunities due to changing requirements. As a response, the software development community developed the Agile Methodologies (e.g., extreme Programming, Scrum) which were also adopted by the Embedded System community. However, failures and bad experiences in applying Agile Methodologies to the development of embedded systems have not been reported in the literature. Therefore, this paper contributes a detailed account of our first-time experiences adopting an agile approach in the prototype development of a wireless environment data acquisition system in an academic environment. We successfully applied a subset of the extreme Programming (XP) methodology to our software development using the Python programming language, an experience that demonstrated its benefits in shaping the design of the software and also increasing productivity. We used an incremental development approach for the hardware components and adopted a “cumulative testing” approach. For the overall development process management, however, we concluded that the Promise/Commitment-Based Project Management (PB-PM/CBPM) was better suited. We discovered that software and hardware components of embedded systems are best developed in parallel or near-parallel. We learned that software components that pass automated tests may not survive in the tests against the hardware. Throughout this rapid prototyping effort, factors like team size and our availability as graduate students were major obstacles to fully apply the XP methodology.
- Schwaber, K. (2004) Agile Project Management with Scrum. Microsoft Press, Redmond.
- Beck, K. (2000) Extreme Programming Explained: Embrace Change. Addison-Wesley Professional, USA.
- Qasaimeh, M., Mehrfard, H. and Hamou-Lhadj, A. (2008) Comparing Agile Software Processes Based on the Software Development Project Requirements. International Conference on Computational Intelligence for Modelling Control & Automation, Vienna, 10-12 December 2008, 49-54. http://dx.doi.org/10.1109/CIMCA.2008.54
- Ronkainen, J. and Abrahamsson, P. (2003) Software Development under Stringent Hardware Constraints: Do Agile Methods Have a Chance? In: Marchesi, M. and Succi, G., Eds., Extreme Programming and Agile Processes in Software Engineering, Springer, Berlin Heidelberg, 73-79. http://dx.doi.org/10.1007/3-540-44870-5_10
- Cordeiro, L., Mar, C., Valentin, E., Cruz, F., Patrick, D., Barreto, R. and Lucena, V. (2008) An Agile Development Methodology Applied to Embedded Control Software under Stringent Hardware Constraints. ACM SIGSOFT Software Engineering Notes, 33, 5. http://dx.doi.org/10.1145/1344452.1344459
- Gary, K., Enquobahrie, A., Ibanez, L., Cheng, P., Yaniv, Z., Cleary, K., et al. (2011) Agile Methods for Open Source Safety-Critical Software. Software: Practice and Experience, 41, 945-962. http://dx.doi.org/10.1002/spe.1075
- Manhart, P. and Schneider, K. (2004) Breaking the Ice for Agile Development of Embedded Software: An Industry Experience Report. Proceedings of the 26th International Conference on Software Engineering, Edinburgh, 23-28 May 2004, 378-386. http://dx.doi.org/10.1109/ICSE.2004.1317460
- Boehm, B. (2002) Get Ready for Agile Methods, with Care. Computer, 35, 64-69. http://dx.doi.org/10.1109/2.976920
- Greene, B. (2004) Agile Methods Applied to Embedded Firmware Development. Agile Development Conference, Salt Lake City, UT, 22-26 June 2004, 71-77. http://dx.doi.org/10.1109/ADEVC.2004.3
- Karlesky, M., Williams, G., Bereza, W. and Fletcher, M. (2007) Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns. Proceedings of the Embedded Systems Conference, San Jose, CA, 1-5 April 2007, 1518-1532.
- Van Schooenderwoert, N. and Morsicato, R. (2004) Taming the Embedded Tiger-Agile Test Techniques for Embedded Software. Proceeding of the Agile Development Conference, Salt Lake City, UT, 22-26 June 2004, 120-126. http://dx.doi.org/10.1109/ADEVC.2004.21