15
ORGANIC IDEAS: TO BUILD A LARGE-SCALE WEBSITE Oliver Cai

How To Build Website

Embed Size (px)

DESCRIPTION

organic the expertise's idea together for reference

Citation preview

Page 1: How To Build Website

ORGANIC IDEAS TO BUILD A LARGE-SCALE WEBSITE

Oliver Cai

EXPERTISE SAY

Think of big picture start small thing Separate separate and separate Does not reinvent the wheel

WEB20 CONCEPTS

Blog Wiki Social network PodCast RSS API (RESTful) Mashup Widget (Gadget) AJAX

WEBSITE PROCEDURE

Requirements and features Information Architecture Technical Architecture amp Framework Development Architecture Test amp Deploy Fine-tuning support amp maintenance

INFORMATION + ARCHITECTURE

I The communication or reception of knowledge or intelligence

Text Images Music Video

o A The art or science of building

Design Structure SpaceFunction

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 2: How To Build Website

EXPERTISE SAY

Think of big picture start small thing Separate separate and separate Does not reinvent the wheel

WEB20 CONCEPTS

Blog Wiki Social network PodCast RSS API (RESTful) Mashup Widget (Gadget) AJAX

WEBSITE PROCEDURE

Requirements and features Information Architecture Technical Architecture amp Framework Development Architecture Test amp Deploy Fine-tuning support amp maintenance

INFORMATION + ARCHITECTURE

I The communication or reception of knowledge or intelligence

Text Images Music Video

o A The art or science of building

Design Structure SpaceFunction

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 3: How To Build Website

WEB20 CONCEPTS

Blog Wiki Social network PodCast RSS API (RESTful) Mashup Widget (Gadget) AJAX

WEBSITE PROCEDURE

Requirements and features Information Architecture Technical Architecture amp Framework Development Architecture Test amp Deploy Fine-tuning support amp maintenance

INFORMATION + ARCHITECTURE

I The communication or reception of knowledge or intelligence

Text Images Music Video

o A The art or science of building

Design Structure SpaceFunction

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 4: How To Build Website

WEBSITE PROCEDURE

Requirements and features Information Architecture Technical Architecture amp Framework Development Architecture Test amp Deploy Fine-tuning support amp maintenance

INFORMATION + ARCHITECTURE

I The communication or reception of knowledge or intelligence

Text Images Music Video

o A The art or science of building

Design Structure SpaceFunction

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 5: How To Build Website

INFORMATION + ARCHITECTURE

I The communication or reception of knowledge or intelligence

Text Images Music Video

o A The art or science of building

Design Structure SpaceFunction

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 6: How To Build Website

IA DELIVERABLES

Page Flow Diagram

Interaction diagram

Flow chart

Wireframe

Mockup

Paper Prototype

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 7: How To Build Website

TECHNICAL ARCHITECTURE CONSIDERATION

Partition everything ndash ldquoyou eat an elephant only one bite at a timerdquondashldquoIf you canrsquot split it you canrsquot scale itrdquo Decouple Separate Granularity

Asynchrony for everywherendash ldquoGood things come to those who waitrdquo

Automate everythingndash ldquoAutomation will save time and eliminate human

errorshelliprdquo Assume everything fails

ndash ldquoBe Preparedrdquo

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 8: How To Build Website

BIG DIFFERENCES FOR A LARGE-SCALE No Database Transactions

ndash To guarantee availability and partition-tolerance trade off consistency (Brewerrsquos CAP Theorem)

Functional Segmentationndash Segment databases into functional areas ndash

user item transaction product account feedback

Horizontal Split Absolutely no session state ndash Transient state maintained by URL Cookie Scratch database

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 9: How To Build Website

ASPACTS OF TECH ARCHITECTURE

Static Content Image Servers Database (Agnostic) Cache Mirror Load Balance

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 10: How To Build Website

TIPS

Try and incorporate Horizontal DB partitioning by value from the beginning into your design

Loosely couple all modules Implement a REST-ful framework for easier

caching Perform application sizing ongoing to ensure

optimal utilization of hardware

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 11: How To Build Website

DEV TEAM INFRASTRUCTURE

1 A development methodology2 Coding standards amp name rules3 Source Code Management Systems4 Bug Tracking Systems5 Internal Documentation6 Unit Test amp Functional Test

Tie it all together to create a semi-automated developmentinfrastructure to save your developers from boring andrepetitive tasks

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 12: How To Build Website

DEV TEAM INFRASTRUCTURE

Automation 1 Changelog Emails

Use your source code management(SVN CVS GIT) ldquopost-commitrdquo hook to send an email to your dev team mailing list whenever a commit is made

Automation 2 Bug Closures On Commit

When developers commit new code to the repo it often fixes a bug so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis Bugzilla)

Automation 3 Rebuilding Docs

Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team

Automation 4 Automatic Unit Testing

Set up test mechanism that can check specific functionality of your code on a test server then have it triggered on a post-commit hook that updates a local working copy before running the tests

Automation 5 Release Management

pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 13: How To Build Website

TESTING ECOSYSTEM

Different tests different objectives

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 14: How To Build Website

MOVE TO AGILE

1048697 Before1048697 Marketing driven releases1048697 Big feature promises up-front1048697 Committed release date that always slipped

1048697 Now1048697 No committed release date1048697 Technical Community Previews (TPC)1048697 Incorporating customer feedback

Iterative incremental steps for changeable requirement

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories

Page 15: How To Build Website

SCRUM (CHICKEN AND PIGS)

Team roles1048697 Product Owner1048697 Scrum Master1048697 Team

Managing requirements1048697 Product backlog1048697 User stories