One thing that we like to do with most of our bigger projects at VMLY&R is an Arc Review (short for Architecture Review). These are the common questions we ask ourselves and answer then review as a team to make sure it all makes sense before we go off and build the site.
Below is a template for conducting an Arc Review. I will try to make it as easy to follow as possible. I will be putting in a placeholder for the company name where relevant.
Here is the list of questions we ask in an Arc Review:
New platform for [COMPANY]?
New systems integration?
Budget is over $500k?
Potential for PII/PCI?
Market-driven launch date?
Team members and Stakeholders?
Client Engagement Model
We then do an Application Overview. In it, we ask for Key Assumptions, Known Risks, Best Practices & Reuse, and Opportunities & Growth. Then we list any diagrams. After that, we go through a series of categories of questions.
What technology stack does the project primarily use (including client and server-side)?
Does this project utilize a web content management system (WCMS)? If so, which one(s)?
What programming languages does the project use?
What frameworks does the project use?
Does this project include a mobile application or use single-page web applications?
How is authentication handled for this project and if custom-built, did you follow [COMPANY]‘s Application Security Guidelines?
Does your project handle session management using a well-known implementation or, if it is custom-built, did it follow [COMPANY]‘s Application Security Guidelines?
Does your project include personalization? Is personalization out of the box functionality? 3rd party? Custom?
Does your project include A/B Testing and if so, how is it tracked and reported on?
List any 3rd party web services this project uses.
List any custom-built web services that are publicly exposed or utilized by external processes.
List any systems you are integrating with your project (e.g. eCommerce, CRM, email, ESB).
How does your project handle search and does it use any 3rd party platforms?
How does your project handle caching (CDN, other)?
What platforms, infrastructure, languages, and technologies does your API leverage for implementation and how are they used?
What API standards are you using?
How does the API handle authentication and authorization?
Is the API idempotent, other than POSTs? If not, explain why.
How does the API present error messages to consumers? How are errors logged?
Describe any caching or compression used by the API
How does the API implement pagination?
Will you provide content negotiation?
Is the API versioned, and if so how is the version represented to the client?
Does the API support bulk operations? If so, how is the request formed?
How do you document your API?
Are [COMPANY] internal team passwords, secrets, admin accounts, etc. stored in Enterprise Lastpass?
Have you scheduled or already executed an application security scan?
What Personally Identifiable Information (PII) or Payment Card Industry (PCI) compliant data does your project capture?
What data encryption techniques does the project use (in transit, at rest)?
How is authentication and authorization accomplished for the application?
What is the plan for Incident Report and Response (client specific, [COMPANY] standard)?
What is the plan for proactive patching of servers, platforms, and libraries?
If there is a security breach, is there any risk of [COMPANY] liability? If so, has this liability been reviewed with the senior leadership team?
What is the plan for executing a threat assessment?
Did you evaluate your project against the GDPR Checklist? How are you addressing concerns from the CCPA?
Have you read the MSA between the client and [COMPANY] to see if there are any specific security practices or concerns detailed in that document?
How is the team handling code reviews? How often are they scheduled?
Describe the automation for builds, deployments, and testing.
Does your project use any mapping and geolocation tools?
Does your project use video or other rich media types?
Does your project collect form data? Where and how are you storing that data?
How does your project handle exceptions and how are you logging?
Web Content Management System (WCMS):
Which WCMS does the project use and what were the drivers for the selection of the WCMS?
What is the process for creating new pages/content and moving them between the environments (dev, qa, prod, etc.)?
Are there any current or future plans to display content in a language other than the primary language and will it require additional coding for support?
What “Out of the Box” features of your platform are, or are not, included in your architecture (e.g. Drupal LIFT, Adobe Analytics/target, Sitecore Forms for Marketers)?
Describe the process for Application/Unit testing
Describe the process for Sanity testing
Describe the process for Integration testing
Describe the process for Business Process testing
Describe the process for Performance (Load) testing
Describe the process for Analytics testing
Describe the process for Globalization testing
Describe the process for Browser/Device testing
Describe the process for Regression testing
How are analytics gathered and reported on for the site (e.g. Google Analytics, WebTrends or Omniture)?
Do you have a baseline for what is currently being captured?
Has configuration been done to ensure that internationalized sites are tracking appropriately with the baseline?
Where are the environments (production and non-production) for the project hosted?
What level of responsibility does [COMPANY] have for supporting infrastructure for the project?
When provisioning, what Infrastructure as Code (IaC) tools are in use? What IaC tools are used to manage configuration?
Did you validate the project against the “TechOps New Project Planning Checklist”?
Performance and Scalability:
Are there any planned promotions or heavy traffic tied to the site/launch?
What processes are in place to mitigate high traffic that affects performance?
Are there other services the project depends on able to scale and meet traffic demands? Are you implementing any caching to protect those services?
Did you validate the project against the Performance Checklist?
Where are baselines and requirements recorded for performance and scalability?
How are 301 redirects being handled to ensure SEO ranking is not adversely affected?
Did you validate the project against the “Technical SEO Checklist for Website Launches”?
- Did you validate the project against the “Site Prelaunch Checklist”?
With this, we hope to ensure greater rates of success in a project and make sure we don’t forget anything along the way. Good luck and happy software building.