Reduce costs and risks by improving software engineering skills.
Common reasons to adopt new technical practices or to improve the existing ones:
- Minimize number of bugs reported in production
- Reduce release cycle
- Raise to the technical challenges of Scrum or Kanban for incremental delivery
- Bring your programmers up to speed to modern development techniques
Who is involved
Depending on the scope and objectives of the assignment:
- technical leads
Mozaic Works mentors are proficient in technical practices such as:
- Code reviews
- Unit testing
- Continuous integration
- Incremental design with TDD
- Acceptance Test Driven Development
- Pair programming
- Static code analysis and useful metrics for code quality
You can benefit from their practical experience by applying one or more of the above on your production code.
Some of the techniques we use for helping developers acquire new skills are:
- Micro-trainings, short, less than an hour trainings for micro-techniques.
- Power of example: demo a technique to a group of developers and then encourages them to use it. Useful for reducing resistance to adoption. Use it for example for adopting programming without using the mouse.
- Experimenting: apply some of the techniques on a piece of real code for a limited amount of time (about 1 hour). If it’s not good enough at the end, discard it. Otherwise keep it.
- Pair programming, especially useful for the initial phases of acquiring a new skill and for moving beyond obstacles.
- Games, ping pong TDD, write the worst code you can, pair without talking (communicate effectively through code).
- Coding Dojo, a pair is writing code on the projector, everyone else is looking. One of the members of the pair changes periodically (e.g. after 10 minutes). Fast feedback and discussions are clarifying the reasons of technical decisions.
- Code Retreat, one day event of practice, with volunteer participation. Very effective for learning TDD and pair programming and having fun at the same time.
Each client organization has an unique culture, team members with diverse experience and skills, and business goals. Depending on your specific needs, a mentorship program can be created for your colleagues in order to improve their software engineering skills.