Development process
Codebase and types of deploys
Codebase is common for all deploys. A deploy is a running instance of the app.
- development - deploy for developers; every developer should have his deploy to not disrupt work of others
- test - deploy for QA, sometimes if there is no QA and contacts with business is less formal it can be omitted and on staging are performed UAT
- staging - deploy to preview for business persons
- production - deploy for end users
Config and environment variables
Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which requires strict separation of config from code. Config varies substantially across deploys, code does not.
The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally.
User Acceptance Testing (UAT)
User acceptance testing (UAT) is the last phase of the software testing process. During UAT, actual software users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications.
UAT is one of the final and critical software project procedures that must occur before newly developed software is rolled out to the market.
UAT is also known as beta testing, application testing or end user testing.
Continuous Integration
Automatic process of test, build, code quality metrics, etc., e.g. tools are CircleCI, Travis, Jenkins
Continuous Delivery
Automatically deploying new versions of app for staging, test, production, etc.
Agile, Scrum
Code review
Checking code quality of another person for bugs.
Bug bash
In software development, a bug bash is a procedure where all the developers, testers, program managers, usability researchers, designers, documentation folks, and even sometimes marketing people, put aside their regular day-to-day duties and "pound on the product"—that is, each exercises the product in every way they can think of. Because each person will use the product in slightly different (or very different) ways, and the product is getting a great deal of use in a short amount of time, this approach may reveal bugs relatively quickly. Wikipedia
Spike
A spike is a product-testing method that is used to determine how much work will be required to solve or work around a software issue. Typically, a 'spike test' involves gathering additional information or testing for easily reproduced edge-cases. The term is used in agile software development methodologies like Scrum or Extreme Programming. Wikipedia
Backlog grooming, retrospective, review, planning
These are terms related to agile methodologies. Backlog grooming helps understand tasks in a backlog and estimate them, retrospective helps summarize last period in product development and helps to face problems. Review presents what was done in last period of development. Planning is an organization of work for the next period.