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