We want to explore and analyse design decisions that influence maintainability of software. Software maintainability is important because the effort expended on changes and fixes in software is a major cost driver. We take an empirical, qualitative approach, by investigating cases where a change has cost more or less than comparable changes, and analysing the causes for those differences. We will use this analysis of causes as input to following research in which the individual contributions of a selection of those causes will be quantitatively analysed. Categories and Subject Descriptors D.2.11 [Software]: Software Architectures; D.2.9 [Software Engineering]: Management--time estimation, productivity; D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement--restructuring, reverse engineering, and re-engineering; D.2.8 [Software Engineering]: Metrics--product metrics General Terms Design, Measurement Keywords Software maintainability, software design, case study