55
MONTREAL 1/3 JULY 2011 Lean Startup with WebObjects Paul D.Yu FDL Solutions, Inc.

Lean Startup with WebObjects

Embed Size (px)

DESCRIPTION

This session will go over why I chose WO and WOnder as my application foundation, and how I applied the best practices from some of the best in our business to build my product. How I setup my applications and frameworks to maximize reuse and flexibility. And I will review other processes that allows me to run my business as a one plus (?) person shop.

Citation preview

Page 1: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Lean Startup with WebObjectsPaul D. YuFDL Solutions, Inc.

Page 2: Lean Startup with WebObjects

• Define lean startup

• What or why not WebObjects/WOnder

• At the Beginning of the business

• Development

• QA

• Production

Agenda

Page 3: Lean Startup with WebObjects

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

Page 4: Lean Startup with WebObjects

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...

Page 5: Lean Startup with WebObjects

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

Page 6: Lean Startup with WebObjects

Agile Development

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

• They used NeXTSTEP!!!

Page 7: Lean Startup with WebObjects

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

Page 8: Lean Startup with WebObjects

Avoid VC $$$

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

• Founders often are left without a chair

Page 9: Lean Startup with WebObjects

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

Page 10: Lean Startup with WebObjects

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!!!

Page 11: Lean Startup with WebObjects

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

Page 12: Lean Startup with WebObjects

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

Page 13: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

WebObjects and WOnderWhy did I choose to use WO and WOnder for my lean startup?

Page 14: Lean Startup with WebObjects

“Provides the first two floors of a five story building” Steve Jobs

Page 15: Lean Startup with WebObjects

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”

Page 16: Lean Startup with WebObjects

Why WOnder?

• Open source

• Fix problems with underlying WO

• So many features beyond basic WO

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

Page 17: Lean Startup with WebObjects

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

Page 18: Lean Startup with WebObjects

Multi-headed Hydra MVC

WO and WOnder Architecture and Options

• Multi-headed Hydra

• Perfectly positioned for iOS and JS-based rich-client architectures with ERRest

• Allows for flexibility (turning) as the future changes

Page 19: Lean Startup with WebObjects

Content Warning...

Page 20: Lean Startup with WebObjects

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

Page 21: Lean Startup with WebObjects

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

Page 22: Lean Startup with WebObjects

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...

Page 23: Lean Startup with WebObjects

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????

Page 24: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

At the BeginningA lean startup

Page 25: Lean Startup with WebObjects

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

Page 26: Lean Startup with WebObjects

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

Page 27: Lean Startup with WebObjects

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...

Page 28: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Development Environment

Page 29: Lean Startup with WebObjects

IDE

• MacBook Pro OS X 10.6.7

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

• WOLips

• JRebel

• Subclipse moving to EGits

• Workspace Mechanic

Page 30: Lean Startup with WebObjects

Additional Tools

• Subversion Clients

• svnX

• Versions

• GitHub Client

• Gitbox.app

• Tower.app

Page 31: Lean Startup with WebObjects

Version ControlIssue 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

Page 32: Lean Startup with WebObjects

Database

• MySQL 5.+

• MySQL Admin

• DbVisualizer

• Local tunnels to Production, Staging environments

Page 33: Lean Startup with WebObjects

EOF and Database Independence

• EOModel with Prototypes

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

Page 34: Lean Startup with WebObjects

Why DbVisualizer?

• Connections

• Development

• QA

• Production

Page 35: Lean Startup with WebObjects

Development Databases

• Production Replicated for testing

• Sales Demonstration

• Simple Switch of the jdbc property in Properties.<me> file

Page 36: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

QA/Training Environment

Page 37: Lean Startup with WebObjects

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

Page 38: Lean Startup with WebObjects

QA Clients

• OS X Firefox, Safari

• Parallels with Virtual Machines

• Windows 7, IE 8

• Windows XP, IE 7

• iPAD Safari

Page 39: Lean Startup with WebObjects

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

Page 40: Lean Startup with WebObjects

Training Environment

• Dedicated URL for testing ERRest client applications

Page 41: Lean Startup with WebObjects

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

Page 42: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Production Environment

Page 43: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Production EnvironmentAt the Beginning

Page 44: Lean Startup with WebObjects

Virtual Server Per Customer

Virtual Server

per Customer

Virtual Server

per Customer

Virtual Server

per Customer

Page 45: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Production EnvironmentNow

Page 46: Lean Startup with WebObjects

Current Production Environment

Apache 2+

Application Server

Database Server

Page 47: Lean Startup with WebObjects

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

Page 48: Lean Startup with WebObjects

Production EnvironmentMerging 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

Page 49: Lean Startup with WebObjects

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

Page 50: Lean Startup with WebObjects

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

Page 51: Lean Startup with WebObjects

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

Page 52: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

Additional ToolsStartup is not just about the technology

Page 53: Lean Startup with WebObjects

Other Tools

• Verizon FiOS

• WebEx or GotoMeetings

• GotoWebinar

• Grasshopper

• Constant Contact

• SalesForce.com

• Google Analytics

Page 54: Lean Startup with WebObjects

MONTREAL 1/3 JULY 2011

CreditsTravis Britt, Kieran Kelleher, Pascal Roberts

Page 55: Lean Startup with WebObjects

Q&A

MONTREAL 1/3 JULY 2011