# Cardley - sprint 1 presentation

---
## The reality

---
## Things that went well (Rog)
- Front end and Back end teams / 2 repos
- Wrote basic API docs up front
- Maintained docs as we went
- Sorting out ESLint/Prettify configs up front
- Deployed early with CI and mandatory linting
---
## Struggles with time (Tom)
- Ambitious idea >10 pages >15 API routes
- To plan well
- To refactor design based on user testing
- To familiarize each other with each other's work
---
## Planning (Ivo)

---
### How we plant to improve our planting

---
### Improve Planning (Vat)
- How we log issues (project board)
- Over-optimistic estimation
- Keeping track of actuals (estimate issues not just stories)
- scheduling (e.g. having daily targets, time to share knowledge)
---
### Roles (Vat)
- Vatsal - ScrumMaster
- Ivo - DevOps
- Roger - QA
- Tom - UI/UX
---
### QA (Roger)

---
### Strategy
- Get buy in from whole team
- Remove disincentives and show value
- Using TDD with everyone at an early stage
- Having good examples at an early stage
---
### Issues
- Refactoring database connection / build code
Using dotenv so no db name in package.json
```javascript
const pg = require('pg');
require('dotenv').config();
// Set the default database to be the test database if the TESTING
// environment variable is set to TRUE
if (process.env.TESTING === 'TRUE') {
process.env.PGDATABASE = process.env.TESTDATABASE;
}
const db = new pg.Pool({
// Pool is initialised with the environment variables PGDATABASE,
// PGUSER and PGPASSWORD by default. If process.env.DATABASE_URL
// exists in the environment (as it does on Heroku for example)
// that value will override the above variables
connectionString: process.env.DATABASE_URL,
});
module.exports = db;
```
### More issues!
- Initial issues with concurrency, seperate files
- Teething troubles with jest and asyncronicity
```javascript
Jest did not exit one second after the test run has completed
```
- Still not figured out mocking db with supertest/nock
- So all tests are integration tests right now!
---
### Next challenges
- Same strategy for front end
- Front end mocking and testing examples
- Intergration of db testing with CI/CD
---
### DevOps (Ivo)
- Linting - Airbnb config combined with husky so linter runs on commit and if there are linter errors the commit is cancelled
- no console logs, no unused variables etc.
- Originally described as 'linting hell'
- Roger now has 'profoundly mixed feelings about it'
- This sums up my feelings too
---
- CI Pipeline
- local repo > remote repo (GitHub) > Travis > GitHub (OK or not OK) > Heroku (if OK)
- works better on Heroku than Netlify
---
### UI/UX (Tom)
- Material UI
- Great tool to speed up development process
- Confusing at first, might take some time to understand it
- makeStyles and Styled Components within one component?
- Styled Components
- Style Guide
- React Router
---
### Scrum Master (Vatsal)
- not leaving "SGC" till friday afternoon... i.e. having short discussions (in morning) during week to help fascillitate good team work.
---
### What we discussed: (Vatsal)
Went Well:
-- how often to swap pairs
-- how often to have stand ups
-- shortening stand ups
-- keeping discussions to after stand up
---
Discussed:
-- different opinions (voting)
-- fascillitation of 4 person group discussions...helpful (occasssionally too formal)
-- schedule time to share knowledge
---
## Questions

{"metaMigratedAt":"2023-06-15T08:35:03.654Z","metaMigratedFrom":"Content","title":"Cardley - sprint 1 presentation","breaks":true,"contributors":"[{\"id\":\"0e4f99ec-9dff-4b8d-9f98-aa3f5444e9ce\",\"add\":2751,\"del\":711},{\"id\":\"15813e8a-4a82-4c1f-a14a-8d0c01639173\",\"add\":2703,\"del\":2034},{\"id\":\"89613c1e-a1b5-4e82-9c3e-7813a336c5a6\",\"add\":590,\"del\":28},{\"id\":\"ae8469a7-16c2-4aaa-9ad3-48227eb54cd9\",\"add\":632,\"del\":74}]"}