...
- get hot FTL pages working again (fast turnaround when working on ftp page revisionsfrontend)
- eclipse: need to add resources dir containing FTL to build path and set preferFileSystemAccess to true. run mvn war:war in application
- convert client savings account creation area to Spring/FTL
- service facades in place so all data/behaviour should be available, if not we will need to tweak and happy to help/collaborate on this with stanley/whoever.
- (Reached from Clients&Accounts tab, Create Savings account link on left side)
- Create Pages:
- Create Savings Account - Select a customer;
- Create Savings account - Enter Savings account information (2 pages) ;
- Create Savings account - Preview Savings account information
- Edit Savings account information button from preview page
- testing
- unit tests (in memory) for Spring controllers (for significant functionality)
- UI level acceptance tests - functional UI test in place - CreateSavingsAccountTest
- schedule manual walk through of CSS with PM/QA/Dev.
- manual UI test by QA on multiple browsers
- use and document FTL templates
- use and document code patterns
- identify addition templates/patterns that are needed to accelerate work
- identify whatever ways we can to accelerate Spring/FTL conversion
- re-estimate total effort for conversion accross mifos based on single conversion from spike
- faster testing?
- Create API for createSavingsAccount - different spike assigned to Kojo:
- functional UI test in place - CreateSavingsAccountTest - any rework involved with that test due to spike?
- conversion of complete "vertical slices": front-end, services, tests, back-end
- many devs working together, sharing knowledge, moving quickly
...
- document eclipse FTL configuration for hot FTL pages
- Proposal - One timeboxed story on FTL spike - MIFOS-4409 4409 (to be completed in MIFOS-4573 )
- Measure speed of migration of another area of Mifos. Compare established baseline (12 or so data points of historical LOC counts from git) with these new measurements.
Results
- speeding up ui conversion
- hot Freemarker and Java reloading enabled via Michael Vorburger's Workspace 2.0 (see also MIFOS-4099 )
- unit tests of [spring] webflow
- new, reusable Freemarker macros/widgets, such as the "progress tracker"
- new, reusable datatables-based display of search results in create savings flow
- better css classes (TODO: provide example)
- improved ci configuration: faster feedback when builds fail
Measuring our speed improvements
...
For testing related goals, we will measure on creating Center workflow:
- time spent modifying CreateSavingsAccountTestCreateCenterTest. For previous FTL effortefforts (ie: one "flow" (aka "wizard" or multi-step form), ensuring test verified all facets of page was not addressed. New Measurement: __________
- Number of issues (regressions) caught during CSS walk through. For previous FTL effort, number was zero since now walk through occurred. New Measurement: __________
- Number of layout or functional bugs logged during testing phase . (missed during walk through) . For previous FTL efforts, this was typically 5-10 issues. New Measurement: ___________
- Time spent by QA manually testing the feature, including logging issues and retesting bugs fixes. For previous FTL effort, similar sized FTL conversion would be approximately 20 hours. New Measurement: _____________
More potential dev tasks
- technical improvements
- enable instant reloading of Freemarker templates
- (Stanley was saying he was able to hook it up to WTP and hot
deployments?) - Michael Vorburger is also working on dev setup improvements, which
includes the promise of instant FTL reloads - have early UI walkthrough on dev box with PM and QA
- (Stanley was saying he was able to hook it up to WTP and hot
- use JRebel
- spend time summarizing and adding transparency to off-list work by
Stanley Kwok & Michael Vorburger - could we use Spring Roo on top of Services/ServiceFacades?
- better templates
- reusable css pieces (use Compass?)
- reusable ftl widgets
- do pagination on client side with jQuery plugins such as http://www.datatables.net. Right now pagination is handled by TableTag class.
- Looks nice, what paginates the query to the database in this case? see SavingsDaoHibernate.searchNotes and the NotesSearchResultsDto class,
- standardize the location of web resources (css, js ...)
- use SASS or Compass to manage CSS? for example, define the hex value of mifos orange in one place
- construct breadcrumb automatically? some ideas:
- enable instant reloading of Freemarker templates
- measuring/managing the effort
- as a control to measure against: estimate of how fast it's been going
in the past e.g. Product Mix page took x days and had 23 bugs logged on
new implementation - measures: what is the time required to build new FTL; how many bugs
found by QA during manual testing; number of automated tests and time
to write new automated tests - may need to measure twice - once on first try where we have trial
and error, then second time with better defined - show how are new ideas are speeding up the process
- as a control to measure against: estimate of how fast it's been going
- team for sprint
- multiple devs
- fast feedback: tight integration w/testers
- some testing happening every day
- QA effort includes
- new acceptance test for page (or fix/improve old test)
- manual test pass to see if any bugs can be found in new FTL
- seperate but associated spike on building API test for create Savings
account
- logistical/infrastructure improvements
- make sure all devs have fast hardware / fast internet
...
- user.xml (not yet brought into application)
- createQuestion.xml
- http://mifosforge.jira.com/wiki/display/MIFOS/How+To+Add+a+Flow+To+Mifos
Frontend development aids
- Workspace 2.0
- Install Eclipse Freemarker editor: http://freemarker.sourceforge.net/editors.htm (get JBoss Tools).
- Install Firebug (troubleshoot CSS issues quickly and easily): http://getfirebug.com
See also
- UI Technology Guides (and its children, especially How To Add a Flow To Mifos)
- Common Ftl Macros
- Spring Spike
- FreeMarker Developer Testing Checklist
- UI Development
- How to make new UI development take less developer time (brainstorm? or something we apparently did a while back)