This includes software development practices such as requirement gathering, analysis, design, testing, and maintenance.