Is the software easily modified and extended? Is it well tested and understood? Are parts of it reusable?