A Journey Down the Open Road - SymfonyCon Paris 2015

73
A Journey Down the Open Road

Transcript of A Journey Down the Open Road - SymfonyCon Paris 2015

A Journey Down the Open Road

Bonjour SymfonyCon!

Yoav KutnerCEO of Oro Inc. & x.CTO of Magento

Happy Birthday!

The Journey

Choose Your Travel Partner(s)

• Seek travel partners who share a common interest.

• Discuss your trip budget when choosing adventure companions.

• Review your ideal itinerary and travel dates.

• Travel on a short excursion before taking a longer one.

• Locate potential travel partners online if you can't find any through your

existing contacts.

http://www.wikihow.com/Choose-a-Travel-Partner

My Partner

Roy RubinCo-Founder and x.CEO,

Magento, Inc.

The Varien Days (and Nights)

Open Source

• Open Source: is a philosophy, or pragmatic methodology that promotes

free redistribution and access to an end product's design and

implementation details.

http://en.wikipedia.org/wiki/Open_source

• Open Source Software :(OSS) is computer software that is available with

source code: the source code and certain other rights normally reserved

for copyright holders are provided under an open-source license that

permits users to study, change, improve and at times also to distribute the

software.

http://en.wikipedia.org/wiki/Open-source_software

The Open Source Definition

Introduction: Open source does not just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

1. Free Redistribution

2. Source Code

3. Derived Works

4. Integrity of The Author's Source Code

5. No Discrimination Against Persons

or Groups

6. No Discrimination Against Fields of

Endeavor

7. Distribution of License

8. License Must Not Be Specific to a Product

9. License Must Not Restrict Other Software

10. License Must Be Technology-Neutral

http://opensource.org/osd

Open Does Not Mean Free

Open Source Technologies

• Linux/Unix

• Apache

• MySQL

• PHP

• osCommerce was started in March 2000 in Germany by project founder and leader Harald Ponce

de Leon as The Exchange Project.

• As of August 2008 the osCommerce site says that there are over 14,000 'live' websites using the

program.

• In November 2010 the development of osCommerce v2.2 was met with another stable release.

Version 2.3

• Version 3.0 has been released on March 31, 2011 and is a major re-write of the program to

incorporate an object-oriented backend, a template system to allow easy layout changes, and

inclusion of an administration-area username and password definition during installation.

We Hit a Crossroad

Select a Programing Language

<?php

echo “php?”;

?>

A Modular Application

• OO support. We wanted Magento to be an OO application

so it would be considered as a platform and allow to

extend and develop it. We also wanted Enterprise

organizations to consider this platform.

• The added support for Encapsulation (privet, protected

public), Interfaces, and Static Methods etc allowed us to

create a true OO architected application in PHP.

• We were worried about the support for PHP5 when it

comes to hosting (even considering creating 2 versions of

Magento) but the PHP4 End of Life announcement made

our decision much easier.

Selecting a Framework

Prior to Magento we were using an in-house developed framework (PHP4).

Lead to problems:

• Specifying hiring criteria when it comes to developers.

• Long training process due to lack of documentation and training materials.

• Collaborating with other companies on big projects was a nightmare.

• Maintaining and Supporting our framework without a large community was hard

both in allocating resources and without a large “collective wisdom”

• Many different coding styles – each code I looked at was different

So let’s select a framework!

• PHPDevShell

• Prado

• Pronto

• QPHP

• Seagull

• Symfony

• ZOOP

• Akelos

• Ash.MVC

• CakePHP

• Codelgniter

• DIY

• eZ Components

• Fusebox

• PHP on TRAXz

Not an easy thing to do!!!

Selecting a Framework

Criteria for Selecting a Framework

• Must have a commercial company behind it.

• Widespread community support.

• A wealth of documentation and training.

• A use-at-will architecture that enables developers to use the

Framework for the functionality they need.

• A clear roadmap and transparency

• Open Source Licensing that protects the entire ecosystem of products

built on the platform

Magento Development Time Line

December 2006

January 2007

February 2007

May 2007

June 2007

August 2007

September 2007-February 2008

March 2008

April 2007-June 2008

July 2008

July- Nov 2008

December 2008

Decision to create a new open source ecommerce platform

Begin by selecting the Zend Framework, and creating the core team (3

developers)

Core team starts designing the application architecture (3 developers)

First “proof of concept” a semi-working ecommerce application (3 developers)

Start working on First Beta (core team 5 developers)

Magento Beta release (core team 5-7 developers)

12 Beta releases (core team 5-8 developers)

Magento 1.0 released (core team 6-8 developers)

Seven 1.0.x releases (core team 6-8 developers)

Magento 1.1 released (core team 6-8 developers)

Eight 1.1.x releases (core team 5-7 developers)

Magento 1.2.0 released (core team 5-7 developers)

Magento Development Time Line

Features and Open Product Management

Community

Community

Community

Introducing Magento to the World

Twiistup Los Angeles January 15, 2008

Twiistup Los Angeles January 15, 2008

Introducing Magento to the World

Next Day January 16, 2008 Sun acquired MySQL

for $1 billion!!!

Twiistup Los Angeles January 15, 2008

Introducing Magento to the World

Introducing Magento to the World

Twiistup Los Angeles January 15, 2008

How Do We Make Money?

Services?

How Do We Make Money?

Services?

How Do We Make Money?

Support?

How Do We Make Money?

Support?

How Do We Make Money?

Commercial Open Source

• Alfresco

• Red Hat

• MySQL

• Jboss

• …

How Do We Make Money?

Commercial Open Source

• Alfresco

• Red Hat

• MySQL

• Jboss

• …

How Do We Make Money?

Brands

Evil

Superhero

Awesome

Ecommerce

Magento Trends

Magento Developers

Magento Developers

Any fool can use a computer. Many do.Ted Nelson

Magento Developers

Contributions

Extensions

Magento Connect

Magento Developers

We are in the business of leaving holesRoy Rubin

Magento Developers

Open Source Ecosystem

Magento Ecosystem

The Magento system integrator

ecosystem is significant, with estimated

collective revenues approaching

Forrester Research, June 2011

$1 billion annually

Core Values• Partnership

• Community

• Collaboration

• Transparency

Magento Ecosystem

Don’t Be Afraid of Forks

• In software engineering, a project fork happens when

developers take a copy of source code from one software

package and start independent development on it, creating a

distinct piece of software

• Free and open source software may be legally forked without

the approval of those currently managing a software project or

distributing the software, per the definitions of "free software

and open source“

https://en.wikipedia.org/wiki/Fork_(software_development)

Don’t Be Afraid of Forks

The way to deal with forks is to be attentive to the

reason(s) the fork was created and release often.

Don’t Be Afraid of Forks

Magento Inc.

Culture and Team

Lessons Learned

Don’t create a company or a product to sell it. Create it

because there is a need for what you are creating and you

believe that you can create a great business of it.

The Destination Is Not Always The End of the Journey

The Destination Is Not Always The End of the Journey

The Destination Is Not Always The End of the Journey

The Destination Is Not Always The End of the Journey

And some times we find ourselves at the same pointwe started our journey

Yoav KutnerFounder &

Chief Executive

Officer

Jary CarterFounder &

Chief Revenue

Officer

Dima SorokaFounder &

Chief Technology

Officer

Roy RubinAdvisor

Our Products

• Tools for business application development

• Enabling business application suite

• Application compatibility and integrations out of the box

OroPlatform Goals

Applications Built on OroPlatform

OroCRM is the most flexible, open source CRM.

We’re redefining what you should expect from

customer relationship management.

www.orocrm.com

300,000+Unique Site Visitors

15,000+Registered Community

Users

2,000+Active EE Customers

16+Worldwide Partners

35,000+Product Downloads

Customers Powered by OroCRM

OroCommerce Will Disrupt B2B Online Commerce

• All of Oro Platform Productivity Tools

• Corporate customer accounts with

configurable roles, permissions and

workflows. Multiple business units and

flexible ACLs

• Multiple price lists

• Configurable payment term levels

• Personalized catalogs

• Configurable quote-to-order

submission process

• Quick order forms

• Contract pricing

• Reports, dashboards and data insights

• Multi-business / multi-brand websites

(including catalog-only websites)

• Fully personalized customer

experience

• Built-in flexible content management

Merci Beaucoup!

Life would be so much easier

if we only had the source code...

Anonymous

t: @YoavKutner

e: [email protected]