MONTREAL 1/3 JULY 2011Lean Startup with WebObjectsPaul D.YuFDL Solutions, Inc.
Agenda•   Define lean startup•   What or why not WebObjects/WOnder•   At the Beginning of the business•   Development•   QA...
What is a lean startup?•   Use of free and open source software,•   Application of agile software development methods, and...
Purpose of a Startup?•   Make Money!!!•   Some money from a many of people = good business•   Does not have to be the $100...
Free and Open Source Software•   The idea is to minimize the upfront investment in development    tools and infrastructure...
Agile Development•   Agile development can be traced back to Chrysler Financial’s    eXtreme Methodology    •   They used ...
Customer Centric Development•   Listen to your customers•   Build what your customers want quickly•   If your customers fe...
Avoid VC $$$•   Once you take VC money, you are no longer working for    yourself…•   Founders often are left without a ch...
Choose Your Partners Wisely•   Choose your partner like you would choose your spouse…•   May be not•   Easier to get toget...
Lean Startup is a Business•   Not just about software development•   Also product deployment and operational maintenance• ...
Convergence of Events•   Cloud Computing    •   Software as a Platform    •   Software as a Service model•   Open Source t...
My Lean Startup•   EOModel Design Started December 2008•   First Prototype/Demonstration February 2009•   First Customer U...
MONTREAL 1/3 JULY 2011WebObjects 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 ...
Why WOnder?•   Open source•   Fix problems with underlying WO•   So many features beyond basic WO•   Once you WOnder, you’...
Rapid Iterations•   Quick iterations in the same direction may be easy•   Remember every iteration cost money•   But what ...
WO and WOnder Architecture       and Options                                             Multi-headed•   Multi-headed Hydr...
Content Warning...
Challenges of using WebObjects•   WebObjects is DEAD!•   Not Open Source or Doesn’t cost $50,000•   Tough to sell in the c...
Challenges of using WebObjects•   No Marketing Air Cover for the technology!!!•   No Corporate Sales Force for the “produc...
Challenges of using WebObjects•   No documentation•   No good examples•   RoR is better•   Lack of available developers•  ...
The Opportunities of Using           WebObjects•   But lean startups are not large corporations•   WebObjects and WOnder i...
MONTREAL 1/3 JULY 2011At 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...
Second things second•   Design the EOModel•   Build an application architecture with a solid foundation to build    from, ...
Then•   Seek out your local university or chamber of commerce to get    incubator/advice for entrepreneurs•   Rapidly buil...
MONTREAL 1/3 JULY 2011Development Environment
IDE•   MacBook Pro OS X 10.6.7•   Eclipse Helios Service Release 2 (~/Appications vs /Applications)    •   WOLips    •   J...
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    •   Git...
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...
MONTREAL 1/3 JULY 2011QA/Training Environment
Continuous Build Server•   MacMini moving to Cloud Server•   Jenkins•   Manual task to pull from Wonder•   Job to build pr...
QA Clients•   OS X Firefox, Safari•   Parallels with Virtual Machines    •   Windows 7, IE 8    •   Windows XP, IE 7•   iP...
Training Environment•   iWEB Server (seems cheaper than my production environment)•   CentOS•   Oracle Java VM 1.6+•   Pro...
Training Environment•   Dedicated URL for testing ERRest client applications
Training Environment•   Experienced major performance issues with undersized training    environment•   Concurrent simulta...
MONTREAL 1/3 JULY 2011Production Environment
MONTREAL 1/3 JULY 2011Production EnvironmentAt the Beginning
Virtual Server Per Customer         Virtual    Virtual    Virtual         Server     Server     Server          per       ...
MONTREAL 1/3 JULY 2011Production EnvironmentNow
Current Production Environment                   Apache 2                        +               Application Server       ...
Production Environment•   SliceHost is the ISP•   Database Server on a 512 MB slice•   Web and App Server 2GB slice (2 IPs...
Production Environment          Merging Databases•   Contracted with Kieran Kelleher•   Kieran designed an automated scrip...
Production Environment•   SliceHost backup service is nice, cheaper than EC2•   SliceHost create new slice based on backup...
Turning on EO Migration•   Discussions of “White Labeling”•   Requests for local installation, traditional software licens...
Approach to EO Migration•   Existing Database•   Generate EOMigration from current EOModels•   Extract Database Content fo...
MONTREAL 1/3 JULY 2011Additional ToolsStartup is not just about the technology
Other Tools•   Verizon FiOS•   WebEx or GotoMeetings•   GotoWebinar•   Grasshopper•   Constant Contact•   SalesForce.com• ...
MONTREAL 1/3 JULY 2011CreditsTravis Britt, Kieran Kelleher, Pascal Roberts
MONTREAL 1/3 JULY 2011Q&A
Upcoming SlideShare
Loading in …5
×

Lean Startup with WebObjects

1,211 views
1,085 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,211
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lean Startup with WebObjects

  1. 1. MONTREAL 1/3 JULY 2011Lean Startup with WebObjectsPaul D.YuFDL Solutions, Inc.
  2. 2. Agenda• Define lean startup• What or why not WebObjects/WOnder• At the Beginning of the business• Development• QA• Production
  3. 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 Blanks Customer Development process• And minimize venture capital investment
  4. 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. 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. 6. Agile Development• Agile development can be traced back to Chrysler Financial’s eXtreme Methodology • They used NeXTSTEP!!!
  7. 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. 8. Avoid VC $$$• Once you take VC money, you are no longer working for yourself…• Founders often are left without a chair
  9. 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. 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. 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. 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. 13. MONTREAL 1/3 JULY 2011WebObjects and WOnderWhy did I choose to use WO and WOnder for my lean startup?
  14. 14. “Provides the first two floors of a five story building” Steve Jobs
  15. 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. 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. 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. 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
  19. 19. Content Warning...
  20. 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. 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. 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. 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. 24. MONTREAL 1/3 JULY 2011At the BeginningA lean startup
  25. 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. 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. 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. 28. MONTREAL 1/3 JULY 2011Development Environment
  29. 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. 30. Additional Tools• Subversion Clients • svnX • Versions• GitHub Client • Gitbox.app • Tower.app
  31. 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. 32. Database• MySQL 5.+• MySQL Admin• DbVisualizer• Local tunnels to Production, Staging environments
  33. 33. EOF and Database Independence• EOModel with Prototypes• Porting from MySQL to other DB’s should be no problems
  34. 34. Why DbVisualizer?• Connections • Development • QA • Production
  35. 35. Development Databases• Production Replicated for testing• Sales Demonstration• Simple Switch of the jdbc property in Properties.<me> file
  36. 36. MONTREAL 1/3 JULY 2011QA/Training Environment
  37. 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. 38. QA Clients• OS X Firefox, Safari• Parallels with Virtual Machines • Windows 7, IE 8 • Windows XP, IE 7• iPAD Safari
  39. 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. 40. Training Environment• Dedicated URL for testing ERRest client applications
  41. 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. 42. MONTREAL 1/3 JULY 2011Production Environment
  43. 43. MONTREAL 1/3 JULY 2011Production EnvironmentAt the Beginning
  44. 44. Virtual Server Per Customer Virtual Virtual Virtual Server Server Server per per per Customer Customer Customer
  45. 45. MONTREAL 1/3 JULY 2011Production EnvironmentNow
  46. 46. Current Production Environment Apache 2 + Application Server Database Server
  47. 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. 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. 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. 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. 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. 52. MONTREAL 1/3 JULY 2011Additional ToolsStartup is not just about the technology
  53. 53. Other Tools• Verizon FiOS• WebEx or GotoMeetings• GotoWebinar• Grasshopper• Constant Contact• SalesForce.com• Google Analytics
  54. 54. MONTREAL 1/3 JULY 2011CreditsTravis Britt, Kieran Kelleher, Pascal Roberts
  55. 55. MONTREAL 1/3 JULY 2011Q&A

×