At a minimum, to properly prepare our students to perform their first job duty of maintaining software, we need to teach out students the following:
- The full SDLC process.
- The role they play in the SDLC process.
- The role others play in the SDLC process.
- How to write and execute unit and functional test plans.
- How to navigate through unfamiliar code.
- How to be proficient at using a debugger.
- How to use a defect tracking system.
- How to properly use a version control system.
- How to leverage various branching strategies that are used when maintaining software.
Reducing the cost of software maintenance requires software developers to find defects as early as possible in the SDLC process. We must stress and reinforce the following with our students:
- We must ensure software developers do not inject regression issues into the code which further increases the cost to maintain the software. Therefore, we need to stress and reinforce the importance of test-driven development, regression testing and test automation with our students.
- We must ensure that software developers do not make the code harder to maintain than what they started with. Therefore, we need to stress and reinforce the importance of coding standards and code documentation with our students.
We must ensure our students understand and practice agile delivery methodologies, such as XP, kanban or scrum, and stress the importance of leveraging test automation tools whenever possible in their software development practices.
In summary, we need to teach the students the importance (and value) of spending an adequate amount of time working on agile designs, performing peer code reviews, writing unit tests, utilizing static code analysis tools, ensuring software is documented via comments, adhering to coding standards and adopting software development industry best practices.
Grand Canyon University’s College of Science, Engineering and Technology provides students with degree programs that help them prepare for their career after graduation with relevant curriculum, job-ready skills and applicable soft skills. To learn more, visit our website or contact us using the Request More Information button.
References
- Arima Developer. (2003). A Conversation with Andy Hunt and Dave Thomas. Retrieved March 28, 2017 from artima.com/intv/dry.html
- Blane, Tyler. (2007). Agile Development and Software Maintenance Costs. Retrieved March 28, 2017 from tynerblain.com/blog/2007/02/28/agiledevelopment-roi-2/
- Boehm, Barry W. and Philip N. Papaccio. ‘Understanding and Controlling Software Costs,’ Reference v. 14, no. 10, October 1988, pp. 1462-1477
- Leon, Janet. (2015). The True Cost of a Software Bug. Part One. Retrieved April 21, 2017 from blog.celerity.com/the-true-cost-of-a-software-bug