What Does The Dev Team Do All Day?

 8   Tweet
!

Note: This post hasn't been updated in over 2 years.

So the other week one of our users did a bit of wondering out loud in the comments, wondering what exactly so many developers do with all their time working on the Envato Marketplace. We were a little hurt that someone thought we only exist to jack up rates :(

Still, we can’t really blame him, we’ve never _really_ explained what goes on behind the scenes at Envato. I’m expecting we’re going to drag this out over a few posts over the next couple of weeks. In this post, I just wanted to briefly explain some of the hidden complexity behind the Envato Marketplaces. In many ways, the marketplace (that’s what we devs call it, “the marketplace”, all lower caps because we’re lazy typists) is like an iceberg. What the end customers see is just a shiny little protrusion popping out the top of the water, the really dangerous bits are submerged, ready to take a giant chunk out of your unsinkable ship, and much later be turned into a teen heart-throb type of movie. I may have taken that a little too far.

One thing that not everyone realises is that all of the Marketplaces come out of the same codebase, and are served out of the one server farm. Thanks to the power of Ruby meta-programming, we have a special marketplace language for defining our Marketplace’s internal structure, and all the file meta-data, and post processing, etc with the minimum of hassle.

At the Chicago staff meetup in early September, I also to give the remote staff a bit of an explanation of what’s involved in the structuring of the marketplace. One of the metaphors I used was that of a tree. I drew a pretty bitchin’ tree on the whiteboard there at the time, but didn’t take a photo of it, so I’ve whipped up a little replica.

The tree metaphor works really well for us, because in one way, it’s not even a metaphor. It’s how we built it! At it’s core, the marketplace is one huge object tree. A long time ago, our founding developer Ryan wrote a ruby library to construct object trees called Lumberjack. Our tree starts with a “Marketplace” object, and from there fans out to each of the specific marketplaces, and then “Categories”, and then I can’t tell you any more…. because that would be telling.

It’s a model that gives us both strengths and weaknesses. In some cases it speeds up development, as we’ve got a fairly refined stock media marketplace code base on our hands. In others, it slows it down, as every decision made while coding needs to be weighed up in the greater context of a network of marketplaces, rather than in one site alone.

Of our (at time of writing) roughly half million users, there are three rough categories. We have Staff, Authors, and Buyers. As you can imagine, not a lot of them are staff. There’s a fair few more users that fall into the Author category, but the vast majority are Buyers. This makes for a neat little pyramid type triangle thingo, which I’ve sketched below.

If you’re a user in one of the different slices on the pyramid, the odds are that if you’re not seeing rapid improvement in your slice, it’s because we’re hard at work on one of the others. In general, we on the dev team (I can’t speak for the rest of the company) assume that each level is concentrating the most on pleasing the next level down. We know the buyers are after good quality content, but we don’t make content, so we obviously leave all of that to the authors. We also don’t know how to attract and keep authors, we leave that to the site managers and their respective teams. We do know how to write software, and it turns out that’s exactly what the site managers need! So while the dev team are outside of the pyramid, we work hardest in supporting the site managers in their work so they can support you in yours.

You may be thinking that still doesn’t account for why you don’t see more features on the front end. The final part of the puzzle is that while the pyramid in terms of user numbers is bottom heavy, in terms of amounts of code and code complexity, the marketplace is very top heavy.

For every feature a user interacts with at the bottom of the pyramid, there’s a few more further up that allow all the support, community, and site management staff administer it. You can’t have item sales, without a system for receiving money, tracking earnings, and for issuing refunds, and allowing downloads, and for analysing sales data, and so on.

You then multiply those features by 8, to handle all the nuances of the different marketplaces, then multiply it by another half million for weight of all the users it must support, and then you multiply all that by some random number, because when your CEO is a graphic designer – everything needs to be pretty :-)

So I’m hoping with all of that, you guys will have a much better idea of what’s involved behind the scenes. In a few follow up posts I want to introduce you to the current team, and share with you some of the other technical and project manage-y stuff we do within the team to fill out the rest of the picture.

  • http://ivorpadilla.net Ivor

    Haha! Loved this phrase “…because when your CEO is a graphic designer – everything needs to be pretty” you guys are doing a great job.

  • http://www.ginoorlandi.com/ Gino Orlandi

    I can only imagine how hard it is to manage and update your giant network, but you guys are doing a great job. You have some of the best and most useful sites the design community has ever seen.

  • Anonymousitous

    High rates? Without Envato most authors would never have the opportunity to sell their product so successfully in the first place.

    @ all complainers:

    If you rather spend money on your own store, pay for marketing, and deal with all the technical aspects yourself then go ahead! :) Let’s see if you can even make 10% of your sales price ;)

    Envato 4 Life :)

    • Anonymousitous

      Oops meant low rates :P

  • David

    Good sketcher :)

    Oh and looking forward to future related posts.

  • http://marketplace.tutsplus.com/user/seanHodge Sean Hodge

    John,

    Great post. Love your word choices as always, like “thingo’s” and such. Your presentation in Chi Town was enlightening. How much restructuring of code that has to be done in some cases before changes can be made seems massive. Keep up the awesome work, the majority that appreciate the dev work are all silently cheering :)

  • VF

    Cool! It is easy to underestimate the amount background works behind any wonderful output, as there is no sweat exposed!

    Kudos to the team and I believe this is one of the best system balanced with user experience and great design! :)

  • Thena

    I’d like to know if trhe Dev Team Repo is safe to delete in the Cydia sources. Its nothing personal. Im just getting size mismatches and trying to clean up a bit. However, if keeping it has a lot do with the the fucntionality of the other apps, tweaks and the way my phone preforms, Ill leave it