Dealing with changes to shared software components

Dijk, Roland van (2013) Dealing with changes to shared software components.

Abstract:Problem Software companies more and more reuse (parts of) software for a faster time-to-market. Reusable components thus are valuable assets for any software company. However, designing for reuse requires upfront investment and may not directly show financial benefits. Moreover, when a company employs an agile development culture, deadlines are tight and come in rapid succession. To continuously assure a high level of quality, it is desired to have a stable product each time a new version of the product is released. Stable products require stable components, which can be a paradox when employing an agile development approach where software is built in short and frequent iterations. Purpose The goal of this study is to investigate how Topicus FinCare, the focal subject of this study, can mitigate risks associated with changes to shared components. Results From a literature study we abstracted a total of 28 risks of which we have found 7 of relevancy for FinCare, categorized in 3 different solution domains. In the domain of dealing with technical implications (1) maintaining stability of functionality for core platform components and (2) the chance of some change unintentionally rippling to another codebase/application are the main issues. In the domain of dealing with organizational culture (3) usage of an immature platform in production, (4) a lack of reusability of components and (5) technical debt are the main issues. Finally, in the domain of dealing with communication and collaboration (6) having a bottleneck in the development process and (7) a lack of communication about updates are the main issues. Recommendations Based on interviews at Topicus and additional literature we pro- vide a large number of best practices and mitigation approaches in our study, of which the following are of direct value for FinCare and can be implemented most easily: • Involve more people in the development of the shared codebase • Have a simple, but clear communication policy when modifying components • Occasionally let developers and analysts switch projects Besides the above ‘low hanging fruits’, we found three important topics which will become important for FinCare in the near future and which we found already relevant for the interviewed units at Topicus. We recommend both Topicus and FinCare to: • Develop a simple but consistent component development model where billing work effort on shared components internally (across teams) is fair and externally (to customers) is transparent • Invest in visualization support for component usage by projects and applications • Within business units employ a social self-regulating codebase, without strict code ownership, where everyone can contribute and is responsible for their own modifi- cations. Between business units, follow a producer-consumer paradigm.
Item Type:Essay (Master)
Topicus Fincare, Deventer
Faculty:BMS: Behavioural, Management and Social Sciences
Subject:85 business administration, organizational science
Programme:Business Information Technology MSc (60025)
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page