Tuesday, May 05, 2009

Old v. New

Some quick thoughts about the comparison between old Enterprise projects and the new style of web projects:

Category Enterprise Web
Project style Waterfall - Design, Develop, Test, Deploy, RUP Agile - rapid iterations
Innovation Top-down (Business Requirements) Bottom-up (Google 20% time, Communities)
Team structure Vertical - developers code complete spikes from web to database Horizontal - front-end team is split from (and a client of) back-end team
Software COTS Products - expensive, well-supported commercial products (ATG, IBM, MSFT) OSS Frameworks & Patterns, Community-led initiatives, Bespoke 'glue', products for specific functionality
Development Environment Restricted software tools, homogenous environment, complex approval process Heterogeneous, open, embracing new technologies (best tool for the job)
Development Languages Java, .NET, C++ PHP, Perl, RoR, Python, JavaScript, …
Buzzwords SOA, SaaS, Compliance jQuery, Memcache, LAMP, JSON, API, OAuth, Mashup
Web Services SOAP,WS-* REST, JSON, POX
Documentation Offline - licensed developer accounts; formal training courses Online - updated on the fly, available to everyone
Architecture N-Tier Distributed
Infrastructure Best-of-breed hardware, design against failure Low-end hardware, expect failure and design accordingly
Database Normalised, strict schema, referential integrity Denormalised, dirty data, lazy-loaded
Data access Direct – ODBC, JDBC, ADO.NET ORM Framework, Cache, Services
Requirements Secure, Scalable Flexible, Fast
Hero clients / employers Government,
Google, Yahoo!, Amazon, eBay, Facebook, BBC, Twitter, Next Big Thing
Success Criteria How big can we grow, how secure is our data? How fast can we react to change, how far can we scale?

No comments: