Andy McKay

Jul 14, 2010

Making better web development tools


Yesterday Arecibo grew an issue tracker. At this point it's not especially useful - you can add an issue, assign it and resolve it. There's a whole lot more to do in the issue tracker such as notifications, workflow, code tracking and so on. Hopefully these will come in quickly over the next few weeks.

You may be asking yourself, not another bug database? Don't we have about 800 of these already? And yes we do. But very few of them are tailored for what we (at Clearwind) need. We build websites. We do other things which are web based, for example mobile apps, but most of the time it's websites.

When you look at bug database they are generic, they focus on being usable for everyone on any project. I want features that specifically make web development better and more efficient. There's lots of ideas in my head and more to come but this is the roadmap of where I'm going with tickets over the next few days.

Tying Issues to Errors

One simple thing is that you can tie an error to an issue all in the same application. Looking at an issue I can see the explicit error if there was one reported to Arecibo.

As an aside last time I checked exceptional and hoptoad (competing services) allowed you to push exceptions out to another service. That's good, but the amount of benefit we can get in one place will outweigh that.

Project URL Staging

In web development there's generally two kinds of project those that don't have any staging and those that do. Small quick projects or projects maintained by one developer sometimes only have a production server and that's it. Developers make their changes and it's tested and developed live. Larger projects have a staging setup that can vary from 1 or 2 development servers to dozens of other servers, all providing testing and feedback prior to going live.

Usually this is done by domain switching: dev.yoursite.com, test.yoursite.com, live.yoursite.com and so on. This can be added in under the projects tab on Arecibo and once you've got your domains set up we now know the location and severity of errors and issues.

Issues and URL Staging

So when you create an issue, you give it a URL, we can now determine it stage and its severity automatically. Also we can recognize that because an issue is fixed on test doesn't mean its on live. Your deployment workflow from development to live might be really fast (under a day, or instant) or really slow. So each issue can be marked fixed per stage:

The goal is to tie in staging to the workflow and make sure we've got an API so that when a peice of code is deployed, you can tell Arecibo to mark it deployed.

Reopening Issues

Errors that come in to Arecibo are grouped by similarity and it's those groups that are tied to tickets. So when an issue is marked as completed, it should be "fixed" for all its stages from development to production. If an error occurs again on an issue that is "fixed" we know something went wrong. This allows us to re-open the ticket and let the development team know that the issue has not been resolved.

Just to repeat, these are just the tip of the iceberg for ideas to make it a better bug tracker for web developers and not all of these features are in Arecibo yet. I'm hoping to add these features in over the next little while - now that the skeleton for issues are in. Then we can start to get on with the really fun stuff.