1.2. Environment Requirements
Before you start developing, you need to understand the processes and technology environment for the project. Environment specifics influence many of your decisions such as the project type, hosting, backup plans, development approach, and additional software you'll need. We compiled the following questions to get you going with the types of questions to ask.
- How many developers are working on this project?
- Do developers collaborate or work independently?
- What source control system are you using?
- Are any external resources being used for development?
- Are the front-end and back-end developed separately?
- What is your DevOp strategy?
- How often are you planning to deploy new features/code?
- What is the acceptable downtime during deployments?
- Are you planning on having automated deployments?
Infrastructure (DEV, STAGE, QA, PROD)
- Are there multiple servers for load distribution?
- Are the servers located in different geographical locations?
- Is there any integration, testing, staging, or other environments?
- Will content owners work in production environment directly?
- Are you planning to use online marketing and/or e-commerce features?
- Is hosting on-premise or in the cloud?
- Is there a preferred hosting provider (e.g. Azure, AWS)?
- Is the SQL server dedicated or shared?
- Do you require any type of auto-scaling?
- Should the media and design assets be distributed to different geographic locations with CDN?
- Do you need SSL for the public portion of the site?
- What health monitoring and backup tools are in place?
- Based on current traffic and projections, what is the expected average and peak traffic daily/monthly (e.g. unique visitors, pageviews, file downloads, etc.)?
- What is the required maximum response time for a single page request to load?
- Are there different maximum response times for visitors from different geographic locations (e.g. US, APAC)?
- What is the disaster recovery strategy?
- How often is the database and site files backed up?
- What are the expectations on what is recoverable?
- What is the tolerance for time to recovery?
Here are some example scenarios to demonstrate how knowing or not knowing the answers to these questions can help or hurt your project.