Upload
wo-community
View
1.239
Download
1
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
MONTREAL 1/3 JULY 2011
Lean Startup with WebObjectsPaul D. YuFDL Solutions, Inc.
• Define lean startup
• What or why not WebObjects/WOnder
• At the Beginning of the business
• Development
• QA
• Production
Agenda
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 WOnderWhy 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
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
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 BeginningA 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 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
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 EnvironmentAt the Beginning
Virtual Server Per Customer
Virtual Server
per Customer
Virtual Server
per Customer
Virtual Server
per Customer
MONTREAL 1/3 JULY 2011
Production EnvironmentNow
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 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
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 ToolsStartup 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
CreditsTravis Britt, Kieran Kelleher, Pascal Roberts
Q&A
MONTREAL 1/3 JULY 2011