Architecture Improvement Brainstorm
Architectural discussion with Mifos and ThoughtWorks folks on April 27th, 2010.
Brainstorm
reduce build time
focus on speeding up integration tests
aim for 90% unit tests, 9% integration tests, 1% acceptance/functional tests
remove unnecessary tests
build pipelining
transaction support
remove commits and explicit session control
remove StaticHibernateUtil
use AOP in application context configuration for transaction management instead of annotations
remove all L10n code from domain
use out-of-the-box i18n mechanism
separate presentation from domain
service identification
convention of patterns for services
calling convention(s)
when/how DTOs are constructed and used
migrate from Struts to SpringMVC
new frontend: Grails?
modularization along functional lines (also see EvolvingTheMifosCodeBase)
24x7 availability
reduce exclusivity of batch jobs and OLTP activities
move to Spring security
surveys/PPI as a separate module
customizable/business-driven workflow
Goals
Vision
do whatever gives us the largest ROI
align goals with customer commitments
Prioritized Goals
frequent releases
easy to develop/maintain
feature-driven releases