Last week, I overhauled Enrollio’s user-interface. I’m happy with the improvements, but I haven’t merged the changes into the Main Branch yet. The new UI stuff is in a Separate branch, and they’re not doing any good there.
Wag of the finger
How’s this for test output:
1 2 3 4 | |
Whoops! Well, those are functional tests, and this was a UI overhaul, so that’s to be expected. Let’s try integration tests:
1 2 3 4 | |
Meh. I can’t deploy at this point. I didn’t write those tests just to ignore them.
What did I do wrong?
Let’s identify some of the mistakes I made. Since I’m under the bus already, let’s not stop after the first axle.
- Too many things going on. UI Upgrade + New Screens + Navigation Overhaul = TOO BIG!-
- I should have used a prototype for the UI changes. A bunch of HTML/CSS files would have been perfect. I could’ve concentrated on look/feel and Jquery without messing with Grails code. It would have been easier to demo a prototype to the users, also. I could have cleaned everything up when integrating the prototype into Enrollio. Lesson learned.
- Not much refactoring. I would fix up a screen’s UI, then add functionality and never bother to refactor or run tests. Gack!
- Never thought about merge path. These changes have to go back into the main branch /sometime/. I should have gotten “Done Done” with smallish tasks, and merged quickly / often.
What’s Next?
I don’t want to compound/repeat my mistakes and blaze through this. The new functionality still doesn’t have any tests. Bad Monkey!! I want to identify small tasks, complete them, and merge them back to the master branch. The benefit is that Enrollio will see steady improvement, and not a giant leap with a bunch of bugs and ugly / half broken code and tests.
Rules for integrating new stuff into Enrollio:
- Tests should stay at 100%
- Keep merges simple and small
- Merge changes into master branch ASAP
Plan
- Go back to the main branch of Enrollio. With Git this is very simple, and I can easily pull changes from the branch where this train-wreck started.
- Upgrade the UI first. Limit to just the CSS and /maybe/ navigation improvements. Don’t remove any functionality.
- Identify the new features that I put into Enrollio and do Test-Driven development.
I’ll post an update next week. May the Force be with me.

