How Agile Collaborators Learn
How Agile Collaborators Learn
Most products are developed by a team, and these achievements are the fruit of teamwork.
Software product development is now agile, and most often uses the Scrum approach.
Just putting a bunch of people together in the same open office will not produce a high performance agile team. Quite a few companies find that out the hard way.
How can you increase the odds to create an environment where agile teams bloom and perform?
Attitude versus Aptitudes
Your business is nothing more than the collective energy and efforts of the people working with and for you.
If you want to make your business better, invest in your people. They’ll get the job done.
Learn and pass on good development practices through pair programming, mob programming and coding dojos. Promote Communities of Practice CoP.
It is not enough management commit themselves to quality and productivity, they must know what it is they must do.
Such a responsibility cannot be delegated.
You have hired good people. Train them to improve and perform better.
Continuous Learning and Improvement
CFO to CEO: “What happens if we invest in developing our people, and they leave us?”
CEO to CFO: “What happens if we don’t, and they stay?”
Secure collective knowledge of the code through code reviews, pair collaboration or collective work. Avoid any developer working solely on his own on a specific piece of code. Crafting successful software applications is teamwork. Encourage your collaborators to write blogs and ask questions in forums such as Stack Overflow.
Establish together development standards and keep them up to date. Nurture these good practices through Communities of Practice CoP.
Rely on tools such as continuous integration, static metrics and architecture fitness functions to shorten the feedback loop. See our post about pragmatic software craftsmanship.
Establish a culture to use current versions of programming languages, tools and libraries.
On a previous project, we had planned a coding dojo ritual once every two weeks, during which we shared our practices with some perspective over the product. It was an occasion to experiment with new technologies, assess their match for the project needs, share new coding techniques, and update our standards together.
Professional software developers should have formal training in software development. You should expect from a person working forty hours a week for the next forty years to pursue a bachelor or a master in computer science.
You should expect regular certifications in the used technology stack or development approaches. A Scrum master two days training does not make somebody an expert. A specialist refusing to invest in a two days training is probably not a member you want in a high performing team.
A professional engineer should read multiple technical books each year.
Create psychological safety in the workplace.
The major responsibility of senior management is hire the best collaborators, retain and develop top collaborators, and respectfully off-board departing collaborators.
- Hiring and on-boarding collaborators,
- Nurturing and development of collaborators,
- Off-boarding of collaborators,
- Move collaborators to the learning zone and let them thrive.
Nurture a culture of learning through training on the job, learning from external sources - such as reading high quality blogs - and formal education - such as bachelor or master courses for example agile architecture -.
Please reflect how you encourage continuous learning in your organization.
Training is always an investment and never a cost point. Look how you budget and account training activities. Are they really investment positions?
Agile Architecture Series
The agile architecture track contains the following blogs
We also published our agile architecture course (3 ECTS) used for teaching computer science students at bachelor level at Swiss technical universities.