Software Project Management for Combined Software and Data Engineering
Jeremy Gibbons Seyyed M. Shah James Welch Jim Davies
This chapter presents a methodology for combining software and data engineering life cycles in large software projects. Software and data engineering use multiple stages to form a life cycle for the creation of a system. Large projects often have elements of both software and data engineering. These are usually kept independent from each other as the development approaches are quite divergent; software engineering tends to be top-down, prescriptive and rigid, while data engineering tends to be bottom-up, descriptive and fluid. The methodology presented in this chapter defines a system for sharing and reuse of artefacts between software and data engineering development processes, in spite of the differences in development philosophies. The methodology helps to identify dependencies to support project planning, reduces effort by reuse and collaboration and increases quality by application of best practices. The central aspect of the methodology is a table which is used to define the synchronisation points between the two development domains, where collaboration between the separate life cycles can occur. Developers engaged in either life cycle can use a synchronisation table created for the project to send and receive shared artefacts between life cycles. This work is informed by the development and management of the ALIGNED project, a large, multi-partner, interdisciplinary project that involves both software and data engineering.