SlideShare une entreprise Scribd logo
1  sur  87
Télécharger pour lire hors ligne
OPEN SOURCE
BY DEFAULT
@ O R TA
I'm Orta Therox, I run a development team of 5 iOS developers at a company called Artsy.
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
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
values
what is a values system?

e.g. what are the fallbacks for when you make the hardest decision
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
2
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
Care about individuals, if a group decision strongly hurts individuals, it’s probably a bad call
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
4
- ART MEETS SCIENCE
- PEOPLE ARE PARAMOUNT
- QUALITY WORTHY OF ART
- POSITIVE ENERGY
Being nice is nice!
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”
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
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.
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
Documentation.

Websites.

Branding

Being a project manager of sorts.

One-off community events ( socks, meetups, hackathons )
apps
500,000+
clones/fetches in a week
1,100,000+
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.
IMPACT ON THE ART WORLD
Artsy’s apps have an impact on the Art world.
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.
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.
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.
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:
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
PROCESS
We publicly handle our process. This ranges from upcoming project milestones, to team culture, to the usual bugs / features.
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.
DESIGN + QA
We iterate on our designs in GitHub issues, interacting with designers and product managers in a way that allows for outside participation
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
TIME & PATIENCE
So how did I start this process?
CREATE OSS LIBRARIES
We took the time to abstract out a lot of our code into libraries, so that apps were built on OSS
START SOMETHING NEW AS OSS
We started a fresh project that was Open Source from day one
MAKE OLDER PROJECTS OSS
We started opening our older codebases
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.
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
WE ARE NOT THE FIRST
Lots of companies do OSS by Default

- Automattic

- Telegram

- Open Whisper Systems

- Duck Duck Go
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
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
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
OPENING OUR PROCESS
As an individual, I struggled a lot with understanding how to create an app.
GREAT FOR DEVELOPERS
We could use our apps to improve our work flow as development team
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
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
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
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
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.
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
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
Let’s do it
OK, so maybe you're interested 

Here's the secret. Your apps are CRUD.
C.R.U.D
Create 

Read 

Update 

Destroy
CREATE.R.U.D
Create 

Read 

Update 

Destroy
CREATE.READ.U.D
Create 

Read 

Update 

Destroy
CREATE.READ.UPDATE.D
Create 

Read 

Update 

Destroy
CREATE.READ.UPDATE.DESTROY
The vast majority of non-game apps, exist to: 

* Pull some data

* Present it nicely

* Allow a user to manipulate it.
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.
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.
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.
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.
*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.
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.
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.
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?”
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
ARTSY OSS PRESENTATION
OK, so, it’s pretty simple
So this is the app running in a developer tool for showing the view structure, let’s dig into what we see
The core parts of the UI is provided by Apple’s - UICollectionView / RecyclerView
And a UIToolbar / Menu

This entire app could be prototyped in less than a day, and mostly using GUI tools
ARTSY OSS PRESENTATION
tada!
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.
Secrecy
Apps can have suspiciously anti-user behaviour:
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
VOLKSWAGON
VW CEO blames the emission issue on “rogue programmers”
VW CEO blames the emission issue on “rogue programmers”
$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
3,117,167,000,000 RUBLES
3 trillion

1 hundred and 17 billion

1 hundred and 67 million

Rubles
~59 DEATHS
Roughly 59 deaths according to the peer reviewed journals

brutal
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
GREAT FUTURE FOUNDATION
From here it’s now much harder for our team to ship things they’d not be proud of
BUT…
However secrecy is essential
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
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
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
Impact
I am driven by impact. When I choose what I do in the morning, 

I base my decisions on the following:
ARTSY
THE OSS COMMUNITY
THE WORLD
What impacts Artsy

What impacts Communities I care about 

What impacts the world.
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.
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
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
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.
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.

Contenu connexe

En vedette

Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей ФедоровCodeFest
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Dan Cuellar
Dan CuellarDan Cuellar
Dan CuellarCodeFest
 
Иван Фролков
Иван ФролковИван Фролков
Иван ФролковCodeFest
 
Никита Липский и Владимир Парфиненко
Никита Липский и Владимир ПарфиненкоНикита Липский и Владимир Парфиненко
Никита Липский и Владимир ПарфиненкоCodeFest
 
Kristian Karl
Kristian KarlKristian Karl
Kristian KarlCodeFest
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей СитникCodeFest
 
Андрей Акиньшин
Андрей АкиньшинАндрей Акиньшин
Андрей АкиньшинCodeFest
 
Евгений Брянцев
Евгений БрянцевЕвгений Брянцев
Евгений БрянцевCodeFest
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоCodeFest
 
Вадим Макеев
Вадим МакеевВадим Макеев
Вадим МакеевCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...TrueConf
 
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...TrueConf
 
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...TrueConf
 
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...TrueConf
 
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....Как новое поколение пользователей изменит будущее корпоративных коммуникаций....
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....TrueConf
 
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...TrueConf
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoTrueConf
 
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...TrueConf
 

En vedette (20)

Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей Федоров
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Dan Cuellar
Dan CuellarDan Cuellar
Dan Cuellar
 
Иван Фролков
Иван ФролковИван Фролков
Иван Фролков
 
Никита Липский и Владимир Парфиненко
Никита Липский и Владимир ПарфиненкоНикита Липский и Владимир Парфиненко
Никита Липский и Владимир Парфиненко
 
Kristian Karl
Kristian KarlKristian Karl
Kristian Karl
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей Ситник
 
Андрей Акиньшин
Андрей АкиньшинАндрей Акиньшин
Андрей Акиньшин
 
Евгений Брянцев
Евгений БрянцевЕвгений Брянцев
Евгений Брянцев
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
 
Вадим Макеев
Вадим МакеевВадим Макеев
Вадим Макеев
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...
Видео+Конференция-2016. Терминалы ВКС Yealink. Докладчик: Леонид Корытин, мен...
 
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...
Видео+Конференция-2016. Что такое TrueConf? Докладчик: Дмитрий Одинцов, дирек...
 
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...
Видео+Конференция-2016. Современные и доступные средства ВКС и удалённого вза...
 
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...
Сколько нужно серверов для современной системы ВКС? Докладчик: Кирилл Усиков,...
 
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....Как новое поколение пользователей изменит будущее корпоративных коммуникаций....
Как новое поколение пользователей изменит будущее корпоративных коммуникаций....
 
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...
Провожаем Flash, но трезво смотрим в будущее. Докладчики: Дмитрий Одинцов, CB...
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
 
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...
Выбираем AV оборудование с умом и выгодой. Докладчики: Улугбек Каланов, АйПиМ...
 

Similaire à Orta Therox

Why your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTWhy your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTShane Curcuru
 
Observing, Remembering & Sharing
Observing, Remembering & SharingObserving, Remembering & Sharing
Observing, Remembering & SharingMichael Surtees
 
Space Invaders. The Revolution in a Nutshell.
Space Invaders. The Revolution in a Nutshell.Space Invaders. The Revolution in a Nutshell.
Space Invaders. The Revolution in a Nutshell.Gerald Hensel
 
Lean Startup Machine - Mobile App Development
Lean Startup Machine - Mobile App DevelopmentLean Startup Machine - Mobile App Development
Lean Startup Machine - Mobile App DevelopmentAravind Krishnaswamy
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR ProjectFITC
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedWojciech Koszek
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIsStrange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIsThomas Bouldin
 
OpenOffice at Apache
OpenOffice at ApacheOpenOffice at Apache
OpenOffice at Apachepescetti
 
IQb project (Rubiks cube size projector)
IQb project (Rubiks cube size projector)IQb project (Rubiks cube size projector)
IQb project (Rubiks cube size projector)mc04451431
 
Fighting for the Future of the Social Web: Selling Out and Opening Up
Fighting for the Future of the Social Web: Selling Out and Opening UpFighting for the Future of the Social Web: Selling Out and Opening Up
Fighting for the Future of the Social Web: Selling Out and Opening UpJoseph Smarr
 
Growing with the Open-Source Community
Growing with the Open-Source CommunityGrowing with the Open-Source Community
Growing with the Open-Source CommunityTomasz Urbaszek
 
A smart guide to app development
A smart guide to app developmentA smart guide to app development
A smart guide to app developmentEmma Mitchell
 
Andrea Roberts UX Portfolio
Andrea Roberts UX PortfolioAndrea Roberts UX Portfolio
Andrea Roberts UX PortfolioAndrea Roberts
 
Touchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesTouchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesVisnja Milidragovic
 
App Development Smart Guide
App Development Smart GuideApp Development Smart Guide
App Development Smart GuideEmma Mitchell
 

Similaire à Orta Therox (20)

Why your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPTWhy your project's brand is more important than the code - SCRIPT
Why your project's brand is more important than the code - SCRIPT
 
Paul Blickle
Paul BlicklePaul Blickle
Paul Blickle
 
Observing, Remembering & Sharing
Observing, Remembering & SharingObserving, Remembering & Sharing
Observing, Remembering & Sharing
 
Space Invaders. The Revolution in a Nutshell.
Space Invaders. The Revolution in a Nutshell.Space Invaders. The Revolution in a Nutshell.
Space Invaders. The Revolution in a Nutshell.
 
Wassup with Web 2.0
Wassup with Web 2.0Wassup with Web 2.0
Wassup with Web 2.0
 
Lean Startup Machine - Mobile App Development
Lean Startup Machine - Mobile App DevelopmentLean Startup Machine - Mobile App Development
Lean Startup Machine - Mobile App Development
 
Designing bots
Designing botsDesigning bots
Designing bots
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIsStrange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIs
 
Ayush portfolio
Ayush portfolioAyush portfolio
Ayush portfolio
 
OpenOffice at Apache
OpenOffice at ApacheOpenOffice at Apache
OpenOffice at Apache
 
Binary Mango R&D
Binary Mango R&DBinary Mango R&D
Binary Mango R&D
 
IQb project (Rubiks cube size projector)
IQb project (Rubiks cube size projector)IQb project (Rubiks cube size projector)
IQb project (Rubiks cube size projector)
 
Fighting for the Future of the Social Web: Selling Out and Opening Up
Fighting for the Future of the Social Web: Selling Out and Opening UpFighting for the Future of the Social Web: Selling Out and Opening Up
Fighting for the Future of the Social Web: Selling Out and Opening Up
 
Growing with the Open-Source Community
Growing with the Open-Source CommunityGrowing with the Open-Source Community
Growing with the Open-Source Community
 
A smart guide to app development
A smart guide to app developmentA smart guide to app development
A smart guide to app development
 
Andrea Roberts UX Portfolio
Andrea Roberts UX PortfolioAndrea Roberts UX Portfolio
Andrea Roberts UX Portfolio
 
Touchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesTouchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: Notes
 
App Development Smart Guide
App Development Smart GuideApp Development Smart Guide
App Development Smart Guide
 

Plus de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Plus de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Dernier

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Dernier (20)

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

Orta Therox

  • 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
  • 14. Documentation.
 Websites.
 Branding
 Being a project manager of sorts.
 One-off community events ( socks, meetups, hackathons )
  • 16. clones/fetches in a week 1,100,000+
  • 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
  • 28. TIME & PATIENCE So how did I start this process?
  • 29. CREATE OSS LIBRARIES We took the time to abstract out a lot of our code into libraries, so that apps were built on OSS
  • 30. START SOMETHING NEW AS OSS We started a fresh project that was Open Source from day one
  • 31. MAKE OLDER PROJECTS OSS We started opening our older codebases
  • 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.
  • 39. GREAT FOR DEVELOPERS We could use our apps to improve our work flow as development team
  • 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.
  • 52. CREATE.READ.UPDATE.DESTROY The vast majority of non-game apps, exist to: * Pull some data
 * Present it nicely
 * Allow a user to manipulate it.
  • 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
  • 62. ARTSY OSS PRESENTATION OK, so, it’s pretty simple
  • 63. So this is the app running in a developer tool for showing the view structure, let’s dig into what we see
  • 64. The core parts of the UI is provided by Apple’s - UICollectionView / RecyclerView
  • 65. And a UIToolbar / Menu This entire app could be prototyped in less than a day, and mostly using GUI tools
  • 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.
  • 68. Secrecy Apps can have suspiciously anti-user behaviour:
  • 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
  • 70. VOLKSWAGON VW CEO blames the emission issue on “rogue programmers”
  • 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
  • 73. 3,117,167,000,000 RUBLES 3 trillion 1 hundred and 17 billion 1 hundred and 67 million Rubles
  • 74. ~59 DEATHS Roughly 59 deaths according to the peer reviewed journals brutal
  • 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
  • 76. GREAT FUTURE FOUNDATION From here it’s now much harder for our team to ship things they’d not be proud of
  • 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.