With increased competition to get the products out in the market, software development teams are all looking for ways to reduce the time to develop software.
Reuse is one of the ways that can help to reduce the time to market and increase the quality of the deliverables.
Reuse practices can be imbibed within the agile framework in various stages of the development cycle.
Let’s look at how we can avail the benefit of reuse at multiple levels in the agile software development life cycle from release planning to deployment.
After the team get overview of the goal of the release planning and details of the user stories planned, the team can look at the internal/external assets such as reference frameworks, similar projects ,similar existing user stories that could be used for the planned user stories.
Every user story in the release plan can be updated with list of reusable assets that have been identified so that teams can discuss it during sprint planning.
For using any external asset(open source, 3rd party,..) licensing of the assets can be planned before the start of user story implementation.
Team can get into details of reuse assets discussed during the release planning for the user story.Team can also discuss about the low level code reuse that could be applicable for the user story.
This activity needs to be under taken couple of weeks before starting of the sprint to make sure that we can plan about the reuse technicalities.
Stand up meeting
5 minute planning(before scrum meeting) by each team member to identify how effectively the work done by them(What i did from last scrum meeting) can be shared with the scrum team during the scrum/standup meeting will enable reuse of code, design during the sprint execution.
Before starting on any task, Team member’s should think and try to search for existing asset that will help in task implementation rather than reinventing the wheel.
Good coding practices such as using common coding guidelines, design patterns,etc w, code reviews(by pair and once a week by entire scrum team with couple of members from other teams) will also help team share the knowledge about the code and in turn spike the code reuse.
In multi scrum team setup, Demo meetings provide platform to share the work(business and technical) done by multiple teams, which is a big input for reuse activities.
In retrospective, team can reflect on how reuse of design, code and test was considered during the sprint.
Knowledge sharing sessions about the design, code,etc regularly by teams will help to know the right people to approach for specific assets/knowledge area.
Enable tooling to put each work product, whether they are requirements, code snippets, frameworks, requirements, test cases onto a common platform, where members could search, rate, discuss and download.
Build communities for areas such as architects, testers, development tools, practices, technologies. These community forums will help to share the assets across the projects and departments