Years ago someone asked me what the fastest way to stand up an App
Marketplace was. After considering that we already had several Add-on Types in
AMO I replied that it would be to create another Add-on Type for apps, use the
AMO infrastructure as a foundation for logins/reviews/etc. and do whatever minor
visual tweaks were needed. This was a pretty quick solution but the plan evolved
and “minor visual tweaks” turned into “major visual changes” and soon a
completely different interface. Fast forward a few years and we have two
separate sites (addons.mozilla.org and marketplace.firefox.com) running out of
the same code repository but with different code. Much of the code is crudely
separated (apps/ vs mkt/), but there are also many shared files, libraries, and
utilities, both front and backend. The two sites run on the same servers but
employ separate settings files.
Towards the end of last year my routine was to find a weeks worth of bugs for
each Marketplace developer, assign what I thought they could do in a week, and
then meet with the person individually to talk about them and make sure we both
thought it was a reasonable amount and the priorities were right. This worked
fine for smaller teams, however, it’s not unusual for us to close 70+ bugs a
week these days and it simply used too much time. I’d often end up skipping the
folks who were comfortable grabbing bugs on their own, which was fine, but it
didn’t encourage discussion within the team of who was working on what and kind
of pushed people into working in isolation.
Over four years ago getpersonas.com was built as a gallery to hold Personas -
easy to make and use themes for Firefox. A lot of programs were supporting
skins at the time, but I don’t know of any which were so simple (literally, move
your mouse over an image on a webpage and it’s applied). A community of artists
formed and many designs emerged - some amazing and popular, some focused
on specific things (hat tip to CollieSmile), many for sports, or brands, or
just people who wanted pictures of their family in a spot they noticed all day
long.
When we converted addons.mozilla.org from PHP to Python I mentioned how
deceptively large (lines of code) the site had grown with so many views and
features. We’ve since built marketplace.firefox.com on literally the same code
base (a decision I hoped to blog about some day, alas) and the line count
continues upwards. The MVC paradigm
is one of the most common out there, easy to understand, and built in to our
frameworks so it was naturally a good choice. However, as the site continues to
expand we’ve had to review what the best architecture for the code would be and
the main point that stands out is that our entire site and its services are a
monolithic blob of code. Both sites, all of our APIs, all of the PayPal code, the administrative
tools, the developer control panel, the reviewer queues, the list goes on - it’s
all in one repository and changing one means potentially affecting all of them.