It has taken a long time since I’ve started on trac work to get to the point where I know what my goals are for trac at TOPP and am able to articulate them. I’ve decided to blog this at TOPP-engineering….ifI put it in the wrong forum and this offends you, feel free to yell at me in private.
Firstly, to recap the question that seems to be asked every couple of weeks, why trac? I’m not going to go into too much detail, but trac is nice because it is
* mature
* python
* malleable
* fast to develop in
* open source
* a strong community
Trac out of the box is not an amazing issue tracker. But with a little love, trac can be not only an amazing issue tracker but a huge part of the technical solution to software development communication (and beyond!).
Moving beyond advertisement, as I really have no incentive to push for trac, but to figure out what sort of place trac development could have in our process, I have a few ideas that could synergistically improve both TOPP (I’m thinking only of TOPP labs concretely, though I think the benefits are more widely reaching) and trac as software and
community:
* plugin maintainence/improvement: TOPP (by which I mean, mostly me)
has developed several Trac plugins that are widely used by both
ourselves and the Trac community. While the scope of a trac plugin
is more confined than for a larger piece of software, most of these
plugins need improvements to make them better both for TOPP and for
the community at large. Real time needs to be scheduled for this.
This doesn’t have to be a primary goal, but I think not doing this
or doing it in an half-hearted way is equivalent to abandoning
these plugins and abandoning our stake in the trac community.
* isolate TOPP trac needs and answer them: I’m including
projects.opengeo.org in this list assuming that infrastructure is
available for TOPP labs personel to take opengeo work. So far most
of what I have done for our trac instances have been done only well
after the problem has become a blocking issue for several key
people. This hasn’t been done out of neglect or malice, but
because there has been no meaningful dialog on what we want our
infrastructure (pointed here to trac) to be like and I refuse to
guess. This problem needs to be surmounted. Firstly, what we want
out of trac needs to be clearly defined in such a way
that can be easily prioritized, scheduled, and clarified. Once
this is done, we can start making our trac projects not just
better, but awesome. I think this can make a huge difference.
* improve trac: trac is pretty awesome, but it does have some serious
deficiencies. Likewise, there are features that could be added to
make it much smoother, in accordance to the idea of what trac is.
This could be anything from new plugins, to things like TracLegos
and supporting software, to taking out branch work in the effort to
improve trac core. As always, what is done here should be
moderated by what our direct needs our and what place we want to
take in the trac community.
These three things are conceptually the same from the mindset that these yield improvements both along the axis of improving TOPP’s process (on the technical side and policy side) and that of improving Trac and our ties to that community. These three things are separate in the sense that in order for any of them to happen, time has to be allocated to each of these goals. There ain’t no free lunch.
All of this also ties in to DevCenter work. Questions about the DevCenter have usually been framed in such a light as, “Why does TOPP need a DevCenter?” as if the DevCenter is a new piece of software. In a sense this is true. But ultimately, the DevCenter is a blanket project that ties together (among other things) our Trac needs (as outlined above) in a coherent way that enables us to use and mold process more efficiently. I won’t go into technical details here, but to me the DevCenter has always been more about figuring out what process we want and to implement that in a coherent and configurable
way. Why write new software when you don’t have to?
It seems like from this text that I am heavily invested in Trac. While I believe that Trac is the right choice for TOPP, the scope of my investment is defined by what priorities are handed to me, so in that sense I am invested very little in Trac. We have many Trac instances and projects. We have much expertise in Trac. Trac is open source software with a strong community, which I’m not sure how important that is to TOPP’s objectives, but its a huge plus for me both technically and idealistically. The prioritization that I would wish is an organic growth out of the investments that have already been made (wisely, IMHO) now that we are getting returns on them. In my observations, many of our process and infrastructure decisions have been made reactively. We could do nothing, and devote time to maintaining the infrastructure we have now (this time loss is unavoidable, though because its unscheduled it somehow seems more forgivable). Or we could devote resources (e.g. my time) to actively assessing and tackling these needs. That isn’t my decision to make. But I do hope that can move beyond the point of discussing process and infrastructure to actually producing it.

