Background: I've recently started at a company and I've bee tasked to essentially modernize the development team/dept. Currently the problems are:
- Developers currently develop on a live site.
- Sites are backed up but they have no source control.
- No staging process (dev, QA, UAT, live).
- No automated build process.
- No SDLC.
- Minimal (if any) documentation.
- Sites use different technologies.
- Timelines are insane because of huge development delays.
- Development team aren't aware of common tools that can assist with debugging/development.
The plan My thoughts so far are (in no specific order):
Bring all projects up to using the same technologies.
Throw all active projects into source control.
Implement staging so that we have Dev, QA, UAT and Live.
Implement CI/CD
Introduce tooling and setup training for development team.
Implement coding standards.
Introduce a methodology more suited to how the team currently operates, most likely Agile or Scrum and the tools and documentation templates that go with it.
The Questions
Have you been in this scenario before? How did you address and overcome these obstacles? How long did it take to implement? (as a rough idea)
How would you prioritize the tasks listed above?
What would you recommend I look into/research? (I'm particularly interested in terms of CI/CD and just how to negotiate such a huge task)
I feel like I need a kind of Maslow's hierarchy of needs to get more of an idea of where/how to start and what to build up to.
Closing notes Any resources, links, just a pooling of materials, etc. would be greatly appreciated.
Sorry - I know this could be considered a vague question and would give an opinionated response but that would provide the most benefit to me since if I knew exactly the right questions to ask I wouldn't need help because I could use a search engine.