SlideShare a Scribd company logo
1 of 55
Download to read offline
MONTREAL 1/3 JULY 2011




Lean Startup with WebObjects
Paul D.Yu
FDL Solutions, Inc.
Agenda
•   Define lean startup

•   What or why not WebObjects/WOnder

•   At the Beginning of the business

•   Development

•   QA

•   Production
What is a lean startup?

•   Use of free and open source software,

•   Application of agile software development methods, and

•   Ferocious customer-centric rapid iteration, as exemplified by
    Steve Blank's Customer Development process

•   And minimize venture capital investment
Purpose of a Startup?

•   Make Money!!!

•   Some money from a many of people = good business

•   Does not have to be the $100M business

•   Not build it and they will come...
Free and Open Source Software


•   The idea is to minimize the upfront investment in development
    tools and infrastructure

•   Lower the costs associated with getting revision 0 out the door
Agile Development


•   Agile development can be traced back to Chrysler Financial’s
    eXtreme Methodology

    •   They used NeXTSTEP!!!
Customer Centric Development

•   Listen to your customers

•   Build what your customers want quickly

•   If your customers feel that you are listening they will tolerate
    bugs

•   With each release cycle the product gets better
Avoid VC $$$


•   Once you take VC money, you are no longer working for
    yourself…

•   Founders often are left without a chair
Choose Your Partners Wisely


•   Choose your partner like you would choose your spouse…

•   May be not

•   Easier to get together, a lot tough to get divorced
Lean Startup is a Business

•   Not just about software development

•   Also product deployment and operational maintenance

•   Also customer support

•   Especially business development and sales

•   There is the whole business to run!!!
Convergence of Events
•   Cloud Computing

    •   Software as a Platform

    •   Software as a Service model

•   Open Source technologies and tools

•   Pay as you go…

•   Mobile computing
My Lean Startup

•   EOModel Design Started December 2008

•   First Prototype/Demonstration February 2009

•   First Customer Usage April 2009

•   First Customer Check May 2009

•   Self-funded with consulting work
MONTREAL 1/3 JULY 2011




WebObjects and WOnder
Why did I choose to use WO and WOnder for my lean startup?
“Provides the first two floors of a
  five story building” Steve Jobs
WebObjects

•   Not exactly open source

•   But essentially free

•   Single unified stack instead of separate stacks that must be
    integrated

•   “The ocean is broad AND deep”
Why WOnder?

•   Open source

•   Fix problems with underlying WO

•   So many features beyond basic WO

•   Once you WOnder, you’ll never go back...
Rapid Iterations

•   Quick iterations in the same direction may be easy

•   Remember every iteration cost money

•   But what about Changes of Direction?

    •   Technology innovation

    •   Business/customer requirements
WO and WOnder Architecture
       and Options
                                             Multi-headed
•   Multi-headed Hydra                       Hydra MVC
•   Perfectly positioned for iOS and JS-
    based rich-client architectures with
    ERRest

•   Allows for flexibility (turning) as the
    future changes
Content Warning...
Challenges of using WebObjects

•   WebObjects is DEAD!

•   Not Open Source or Doesn’t cost $50,000

•   Tough to sell in the corporate bureaucracy

•   Need to know a lot: from css down to EOF

•   “Apple eats its own dog food”, but it is not the same as ours
Challenges of using WebObjects

•   No Marketing Air Cover for the technology!!!

•   No Corporate Sales Force for the “product”!!!

•   No apparent technology movement of WO from Apple

•   No coherent WOnder direction
Challenges of using WebObjects
•   No documentation

•   No good examples

•   RoR is better

•   Lack of available developers

•   Lack of training facilities

•   A lot to learn the entire stack from css to EOF...
The Opportunities of Using
           WebObjects
•   But lean startups are not large corporations

•   WebObjects and WOnder is still one of the BEST tools and
    architecture in the market place

•   For a lean startup, WebObjects and WOnder allows a very small
    team to get produce very powerful and scalable systems very
    quickly

•   But you have to know WebObjects already????
MONTREAL 1/3 JULY 2011




At the Beginning
A lean startup
First things first

•   Build the business case

•   Can you make money if you invest your time and effort into this
    venture

    •   Either you job or business

•   Charge one customer A LOT of $$$ vs. Charge A LOT of
    customers a little
Second things second

•   Design the EOModel

•   Build an application architecture with a solid foundation to build
    from, see beyond fluffy bunny presentation

•   Then build the rest of the house based on your vision for the
    product
Then

•   Seek out your local university or chamber of commerce to get
    incubator/advice for entrepreneurs

•   Rapidly build the product and release it in the cloud

•   Get people to use it and pay you to test your application...
MONTREAL 1/3 JULY 2011




Development Environment
IDE
•   MacBook Pro OS X 10.6.7

•   Eclipse Helios Service Release 2 (~/Appications vs /Applications)

    •   WOLips

    •   JRebel

    •   Subclipse moving to EGits

    •   Workspace Mechanic
Additional Tools
•   Subversion Clients

    •   svnX

    •   Versions

•   GitHub Client

    •   Gitbox.app

    •   Tower.app
Version Control
                   Issue Tracking
•   Subversion, but thinking of migrating to private Git Server

    •   Gitolite on CentOS

•   Jira 10 person license, but really using OmniFocus

•   Confluence 10 person license, but really using Yojimbo,
    Notebook
Database

•   MySQL 5.+

•   MySQL Admin

•   DbVisualizer

•   Local tunnels to Production, Staging environments
EOF and Database Independence


•   EOModel with Prototypes

•   Porting from MySQL to other DB’s should be no problems
Why DbVisualizer?

•   Connections

    •   Development

    •   QA

    •   Production
Development Databases


•   Production Replicated for testing

•   Sales Demonstration

•   Simple Switch of the jdbc property in Properties.<me> file
MONTREAL 1/3 JULY 2011




QA/Training Environment
Continuous Build Server

•   MacMini moving to Cloud Server

•   Jenkins

•   Manual task to pull from Wonder

•   Job to build project(s) from svn, moving to git

•   Scripts to push to Stage and Production
QA Clients

•   OS X Firefox, Safari

•   Parallels with Virtual Machines

    •   Windows 7, IE 8

    •   Windows XP, IE 7

•   iPAD Safari
Training Environment
•   iWEB Server (seems cheaper than my production environment)

•   CentOS

•   Oracle Java VM 1.6+

•   Project Wonder wotaskd and JavaMonitor

•   MySQL on the same machine

•   Deploy Apps to /opt/Local/Library/WebObjects
Training Environment



•   Dedicated URL for testing ERRest client applications
Training Environment

•   Experienced major performance issues with undersized training
    environment

•   Concurrent simultaneous users…

•   Don’t want to interrupt production

•   Don’t want to corrupt production data
MONTREAL 1/3 JULY 2011




Production Environment
MONTREAL 1/3 JULY 2011




Production Environment
At the Beginning
Virtual Server Per Customer




         Virtual    Virtual    Virtual
         Server     Server     Server
          per        per        per
        Customer   Customer   Customer
MONTREAL 1/3 JULY 2011




Production Environment
Now
Current Production Environment


                   Apache 2
                        +
               Application Server




                Database Server
Production Environment
•   SliceHost is the ISP

•   Database Server on a 512 MB slice

•   Web and App Server 2GB slice (2 IPs)

•   Ubuntu 8.+

•   Apache2

•   Project WOnder wotaskd and JavaMonitor

•   Nagios
Production Environment
          Merging Databases
•   Contracted with Kieran Kelleher

•   Kieran designed an automated script to merge the three
    production databases into one

•   oldId vs newId

•   Run many times to verify correctness

•   Run once to migrate
Production Environment

•   SliceHost backup service is nice, cheaper than EC2

•   SliceHost create new slice based on backup is nice

•   SliceHost being replaced by RackSpace

•   So will be migrating

•   Canadian client says there are laws governing where the data can
    reside, so not all cloud = cloud
Turning on EO Migration

•   Discussions of “White Labeling”

•   Requests for local installation, traditional software license

•   Would not be able to deal with manual upgrades to the
    database!!!

•   Bit the bullet and turned on Migration
Approach to EO Migration
•   Existing Database

•   Generate EOMigration from current EOModels

•   Extract Database Content for “reference” data

•   Manually set the production environment to migration 1 or
    correct version for all models, so migration will NOT run

•   Tested against a new database to create state 1

•   Modified EOModel to create revision 2
MONTREAL 1/3 JULY 2011




Additional Tools
Startup is not just about the technology
Other Tools
•   Verizon FiOS

•   WebEx or GotoMeetings

•   GotoWebinar

•   Grasshopper

•   Constant Contact

•   SalesForce.com

•   Google Analytics
MONTREAL 1/3 JULY 2011




Credits
Travis Britt, Kieran Kelleher, Pascal Roberts
MONTREAL 1/3 JULY 2011




Q&A

More Related Content

What's hot

Cross-Platform Desktop Apps with Electron (JSConf UY)
Cross-Platform Desktop Apps with Electron (JSConf UY)Cross-Platform Desktop Apps with Electron (JSConf UY)
Cross-Platform Desktop Apps with Electron (JSConf UY)David Neal
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Serdar Basegmez
 
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012EJB 3.2 - Java EE 7 - Java One Hyderabad 2012
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012Jagadish Prasath
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-ServicesRandy Shoup
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 
Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3ArdenCST
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remanijaxconf
 
PLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignPLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignAlfresco Software
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5Kunal Johar
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2ArdenCST
 
Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015ESUG
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect WorkshopPatrick Chanezon
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentPaul Withers
 
PLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignPLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignAlfresco Software
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010Christopher Brown
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsBradley Holt
 
Alfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco Software
 
LJC 05/14 "Cloud Developer's DHARMA"
LJC 05/14 "Cloud Developer's DHARMA"LJC 05/14 "Cloud Developer's DHARMA"
LJC 05/14 "Cloud Developer's DHARMA"Daniel Bryant
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? Michael Yagudaev
 

What's hot (20)

Cross-Platform Desktop Apps with Electron (JSConf UY)
Cross-Platform Desktop Apps with Electron (JSConf UY)Cross-Platform Desktop Apps with Electron (JSConf UY)
Cross-Platform Desktop Apps with Electron (JSConf UY)
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
 
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012EJB 3.2 - Java EE 7 - Java One Hyderabad 2012
EJB 3.2 - Java EE 7 - Java One Hyderabad 2012
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
PLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignPLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and Design
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2
 
Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
PLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignPLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and Design
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchApps
 
Alfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and Design
 
LJC 05/14 "Cloud Developer's DHARMA"
LJC 05/14 "Cloud Developer's DHARMA"LJC 05/14 "Cloud Developer's DHARMA"
LJC 05/14 "Cloud Developer's DHARMA"
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? 
 

Similar to Lean Startup with WebObjects

Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Yves Hwang
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Simple Cloud with Amazon Lightsail - Mike Coleman
Simple Cloud with Amazon Lightsail - Mike ColemanSimple Cloud with Amazon Lightsail - Mike Coleman
Simple Cloud with Amazon Lightsail - Mike ColemanAmazon Web Services
 
The DevOps Journey at bwin.party
The DevOps Journey at bwin.partyThe DevOps Journey at bwin.party
The DevOps Journey at bwin.partyKelly Looney
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development LetsConnect
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyKelly Looney
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Docker, Inc.
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk NewsESUG
 
Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015MSDEVMTL
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerMatomy
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010Joel Gascoigne
 
My personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsMy personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsnj-azure
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 
Visual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewVisual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewSteve Lange
 
WebCenter as a Cloud App on Exalogic
WebCenter as a Cloud App on ExalogicWebCenter as a Cloud App on Exalogic
WebCenter as a Cloud App on ExalogicRaoul Miller
 

Similar to Lean Startup with WebObjects (20)

DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
 
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Simple Cloud with Amazon Lightsail - Mike Coleman
Simple Cloud with Amazon Lightsail - Mike ColemanSimple Cloud with Amazon Lightsail - Mike Coleman
Simple Cloud with Amazon Lightsail - Mike Coleman
 
The DevOps Journey at bwin.party
The DevOps Journey at bwin.partyThe DevOps Journey at bwin.party
The DevOps Journey at bwin.party
 
Stackato
StackatoStackato
Stackato
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
My personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsMy personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev ops
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
Visual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewVisual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) Overview
 
WebCenter as a Cloud App on Exalogic
WebCenter as a Cloud App on ExalogicWebCenter as a Cloud App on Exalogic
WebCenter as a Cloud App on Exalogic
 

More from WO Community

In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engineWO Community
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsWO Community
 
Build and deployment
Build and deploymentBuild and deployment
Build and deploymentWO Community
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSWO Community
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldWO Community
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful ControllersWO Community
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on WindowsWO Community
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnitWO Community
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO DevsWO Community
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache CayenneWO Community
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to WonderWO Community
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative versionWO Community
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" patternWO Community
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W WO Community
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languagesWO Community
 

More from WO Community (20)

KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systems
 
Build and deployment
Build and deploymentBuild and deployment
Build and deployment
 
High availability
High availabilityHigh availability
High availability
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWS
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real World
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
 
WOver
WOverWOver
WOver
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Lean Startup with WebObjects

  • 1. MONTREAL 1/3 JULY 2011 Lean Startup with WebObjects Paul D.Yu FDL Solutions, Inc.
  • 2. Agenda • Define lean startup • What or why not WebObjects/WOnder • At the Beginning of the business • Development • QA • Production
  • 3. What is a lean startup? • Use of free and open source software, • Application of agile software development methods, and • Ferocious customer-centric rapid iteration, as exemplified by Steve Blank's Customer Development process • And minimize venture capital investment
  • 4. Purpose of a Startup? • Make Money!!! • Some money from a many of people = good business • Does not have to be the $100M business • Not build it and they will come...
  • 5. Free and Open Source Software • The idea is to minimize the upfront investment in development tools and infrastructure • Lower the costs associated with getting revision 0 out the door
  • 6. Agile Development • Agile development can be traced back to Chrysler Financial’s eXtreme Methodology • They used NeXTSTEP!!!
  • 7. Customer Centric Development • Listen to your customers • Build what your customers want quickly • If your customers feel that you are listening they will tolerate bugs • With each release cycle the product gets better
  • 8. Avoid VC $$$ • Once you take VC money, you are no longer working for yourself… • Founders often are left without a chair
  • 9. Choose Your Partners Wisely • Choose your partner like you would choose your spouse… • May be not • Easier to get together, a lot tough to get divorced
  • 10. Lean Startup is a Business • Not just about software development • Also product deployment and operational maintenance • Also customer support • Especially business development and sales • There is the whole business to run!!!
  • 11. Convergence of Events • Cloud Computing • Software as a Platform • Software as a Service model • Open Source technologies and tools • Pay as you go… • Mobile computing
  • 12. My Lean Startup • EOModel Design Started December 2008 • First Prototype/Demonstration February 2009 • First Customer Usage April 2009 • First Customer Check May 2009 • Self-funded with consulting work
  • 13. MONTREAL 1/3 JULY 2011 WebObjects and WOnder Why did I choose to use WO and WOnder for my lean startup?
  • 14. “Provides the first two floors of a five story building” Steve Jobs
  • 15. WebObjects • Not exactly open source • But essentially free • Single unified stack instead of separate stacks that must be integrated • “The ocean is broad AND deep”
  • 16. Why WOnder? • Open source • Fix problems with underlying WO • So many features beyond basic WO • Once you WOnder, you’ll never go back...
  • 17. Rapid Iterations • Quick iterations in the same direction may be easy • Remember every iteration cost money • But what about Changes of Direction? • Technology innovation • Business/customer requirements
  • 18. WO and WOnder Architecture and Options Multi-headed • Multi-headed Hydra Hydra MVC • Perfectly positioned for iOS and JS- based rich-client architectures with ERRest • Allows for flexibility (turning) as the future changes
  • 20. Challenges of using WebObjects • WebObjects is DEAD! • Not Open Source or Doesn’t cost $50,000 • Tough to sell in the corporate bureaucracy • Need to know a lot: from css down to EOF • “Apple eats its own dog food”, but it is not the same as ours
  • 21. Challenges of using WebObjects • No Marketing Air Cover for the technology!!! • No Corporate Sales Force for the “product”!!! • No apparent technology movement of WO from Apple • No coherent WOnder direction
  • 22. Challenges of using WebObjects • No documentation • No good examples • RoR is better • Lack of available developers • Lack of training facilities • A lot to learn the entire stack from css to EOF...
  • 23. The Opportunities of Using WebObjects • But lean startups are not large corporations • WebObjects and WOnder is still one of the BEST tools and architecture in the market place • For a lean startup, WebObjects and WOnder allows a very small team to get produce very powerful and scalable systems very quickly • But you have to know WebObjects already????
  • 24. MONTREAL 1/3 JULY 2011 At the Beginning A lean startup
  • 25. First things first • Build the business case • Can you make money if you invest your time and effort into this venture • Either you job or business • Charge one customer A LOT of $$$ vs. Charge A LOT of customers a little
  • 26. Second things second • Design the EOModel • Build an application architecture with a solid foundation to build from, see beyond fluffy bunny presentation • Then build the rest of the house based on your vision for the product
  • 27. Then • Seek out your local university or chamber of commerce to get incubator/advice for entrepreneurs • Rapidly build the product and release it in the cloud • Get people to use it and pay you to test your application...
  • 28. MONTREAL 1/3 JULY 2011 Development Environment
  • 29. IDE • MacBook Pro OS X 10.6.7 • Eclipse Helios Service Release 2 (~/Appications vs /Applications) • WOLips • JRebel • Subclipse moving to EGits • Workspace Mechanic
  • 30. Additional Tools • Subversion Clients • svnX • Versions • GitHub Client • Gitbox.app • Tower.app
  • 31. Version Control Issue Tracking • Subversion, but thinking of migrating to private Git Server • Gitolite on CentOS • Jira 10 person license, but really using OmniFocus • Confluence 10 person license, but really using Yojimbo, Notebook
  • 32. Database • MySQL 5.+ • MySQL Admin • DbVisualizer • Local tunnels to Production, Staging environments
  • 33. EOF and Database Independence • EOModel with Prototypes • Porting from MySQL to other DB’s should be no problems
  • 34. Why DbVisualizer? • Connections • Development • QA • Production
  • 35. Development Databases • Production Replicated for testing • Sales Demonstration • Simple Switch of the jdbc property in Properties.<me> file
  • 36. MONTREAL 1/3 JULY 2011 QA/Training Environment
  • 37. Continuous Build Server • MacMini moving to Cloud Server • Jenkins • Manual task to pull from Wonder • Job to build project(s) from svn, moving to git • Scripts to push to Stage and Production
  • 38. QA Clients • OS X Firefox, Safari • Parallels with Virtual Machines • Windows 7, IE 8 • Windows XP, IE 7 • iPAD Safari
  • 39. Training Environment • iWEB Server (seems cheaper than my production environment) • CentOS • Oracle Java VM 1.6+ • Project Wonder wotaskd and JavaMonitor • MySQL on the same machine • Deploy Apps to /opt/Local/Library/WebObjects
  • 40. Training Environment • Dedicated URL for testing ERRest client applications
  • 41. Training Environment • Experienced major performance issues with undersized training environment • Concurrent simultaneous users… • Don’t want to interrupt production • Don’t want to corrupt production data
  • 42. MONTREAL 1/3 JULY 2011 Production Environment
  • 43. MONTREAL 1/3 JULY 2011 Production Environment At the Beginning
  • 44. Virtual Server Per Customer Virtual Virtual Virtual Server Server Server per per per Customer Customer Customer
  • 45. MONTREAL 1/3 JULY 2011 Production Environment Now
  • 46. Current Production Environment Apache 2 + Application Server Database Server
  • 47. Production Environment • SliceHost is the ISP • Database Server on a 512 MB slice • Web and App Server 2GB slice (2 IPs) • Ubuntu 8.+ • Apache2 • Project WOnder wotaskd and JavaMonitor • Nagios
  • 48. Production Environment Merging Databases • Contracted with Kieran Kelleher • Kieran designed an automated script to merge the three production databases into one • oldId vs newId • Run many times to verify correctness • Run once to migrate
  • 49. Production Environment • SliceHost backup service is nice, cheaper than EC2 • SliceHost create new slice based on backup is nice • SliceHost being replaced by RackSpace • So will be migrating • Canadian client says there are laws governing where the data can reside, so not all cloud = cloud
  • 50. Turning on EO Migration • Discussions of “White Labeling” • Requests for local installation, traditional software license • Would not be able to deal with manual upgrades to the database!!! • Bit the bullet and turned on Migration
  • 51. Approach to EO Migration • Existing Database • Generate EOMigration from current EOModels • Extract Database Content for “reference” data • Manually set the production environment to migration 1 or correct version for all models, so migration will NOT run • Tested against a new database to create state 1 • Modified EOModel to create revision 2
  • 52. MONTREAL 1/3 JULY 2011 Additional Tools Startup is not just about the technology
  • 53. Other Tools • Verizon FiOS • WebEx or GotoMeetings • GotoWebinar • Grasshopper • Constant Contact • SalesForce.com • Google Analytics
  • 54. MONTREAL 1/3 JULY 2011 Credits Travis Britt, Kieran Kelleher, Pascal Roberts
  • 55. MONTREAL 1/3 JULY 2011 Q&A