Download - 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
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
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
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
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
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
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
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
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
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
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
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
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
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
SCRUM (CHICKEN AND PIGS)
Team roles1048697 Product Owner1048697 Scrum Master1048697 Team
Managing requirements1048697 Product backlog1048697 User stories