At the close of my first week with the deviantART dev team, I thought I would take a moment to reflect on my observations. Now that I've got my VM environment
set up (which is awesome
, btw… anyone w/ a complex PHP development environment and more than a handful of developers should invest in this route) and have already fixed a few bugs on the site, I'm taking a moment to step back and reflect on my first week.Getting set up
The set up process was actually a breeze: download the vm, follow the instructions in the "Getting Started" page on the internal wiki, and within less than an hour I had a copy of nearly the entire deviantart.com website running on my laptop. This is truly amazing, especially when I consider at my last job it took a new developer 1-2 days, sometimes more, to download and set up local copies of Apache, PHP, Java, Ruby, MySql, and all the necessary libraries, plus get everything configured and working, even with clear instructions and scripts to help automate the process.
Other than that, with my deviant account upgraded to administrator privileges, access to email, the code repository and developer wiki, in practically no time I was ready to take a stab at a ticket or two, faster than I think I've ever been set up in a new company before. Low overhead!Organization
The deviantART dev team is is a very modern, well run, distributed team with developers collaborating all over the world, as far away as Europe and South America in a variety of time zones (all speaking English, thankfully!). Working within a flat organization hierarchy, team members are encouraged to raise ideas and ask questions with little reason to fear stepping on anybody's toes or going over somebody's head. Most communication happens over chat (instead of email, which is growing outdated). And while I find chat to be a distraction at times, I recognize it is incredibly efficient at disseminating knowledge rapidly. The team does a good job of archiving its knowledge on the internal wiki pages.
As a new developer facing an advanced codebase over ten years in the making, I obviously had (and still have!) a number of questions. Hitting up any number of the tech team's chat rooms for help usually results in me getting an answer within just a few minutes. I am very impressed how happy everyone on the team is to help. This is a culture of collaboration which makes me feel very much a part of a team, even as I write this many thousands of miles away from the main corporate office.
To maintain unity, everyone is brought together once per week in a massive conference call to review the progress of all active projects. I was weary of such a large call at first, wondering how so many people could collaborate effectively on a single call, however the participants are very respectful of an implied etiquette not to interrupt or "talk over" when someone has the "floor" and is speaking. During the week, self managing project teams meet as needed. Cool technology
Delving into the internals of what makes deviantART tick reveals a treasure trove of really cool, "state-of-the-art" technology. These are the guys behind the first skinnable mp3 players and online music communities from way back, and they are very talented, forward thinking computer scientists. deviantART started building social networking technology before there was really much social networking technology around, and I find that there's innovation underneath the covers that predates modern convention in almost every corner.
… that's hot!
What impresses me the most so far is how well integrated the tech team is not just with each other, but with the users of the site. This part is really cool, and I think it's the most valuable part of the deviantART business, which clearly puts community building and user satisfaction at the top of the priority chain.
I fixed a rather simple bug with the ShoutBox, a small public chat room that hangs off the side of the main chat area, as well as optionally on group pages. When I entered the ShoutBox, just to confirm the ticket I was assigned, I was immediately identified as a developer and greeted from the users there.
See, deviantART's website places a unique character identifier in front of each user's username indicating their role on the site. For example, a tilde ('~') will represent a common user. An asterisk ('*') will represent a premium member. There's others I have yet to understand like equals sign ('=') and more. My user, $saladoche, has a dollar sign, which means I have admin privileges on the site. Additionally, when you go to my deviant profile page, you'll instantly see I'm a member of the #dt
tech team (note the pound sign to identify a group. For more, see this FAQ entry about symbols
So basically, when I entered the public ShoutBox, everybody could see I was one of the site's admins, and greeted me kindly like anyone else, but since they could see I was a developer, one of the users informed me of an additional glitch that was interfering their experience, different than the ticket I was assigned. I told everybody I'd get on the case.
A few hours later, after making my way through the code, finding the bug, and fixing it in my local VM, I pushed the change live and returned to the ShoutBox to let everybody know it was fixed (actually, my partner kemayo
, who assisted me with my first deployment, let them know before me, but for the purposes of this blog post, I'll take credit
) Everybody was so happy. Instant gratification -- I think the person who reported the problem to me was still in the ShoutBox. I've worked on a number of websites, including top-ten portals (from eons ago), and small local community sites, but have never found one where the developers are so close to the users as they are at DA. This is awesome, I thought to myself, and powerful.
This is the very customer-first mentality that the likes of Tony Hsieh recently wrote a book
about, happening right here in front of my eyes. Developers interacting with customers, and putting the customer needs at top priority. That's rare! Most places hide the developers as far away from the customers as possible. In some cases, that's a good thing. However, in other cases, it works really well to have the developers interacting with the customers, especially in cases where the developers are really passionate about the product their building, which is exactly what I find at deviantART. Open to ideas
I posted my first journal entry commenting that it took me three days to figure out how to change my avatar picture on the site. I got a few comments on that journal post (I didn't think /anybody/ would read it), but what surprised me most was that the user interface team brought it up in the weekly developers meeting and committed to fixing it, as they'd heard other people with the same problem. (Since then I've raised a few more issues internally and they are **on it**, working to solve problems and improve the user experience, with some really sleek items in the pipeline)A work of art
My dad, a long time computer programmer, imparted to me that software development is very much an art form, an ideology I believe more and more with each passing year. Donald Knuth expressed this concept in the title of his book
, influencing a number of famous computer scientists to agree (Richard Stallman, Guido van Rossum, Bjarne Stroustrup, just to name a few…)
Certainly my happiest realization of being a part of the deviantART dev team is that I've discovered deviantART's community of artists includes not just the users who contribute digital works on the public facing side, but also the software developers contributing their digital works on the back end. When I take this into consideration, that I'm contributing to a piece of art, suddenly the work becomes so much more enjoyable.
And here my conclusion lies: deviantART the site, and the community around it is, by its own composition, a work of art. From the digital media the users contribute, to the code the developers develop, to the digital interactions that take place between everyone involved, it is all creative in nature, and artistic. I think the more I take this philosophy to heart, the more I will enjoy my job, and the more the website, company, and community as a whole will benefit. And that feels fabulous.Think you've got what it takes?
If you're passionate about programming, and being creative, this is surely the place to be. I'm happy I joined the team; now I've got to go be creative. Hasta lluego...
Quoting Donald Knuth, "A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better."