Some insights into our development process

As many of you have noticed, the process for getting Imprudence 1.4 beta 1 out has been a long one, so I wanted to take some time tonight to explain our process as developers behind it–what we intended to do, how we got there, and where we go from here.

Imprudence is something of a unique project for me in that we’re all volunteers scratching our itches, yet somehow despite this we’re able to come together and make things work. I know this sounds horribly cheesy and cliche, but I really have never worked with a more heartfelt and kind-hearted group of people. What makes an ImpDev unique, I think, is that we’d have just as much fun sitting around chatting for hours as we do hacking on the viewer source. We care a lot about what we do, and ironically that’s partly why the 1.4 process has been so frustrating for us.

After the release of 1.3, something became clear: our Quality Assurance process was far too long. We would fix an issue, then it would sit on the repo for weeks without being properly tested on all the environments we want to support (OpenSim, Second Life, InWorldz, and now Aurora grids). We changed that up with releasing the Weeklies (later renamed “Experimentals”). The idea was to get fixes as fast as possible into user’s hands in order to get important feedback. A LOT of the major bugs in 1.3 were fixed in this manner, and thanks to residents who were willing to track down bugs with us we really made a lot of progress. The 10.23 Experimental release is a highlight for people, I know, and that’s largely thanks to residents all over the metaverse being involved in the development process (one of my favorite stories is how many of us it took to track down what we called the Infamous Wright Plaza Crash of Doom. Fixing this eventually led to a patch that made all other 1.x viewers more stable).

But we’ve had problems. The QA process started to take on a life of its own, and as we got sucked into releasing quick updates the gap between our Stable and Experimental branches widened. When our doors were flooded with tens of thousands of new users after another viewer was banned on Second Life, we were thrust into a quandry: do we push to include all the new feature requests, or continue to focus on stability and workflow improvement? In the end, the Experimental line got lengthened again by a rush of new features (and fixes for those features), further widening the gap between the two branches. Looking back, that was probably a mistake. We should’ve kept to our core mission of releasing solid incremental viewers without the feature bloat that other viewers have. But, as I said, we’re a group who cares passionately about our users, and it was important to us to address what we felt were significant needs.

This brings me to the subject of beta 1. The release notes for 1.4 are longer than any release we’ve done to date (and if you follow our commits on github, you know how much work we put into the viewer on a regular basis). It’s been something of a culture shock for us, trying to resolve issues while still moving forward. The Imprudence development process is much like that of a UI designer. We make a change we think is useful, then release it to the community, gather feedback, and refine. Over the course of several iterations, you get a release like 1.3.2, which many people still prefer due its stability. With 1.4, though, this process is much harder for us. We’re giving the community a lot to look through, and we’ve received a lot of feedback. In a way, it’s almost intimidating, because 1.4–as the last of the Imprudence line–is very dear to us, and as I mentioned, we’re all personally dedicated to giving you guys the best viewer we can.

So, where we go from here might be a bit of a struggle for some. There’s obviously work left to do, but I want to point out that releasing the beta (i.e. moving Experimental features into the stable line) has pushed us to focus back on core issues. Based on early feedback, the inworld audio issues on Windows seem to be fixed. Inventory loading’s been vastly improved. More crash fixes have been pushed. The texture cache will hopefully be improved next if time allows before beta 2. Likewise, we’ve also had to balance our need to work on big issues with our desire to make sure everyone who submits a bug report at least gets their voices heard, which is why it’s so important for us that you use the issue tracker and promote it among yourselves. Commenting there brings issues to our attention much faster than commenting in other places. Particularly with this release, there’s so much going on it’s hard for us to give you guys the one-on-one time we’d normally like to. For example, I only recently learned about the “disappearing prim” issue from a forum post and a comment from a friend (currently, it looks setting RunMultipleThreads to FALSE in the debug settings fixes the issue;  let us know if this works it for you or not).

Most of all, I want to make a personal appeal to the community to be patient with us as we work on all these issues. We have Imprudence 1.4 to finish up, then a huge merge to do with Kokua followed by the many features/improvements we want to implement there. This is no easy task, believe me. As a user of our software myself, I know how frustrating it can feel to use an unfinished product, but it’s our hope that at the end of a concerted effort 1.4 will be the best version of Imprudence yet–one you all can look back upon as a journey that was worth the destination, and Kokua will grow into the same.

In short, we’re here, focused on getting this done. You guys are still the primary reason we do this, and while we haven’t been interacting with the community much lately, you guys are always on our minds. I hope you’ll keep with us as we continue to fine tune our process. In the meantime, I also encourage you to check out our new support system. I think it’s really nifty, and Codebastard Redrave has done an awesome job at making it easier to get answers from your fellow users. Check it out at

Cheers :)


10 Responses to “Some insights into our development process”

  1. Chips Greggan

    A great insight, but I still miss the weekly experiementals, that made impy uber cool, it’s a shame they’ve vanished.

  2. LaeMing

    I must say that the user-focusedness of the Imprudence devs. is very much apparent. If only some of the other software central to my computer use was so good on the usability+functionality focus (which isn’t to say other dev. groups or their output are /bad/, but imprudence’s team really does set a high bar, and it seems to show through).

    Yes, the waiting is frustrating, but that frustration is well tempered by the high confidence it will be worth it.

  3. Walter Balazic

    Your wrong about the inworld Windows audio features (at least in Opensim), they still fail and there is a verified issue tracker open on it. Other than that issue that has been going on now for a few releases this new release works perfectly from what we have seen.

  4. McCabe Maxsted

    @Walter I meant fixed upstream. You should see the changes in 1.4 beta 2. There’s still whatever’s going on with to figure out, too, though.

  5. McCabe Maxsted

    @Chips. I know what you mean, I miss ’em too. But the shift in focus is a good one :)

  6. Fleep Tuque

    Just wanted to say a heartfelt thanks and to cheer you guys on. I know doing volunteer work sometimes feels like a thankless, unpaid task and when people get the grumpies it can get you down – but know your work is tremendously appreciated and whatever kinks in the workflow, you’re doing a great thing for the metaverse and all of us working and playing there. :)

  7. Ailsa Muliaina

    I don’t mind that you guys take the time developing Impy and Kokua, the quality you produce is always worth waiting for :)

    Instead of weekly downloads, maybe more regular small blog posts would be feasible? I like reading what’s coming up almost as much as playing with it, and it’d be good to have maybe a post each week and hear what you guys are cooking up.

  8. Ener Hax

    well all i have to say is Thank you!

    it’s nice to gain some insight, but i am indebted to you for a wonderful viewer that lets me enjoy my virtual world more than any other viewer out there

    you have given a wonderful gift to the community and i appreciate it very much – thanks guys =)

  9. Burnman Bedlam

    Thank you for the update and the insight, it’s always appreciated! I agree with Ailsa regarding more regular blog updates. Staying engaged with Impy fans will keep Impy fans engaged with the software. A few of my friends who use Imprudence had moved on to other viewers because they thought Impy wasn’t being actively developed anymore! O.o

  10. Axaes Xandal

    I really jealous you guys, where oh where do you draw the energy to do all of this?

    I always struggle really biting through projects, once I gather that my idea is working I begin to lose interest. Or perhaps I just haven’t found something yet which really thrills me. In any case, I really hope the force may be with this project for a long time, Imprudence has become my favorite Viewer on Linux, and Linux is the only OS I use.