Development Practices That I Want To Use In Future Roles

I have just left one company for a new role. These are a few notes that I would like to bring forward to future companies:

  • Empower the devs add cloud resources within a limit say $100 per month without having to ask. The meetings to request this will cost more than the benefits. Dev teams will spend less time waiting.
  • Have a bell that can be used to trigger team timeouts. Hold the discussions as soon as they are needed. Decisions should be made by the team. Go one better than us and actually write up the decision including why’s and assumptions.
  • When adding a new piece of technology always consider how to replace it. Cloud services do stop with anything between 1 and 6 months notice.
  • Actively monitor the cloud infrastructure bills, both current and projected. Warn the team daily if a threshold is breached.
  • Never let the build stay broken. You can only ignore tests for a fixed period of days. This is only to be used for infrastructure failures.
  • Deploy frequently. Weekly at a minimum. Code not deployed will rot. Use feature switches if possible (but ruthlessly remove them after a feature is live). This does allow deploy from master.

Script to help review Elixir

@rem fix a.test.exs
@rem removes the pending tag from the test and adds _2 to filename
@echo %1 | sed -e "s/.exs/_2.exs/" > temp.txt
@set /p Filename=<temp.txt
@cat %1 | grep -v "@tag :pending" > %Filename%
@rm temp.txt
elixir %Filename%

view raw


hosted with ❤ by GitHub

Or on a mac/linux

grep -v @tag *_test.exs > test.exs && elixir test.exs