We talk about Agile and Scrum a lot. Therefore in this article I’m not going to explain Agile software development, I'm going to introduce a new software development process to follow when there is a small team, that is, a team of one or two members. (Obviously, we can have scrum if we have 3 or more people in the team).
Problems with small teams when we follow "Scrum"
The Scrum ceremonies are going to put a lot of overhead on the team than the value they deliver. In my opinion, Scrum’s “sweet spot” is 7, plus-or-minus 2, i.e. between 5 and 9 team members. If teams are very small they just wouldn't get the value for the time spent. If teams are too big, the ceremonies take too long and waste the time of whomever that are not actively participating in it.
So what other options are there?
One good suggestion is to follow the XP (Extreme Programming) process with pair-programming and Test-Driven Development. I came up with the the process using Scrum and XP called "One or Two Agile".
Inheritance from "Scrum"
- Estimations and Techniques
- Sprint planning
- Sprint Review
- Sprint Retrospective
- Scrum Master (Obviously)
- Product Owner (Definitely Yes)
Inheritance from XP
- Iterations (Weekly cycles)
- Releases (Quarterly Cycles)
- Daily scrum is replaced with a special event called Story Telling. Scrum Master and the Development team will have a Timebox of five minutes to talk at the beginning of the day about work planned to carry out in that particular day.
- Tech Follow-ups — There might be a multiple number of Technical Follow-up meetings to overcome technical issues and to ensure that the development team follows the correct Technical Architecture. There can be a Lead or a Architect involved in the process. Meetings should be one on one.
- Cross functional — One person many roles (Not too many, just testing and development). This is not a might. This is a should.
- Dev-Tester (Cross functional) - 2
- Scrum Master - The Coach
- Product Owner /The Customer - The Tracker
- Stories — Same old story, Scrum! you are not gonna miss this!
- Git Flow Model with PR (Pull Request to review the code). Iteration/Functional Release to the development branch (Yes for the QA) quarterly release to the master branch (When released).
- CI/CD (Continuous Integration and Continuous Development)
- Ten minute Releases — Releases cannot take more than ten minutes. If people waste time waiting for releases it is a waste of time.
- Pair Programming if required, with the lead. (Dear Scrum Master, don’t ask lead to check the code and get back. reserve his/her time to check the code with the developer)
- TDD — Test Driven Development
- Incremental Design — Don’t start with highly complex designs. Leads, simplicity is the ultimate sophistication. (Dear Scrum, still you are not missed) Think simple and leave it to be complex if need be.
This article may not be interesting if you don’t know the concepts of Scrum and XP. Try it and share the experience with me. Then we can fine tune the process to help others to deliver good quality products using the small team with full transparency to the client.