Orta Therox runs a development team at Artsy that aims to make all the world's art accessible online. He advocates for open sourcing apps by default to increase transparency, help other developers, and have a broader impact. While commercial concerns around certain apps require discussion, most "pretty pictures of data" apps could be open sourced without risk. Openness combats secrecy that allows anti-user behavior and helps ensure high-quality, ethical code and decision-making.
2. @ O R TA
I'm Orta Therox, I run a development team of 5 iOS developers at a company called Artsy.
3. You might not have heard of it, that’s totally cool. I’ve give you a tiny overview - only the important bits for the this talk
4. The start-up Art.sy aims to
do for visual art what
Pandora did for music:
become a source of discovery,
pleasure and education.”
“
We're planning to do this by making all the world’s art accessible to anyone with an internet connection.
If you’re into art, you’d love us. The important bit that I want to reference later, is our values system
5. values
what is a values system?
e.g. what are the fallbacks for when you make the hardest decision
6. 1
- ART MEETS SCIENCE
Our work should be the intersection of art meets science, practically speaking that means:
- showcase art.
- Involve artists in our process,
- regard art historians as peers for programmers
7. 2
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
Care about individuals, if a group decision strongly hurts individuals, it’s probably a bad call
8. 3
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
- QUALITY WORTHY OF ART
Art isn’t always beautiful, it isn’t always functional, but we need to make sure we showcase it in the best way possible
9. 4
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
- QUALITY WORTHY OF ART
- POSITIVE ENERGY
Being nice is nice!
10. 5
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
- QUALITY WORTHY OF ART
- POSITIVE ENERGY
- OPENNESS
The art world is extremely closed.
Lots of back-room dealing
Makes it very hard to get involved if you’re not from the “scene”
11. oss
In 2013, I started devoting serious amounts of time to open source.
I already had a lot of experience, I have a tattoo about OSS from when I was 16
12. IMPACT
I didn’t have the words then, but I do now. I was looking at trying to help out, and to try and make an impact.
13. I choose what I work on based on its impact, so I joined the biggest project in our ecosystem, a dependency manager called CocoaPods.
Android peeps: When no-one clapped at Google IO last year at an announcement, that was when Google announced that they were shipping via CocoaPods
17. impact
through
oss
It’s great being able to have an impact through OSS, but then during the day, I would work on an app whose impact is far more local.
I've been working at Artsy 4 and a half years.
18. IMPACT ON THE ART WORLD
Artsy’s apps have an impact on the Art world.
19. MORE THAN JUST THE ART WORLD
Part of the idea for us when moving to OSS by default was about trying to make our work have more of an impact.
20. IMPACTING YOUR COMMUNITIES
We wanted to use our development time to not just affect Artsy.
So we changed our mindset to: how can we make an impact at Artsy, but also make an impact on the community.
21. mindset
I wanted to set the strongest foundations I possibly could for our growing team
I set myself the goal: Make the Artsy mobile team entirely transparent.
22. ARTSY MOBILE TEAM ENTIRELY TRANSPARENT
MAKE THE
It took roughly two years to get to a point where we operate 100% in the open.
I want to give some examples:
23. PROGRAMMING
For all these examples I’m using our flagship iOS App, Eigen
You can see all of these details on github.com/artsy/eigen
You can see all of our commits
24. PROCESS
We publicly handle our process. This ranges from upcoming project milestones, to team culture, to the usual bugs / features.
25. CODE REVIEW
All code is reviewed on GitHub, so we’re not having backroom discussion about what works, all we write up PRs knowing that people will be reading them
This means we treat our review differently, every PR should sit atomically.
26. DESIGN + QA
We iterate on our designs in GitHub issues, interacting with designers and product managers in a way that allows for outside participation
27. EASE OF INSTALL
We treat “installing and running” easily as a feature.
You could C&P the whole thing and it would just work.
This is about lowering the barriers of entry for anyone to learn from
32. the
pitch
Unless you're a 2-3 person business, there are other people involved in the product. They need to be on board too.
33. HOW DO I SELL OTHERS ON OSS?
We devoted quite a lot of time to understanding you can win non-developers on OSS
This was made easier because of company values, I pitched it as being the best way the development team could apply Artsy's values to our day to day process
34. WE ARE NOT THE FIRST
Lots of companies do OSS by Default
- Automattic
- Telegram
- Open Whisper Systems
- Duck Duck Go
35. STEP BY STEP
We start off with a new app
Build out the tooling
See what problems we hit with community expectations
It's an experiment, if it fails, we can stop there.
If it is considered a success, then we can try a bigger project
36. LOWERING BARRIERS TO ENTRY
When I started, there were no classes for Mac development 10 years ago
No StackOverflow, no Slack or Gitter
I consulted Adium, Colloquy and Quicksilver's code
I’d run these apps, make some changes, and understand how everything hooks together then take ideas and re- apply.
We would be making our complicated, real-world apps available for anyone to study
37. INFORMED → EXPERT
People rarely aim blog posts to the informed programmer
OSS helps that fill that gap when you’ve finished your first book, and can make a trivial app. But what next?
We could offer fully working apps for anyone it inspect
38. OPENING OUR PROCESS
As an individual, I struggled a lot with understanding how to create an app.
40. ASKING FOR HELP
this issue use has 114 comments, from all sorts sorts of developers, from apple’s compiler engineers to newbies with no clue
41. GREAT FOR COMMUNITY QUESTIONS
We want to introspect, to understand how we came to the decisions we came to.
offering a forum for others to ask questions meant we had to really define and be sure in what we talk about
42. SIGNAL BOOST
Can signal-boost individual developers
can you tell when we open sourced our last app?
you want to be a place where people can grow, and keep their code and ideas with them for as long as they want
43. BLOG POSTS
By providing direct links to code we could write better blog posts
It becomes very easy to discuss implementations / abstractions when you can point to the code
44. HIRING
It is easy to hire, and to showcase that you're a great place to work.
Considering all the options developers have, standing out is hard
OSS by Default makes that easier.
45. OUR EXPECTATIONS
I think it’s also important to talk about what we expected
We know that our app is a commercial app, it’s big and it’s complicated.
It’s target is Art collectors, and the overlap with iOS developers is pretty small
46. COLLECTORS ←iOS DEVELOPERS
I think it’s also important to talk about what we expected
We know that our app is a commercial app, it’s big and it’s complicated.
It’s target is Art collectors, and the overlap with iOS developers is pretty small
For our apps, we don’t aim to foster a community - it’s not realistic
47. Let’s do it
OK, so maybe you're interested
Here's the secret. Your apps are CRUD.
53. CREATE.READ.UPDATE.DESTROY
With these 4 types of functions, the vast majority of non-game apps, exist to:
* Pull some data
* Present it nicely
* Allow a user to manipulate it.
54. You have a server
You app pulls some data and present it nicely
Allow a user to manipulate it.
The majority of us are not creating apps that win design awards, that push the platform forwards.
We build apps that we care deeply about, but they are pretty pictures of data.
55. PRETTY PICTURES OF DATA
The problems I face, as someone who is building "pretty pictures of data" is the same as anyone else building "pretty pictures of data".
We need to be smart about
* networking
* JSON parsing,
* data modelling,
* stealing good design patterns we've seen in other apps.
56. MY APPS ARE NOT SPECIAL
My apps are not special. Your apps are probably not special.
There are special apps out there, and they can be special cases.
In my opinion: Every app that is just another "pretty pictures of data" should be open sourced.
57. *OUR APPS ARE VALUABLE
Aside from games, most mobile apps are free, so people are making money from the service
The apps most of us are building are not the most valuable part of the business.
58. In Artsy,
it's our database of artworks, our relationships with galleries, museums, fairs and auction houses.
Our ability to bring paying customers to all of the above, and be a place for great recommendations
We want to introduce more people to art.
In opening the code for our apps, we do nothing to risk the core parts of our business.
59. Folio
So I mentioned we started with opening a new project, then moved through our apps.
We had one app that exists in a really competitive space, it's a portfolio tool for galleries.
60. ARTSY OSS PRESENTATION
The space has big competitors with millions of investor funding for a tool that we apply minimal resources to.
This was the only app we needed to have a real discussion about “How can this affect the business?”
61. HOW EASY WOULD IT BE TO BOOTSTRAP
A COMPETING BUSINESS OFF THIS CODE
How easy would it be to bootstrap a competing business off this code
In the end, we decided that the app is very strongly tied to our APIs, the user interface well, let me go back to that photo again
67. QUALITY WORTH OF ART?
The "is this code worth of art" part of the discussion was interesting
I strongly believe that we ship products, and not code-bases. As a part of this, we also include a file called HACKS.md.
This lists all the times we made trade-offs for code quality for speed.
We will never ship a perfect code-base. I strongly believe in iterations as opposed to big releases, we handle OSS the same.
69. PATH / TWITTER
Path secretly uploading all your contacts to their servers
- Causing Apple to change permissions for contacts
Twitter checking every app you have installed
- Causing Apple to deprecate the API
71. VW CEO blames the emission issue on “rogue programmers”
72. $46,000,000,000
The current fine being asked by the U.S. Govt is 46 billion,
and this doesn’t include any European fines
allow me to translate that into Rubles
75. OPEN COMBATS SECRECY
Had the process, and the code been easily available for public audit.
These things would not have happened.
When you have to publicly put your name and reputation on the line, you are far more cautious around shipping anti-patterns
78. KEYS - ASSETS - CODE
If your app interacts with the outside world
It probably has keys it needs to keep secret
In the web world, different environments ( like dev, staging, production )
we had to build a tool to allow us to do this
79. KEYS - ASSETS - CODE
This is our closed serif font
This is our open serif font
THIS IS OUR OTHER CLOSED FONT
THIS IS OUR OTHER OPEN FONT
We buy our fonts, and they’re not available for distribution publicly
so we use OSS versions, they’re very similar to our closed source versions
80. KEYS - ASSETS - CODE
Sometimes there are great reasons to do work in the dark
We built a watch app entirely in the dark, we used a private fork of our app
So we could have all the usual code-review and CI, but could work on features with a release embargo
81. Impact
I am driven by impact. When I choose what I do in the morning,
I base my decisions on the following:
82. ARTSY
THE OSS COMMUNITY
THE WORLD
What impacts Artsy
What impacts Communities I care about
What impacts the world.
83. I've been programming for a decade, the skills I have are valuable and needed in so many contexts.
Deciding what I should do every day should be about the expanding spheres of influence I can have an impact in, and though working in Open Source. I can have a
bigger impact.
84. For me OSS by default is a mindset, that I can use to expand the areas I can have an impact.
I can have an impact through the products we make at artsy. I choose to go the extra mile, and move that to affect the entire iOS development community.
It’s about committing not just to your own instincts that community is good but to finding ways in which you can make OSS by default align with your business goals
85. This is not a simple task.
This year, I’ve been in more talks with companies asking for advice for going OSS than all of last year. We’re only three months in.
So now has never been a better time to start moving towards
86. OPEN SOURCE
YOUR APPS
ORTA
I interpret it to mean that the work I do should go towards the benefit of humanity, and I think that we, as developers can continue to create a better world.
Even if it is just by making CRUD applications which make pretty pictures of data.
87. OPEN SOURCE
YOUR APPS
ORTA
HTTP://ARTSY.GITHUB.IO/AUTHOR/ORTA
I interpret it to mean that the work I do should go towards the benefit of humanity, and I think that we, as developers can continue to create a better world.
Even if it is just by making CRUD applications which make pretty pictures of data.