1. Processes Associated with Web Development
  2. Classic Development techniques
    1. Offer excelent suppot and forums
    2. offer major update a month after release
    3. These methods are well known (tried and tested)
    4. Use classic models in conjunction with next generation methods
  3. Realize what the web is
    1. application platform
    2. development platform
    3. delivery platform
    4. execution platform
  4. KIS
    1. keep it simple/small
    2. Solve the problem and nothing else
    3. less employees - 3 is magic number
    4. keep budget and time fixed, scope can be reduced if setbacks occur
    5. stay lean- more flexible
      1. Essays on Web 2.0 Dvelopment - http://gettingreal.37signals.com/toc.php
    6. Get software runing asap
    7. avoid preferences - decide the minor settings
    8. Don't write functionality specs they are meaningless
    9. Development with the software's "personality" in mind
  5. Consider Open source
    1. worldwide support network
    2. reduced cost (if developers are skilled)
    3. Collective intelligence
  6. Database management
    1. Ongoing operations are very important (maintenance)
    2. E.g. Google, Ebay, Amazon
      1. Design Patterns for the Next Generation of Software http://oreilly.com/web2/archive/what-is-web-20.html
    3. E.g. google adsense - let your service be in harmony to achieve collective power through many small sites (The long tail)
    4. leverage customer self service and algorithmic data magement
    5. Database becomes living and thinking when combined with the collective thought of people
  7. Agile Development
    1. Minor updates
      1. {Internet and World wide web how to program Page 77/78 - Deitel 4e}
    2. Increased amount of updates
    3. updates are seamlessly made in web environment
    4. software can remain in perpetual beta
  8. Start by Getting HTML Up and Running
    1. Everyone will see what it looks like (visualization)
    2. implementation comes later (with better clarity)
    3. Get the design first (development will be more efficient)
    4. focus on center of page and build outwards
  9. Work in Iterations
    1. Let project morph and evolve
    2. don't expect it will be right first time
    3. leads to liberation
  10. Lightweight programming models
    1. loosely coupled systems
    2. fragile
    3. Extremely flexible
    4. Efficient
  11. Innovation in assembly
    1. Use existing ideas but improve them
    2. create value by assembling solutions in novel or effective ways
  12. Trust Users in development
    1. collective intelligence
    2. unique hard to recreate data sources that get richer with user involvement
    3. treat users as co developers
  13. Break it down
    1. Small problems will be quickly solved
    2. Big problems have no deadline