Two-sprint refactoring proposal for iDaVIE, an open-source Unity VR tool for 3D astronomy data. First-year EPIC team assessment at UL, 28 students, judged against ISO/IEC 25010:2023.
iDaVIE is IDIA's open-source Unity VR tool for looking at 3D volumetric astronomy data (spectral line data cubes, HI/CO). First-year EPIC assessment at UL asked us to write a refactoring proposal pitched competitively to the maintainers, judged against ISO/IEC 25010:2023 for maintainability.
28-student cohort split into seven sub-teams under Scrum-of-Scrums, plus Architecture and Quality guilds. My sub-team, ST3 (Rendering Engine), owned VolumeDataSetRenderer. My personal role rotated across the sprints: PO Liaison first (translating cohort backlog into ST3 tasks), Scrum Master second (running standups, unblocking cross-team dependencies), Quality Champion in the final week (lesson synthesis, interview prep).
iDaVIE itself is built on Unity with the SteamVR plug-in, rendering FITS cubes through a ray-marching shader that samples max and average along the ray. A native .dll plugin holds the radio-astronomy analysis code; CFITSIO and Starlink AST handle FITS and WCS.
The class we owned, Assets/Scripts/VolumeData/VolumeDataSetRenderer.cs, was a 1089-line monolith measuring WMC 142, CBO 44, and LCOM 96% through the Understand tool. Our proposal split it into three interfaces: IVolumeTextureManager, IRenderPipelineAdapter, and IMaskMode, and projected WMC ≤ 20, CBO ≤ 14, LCOM ≤ 50% per domain class.
Deliverables included PlantUML component diagrams, worked refactoring skeletons with test doubles, ADRs justifying interface-first design against SOLID and GRASP, DDD domain docs for CartesianCoord, SubcubeBounds and ZYX axis ordering, and a negotiated IMomentMapRenderer contract with sub-team ST5. No production code changed. The whole deliverable was the proposal itself.
Refactoring proposal delivered as three interfaces plus a negotiated cross-team contract. No user-owned public repo since no production code changed; proposal was pitched competitively to the iDaVIE maintainers.