Devin Jones has been developing software for Berkeley Law since 2005, initially working as a sole developer, and now leading a team of students and staff developers. In 2009 he founded the campus AppNet community of practice to bring application developers together. We met at People’s Cafe in downtown Berkeley.
What gets you started on a software project?
I’m a software developer; my go-to behavior is to try to implement some kind of system if I see a gap to fill. If it won’t take a lot of work, I’m really inclined to get a couple of people together to bang it out quickly. Assume I can fill the gap, and then see if it works. If it turns out not to be sticky, I haven’t invested that much in it.
I’m a software developer; my go-to behavior is to try to implement some kind of system if I see a gap to fill.
Sometimes at Berkeley there’s a lot of “not invented here” syndrome; people will look at someone else’s solution and decide “nah, that’s not exactly what I need, I’ll build it myself instead.”
That’s sometimes true, but it can get inverted when it gets to the management level. When I’m making a build-or-buy decision, if I know I can take a couple of weeks to build an application that will do exactly what my users need, I’d rather do that instead of adopting something which will still take a similar amount of time in configuration and setup, and won’t exactly meet the need. But higher management would rather have us avoid new development if possible.
What led you to found the AppNet community of practice?
The idea had been kicked around for several years; central IT was also thinking about it, and I talked to Bill Allison (IST Architecture and Platform Integration), who hadn’t had time to start it up, and he encouraged me to take it on.
The original idea was just to create a forum for software developers to talk to each other; that was achievable. The wasn’t a community of practice for software development. There aren’t a huge number of developers on campus; about 300 in those payroll titles. Maybe half of those in central IT.
And some of that other half may be research programmers, doing really specialized work for a PI.
Right; AppNet’s bailiwick is folks doing administrative application development. Berkeley has a student information system, a financial system, an HR system, but they don’t do everything departments need, there are still gaps. App development to fill those gaps happens all over campus, and there wasn’t a forum to talk about how people are doing it. We started with talking about how to integrate CalNet and other best practices, and people responded to it.
The discussions within AppNet seem to be generally positive and productive; how do you create that dynamic when leading a group?
Sometimes we’ll choose a theme; we’ll do several meetings on security, or project management, usability, maintainability, accessibility, those kinds of topics. As a departmental developer, you might be focused on the tasks you need to get done, and forget that your software is required to be accessible. That might not be on your radar, and we often don’t get called out on it. Participating in AppNet helps you take a step back and see a bigger picture.
How does it change the group dynamic to ask everyone what they’re working on?
It’s hygienic for programmers to do that. They often don’t have a context for connecting with other developers on campus; their daily work is all on their own projects. It does put some load on the attendees; they can’t passively participate, and we may lose some people because of that. But it helps to define what kind of group it is, and what we want the meetings to be like.
How big do your meetings tend to be?
I’d say around 15-20 for most meetings; the most we’ve had is between 30-40. It’s still small enough to have a conversation. There are around 150 people on the mailing list, but not everyone on the list is a software developer. I figure we reach about a third of the developers on campus.
AppNet has given me a forum for interacting with a lot of people across campus, and it would just be a shame if I didn’t know them and couldn’t bounce ideas off them. Having a network of colleagues immediately at hand is fantastic.
What are some of the things that you’ve gotten out of the experience of founding AppNet?
It’s helped me organize my thoughts around software development as a practice, and it’s definitely given me a context to think about development on an organizational scale, not just within my unit. I now have some reasonably well-informed ideas about how collaboration might happen at a place like Berkeley. I also have more insight into things I think are important for me or the team I run. AppNet has given me a forum for interacting with a lot of people across campus, and it would just be a shame if I didn’t know them and couldn’t bounce ideas off them. Having a network of colleagues immediately at hand is fantastic.
You mentioned BSA earlier; are you also involved in that, and how did it come about?
I’m the web and communications committee co-chair for BSA. That means that I’m kind of the go-to person for them on technology things. I help them organize efforts around maintaining their web site, and help BSA manage processes in collaborative tools like Google Forms for surveys and voting. We’ve experimented with making meetings available via BlueJeans. All of that has helped make me aware of the technologies available on campus.
I was invited to apply to be on the BSA general council by someone I’d met as part of the Cal Agilists, an Agile project-management community on campus. Cal Agilists wasn’t specifically organized by AppNet, but it started to come together after a series of sessions we did focusing on Agile as a software development methodology. I did the original agile.berkeley.edu web site, so people knew me from that.
I have an inclination to be involved, so I look for opportunities to do interesting things. I wish there were more opportunities to collaborate on random things outside of normal operational work.
What leads you to keep doing campus-level work?
I have an inclination to be involved, so I look for opportunities to do interesting things. A few years ago I volunteered to help run the UC Computing Services Conference when it was on campus. I helped get tie-dye t-shirts for presenters. That was fun without being a whole lot of work; it’s just part of my weird personality to want to be a part of that. I wish there were more opportunities like that available, to collaborate on random things outside of normal operational work.
How do you do that and keep doing your day job?
Volunteering is not something I can do all the time, because of workflow and variances in staffing within my own unit at the Law School. But my supervisory chain has been supportive; they’re very accustomed to participating on campus committees, and my boss Gabriel (Gonzalez) has been loaned out to big campus projects, so it’s part of the culture here. I think it would be useful to have 5% of your time dedicated to helping out common good projects, or work in other units.
Going into ITLP, you wouldn’t necessarily grok that it’s a rare thing to get an opportunity to speak to a bunch of people from a bunch of different universities. You get to see how others do things differently, and what’s working, what’s not, and where the shared pain points are.
You’ve also done the IT Leadership Program (ITLP); what was your experience with that?
ITLP was a lot of fun, and another eye-opening experience. Most of the people in the cohort had bigger responsibilities than I do. ITLP is a different kind of leadership program; it’s bringing together IT people from universities across the country—my cohort had NYU, Clemson, University of Montana, University of Texas, Minnesota State Colleges and Universities, and Boston University. That really gives you a wide perspective. There’s a Tolstoy quote, “Happy families are all alike; every unhappy family is unhappy in its own way.” Universities do have commonalities, and they also have their own context. Going into ITLP, you wouldn’t necessarily grok that it’s a rare thing to get an opportunity to speak to a bunch of people from a bunch of different universities. You get to see how others do things differently, and what’s working, what’s not, and where the shared pain points are.
One thing I learned is that many universities have intellectual property programs, where local software is packaged and released to the market. Here at Berkeley there’s been a lot of resistance to that concept. It wouldn’t be simple; there’d have to be policies worked out, lawyers would get involved, I get that. But it’s good to know that other institutions have figured it out, that it’s possible.
If you were going to give advice to someone about developing a community of practice, what would you tell them to start with?
Think about the habits that you want to develop that will sustain the group. Do you have the time to do it yourself, do you need collaborators? I haven’t been able to put much into AppNet in the past year because of work commitments, but other people have taken things up, so there’s still activity going on. Don’t get into the mental trap of thinking that the group will run itself; that’s unrealistic, someone will need to keep providing energy to keep things lively.