In the Traditional way of Software development, the work gets executed in sequential manner such that the programmer does the programming and hands it over to the tester for testing and so on. In Agile and Scrum, it is a different approach that introduces concurrent engineering. Teams work in overlapping mode to get the work done. This helps to achieve two things:
Reference:
https://www.mountaingoatsoftware.com/blog/the-importance-of-overlapping-work-in-agile?utm_source=drip&utm_medium=email&utm_campaign=Agile+Teams%3A+Concurrent+Engineering+%26+
Overlapping+Work
- Faster value delivery: It takes less time to implement a feature end to end
- Accelerates feedback: Early and continuous feedback between different layers of Software development
- The conversation begins with the Product Owner explains the functionality of the user story along with expected acceptance criteria as below:
- Username and Password must be mandatory
- User should be able to auto fill the Username and Password through secured “Remember me”
- User should be given 3 attempts to try correct password
- After 3 attempts a “Forgot Password” or “Username” option should be given
- Upon successful login, the user should be taken to the “Search” functionality
- During the conversation the Developers (Programmers, UI, DB, etc) can ask queries to the Product Owner for any clarifications
- After the conversation, the Developers will have a very short conversation to decide where to start and continue the development of the user story
- They may start first with the happy path programming, for example if the user enters the correct Username and Password then the user is logged in, if wrong details entered then the user is not logged in. The Programmer, Database developer can start working on this piece while the Tester starts writing the Test cases and test plan for these two cases. In parallel the UI developer starts building UI elements and the Javascript developer starts frontend validations
- Whoever completes their part (Front end developer, Javascript developer, Programmer, Database developer) may handover that part for tester to start testing
- Once the happy path part of the Login is done end to end, all the Developers will discuss what can be done next. So they may take up autofill the details through secured “Remember me” and 3 attempts to try the Password.
- For the above again the cycle continues for front end, validations, database, tester work to be done in parallel.
- Once it is done, they may take the rest of the acceptance criteria
- Team members collaborate more often which improves the Trust and Relationship
- The team becomes more agile
- Product Owner gets chance to see the user story come up continuously
- Faster feedback from different people in Developers
- Easy to measure the progress
- Overall shorter time to complete the feature
- Knowledge of the Product Backlog Item is spread across multiple people
- Clear and non overlapping (independent) acceptance criteria
- Product Owner and Developers should be highly collaborative throughout
- Make sure all the clarifications are cleared by the Product Owner for all acceptance criteria
- Cross functional teams will help to make parallel programming more effective
- Avoid Finish-to-Start task relationship
- Use Start-to-Start and finish together
- Incorporate extreme programming practices such as pair programming
Reference:
https://www.mountaingoatsoftware.com/blog/the-importance-of-overlapping-work-in-agile?utm_source=drip&utm_medium=email&utm_campaign=Agile+Teams%3A+Concurrent+Engineering+%26+
Overlapping+Work