• Share this article:

Five Reasons to Love Mylar: Part Two

Friday, December 8, 2006 - 22:35 by Wayne Beaton

Mylar focuses you on your task. I’m starting to think of this in terms of top down development. I’ve always done software development using a top-down or "needs driven" approach. That is, I’ve always started by building the tests, then the layer being tested, followed by subsequent underlying layers. I tend to do this in a fine-grained manner so that I’m never very far away from actually running the tests (a là eXtreme Programming).

Unfortunately, my role as evangelist doesn’t afford me the same kind of time I used to have to actually write software, so I’ve been getting a lot lazier. Maybe that’s not totally correct: it’s probably more accurate to say that I spend a lot more time exploring than I do developing. I still do start with tests, but not as often. But I digress…

I’ve found that Mylar is pushing me back to the top-down, test-first approach. Specifically, it encourages me to define tasks that define some portion of the work I do. At first, the tasks were quite coarse-grained ("Explore EMF 2.3"), but they are now getting more and more fine-grained ("Modify the generated editor into a view"). This realignment is encouraging me to write my unit tests first (as it should be).

Of course Mylar lets me work on several tasks concurrently. And it remembers the context for each task, so that when I switch between my tasks, it adjusts my views to show me the information pertinent to that task. I also like that it lets me store my task context in Bugzilla, but I haven’t had much opportunity to play with that yet.

So why is top-down programming good? Well, people who are smarter than I am have written volumes on this topic. For me it comes down to something very simple: when I write code from the top down, I tend to write exactly what I need. I find that when I write code bottom-up or using some hodge-podge combination of techniques, I end up with a lot of code that I really don’t need; or worse, that I’ve written a bunch of stuff that–while it conforms to the requirements–doesn’t quite do what I really need it to do. This kind of problem goes away when you build top-down. That’s been my experience anyway.