Saturday, February 29, 2020

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 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 development good practices through pair programming and coding dojos. Promote communities of practice,
It is not enough that management commit themselves to quality and productivity, they must know what it is they must do. Such a responsibility cannot be delegated
-- W. Edwards Deming
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?”
-- Peter Baeklund
Secure collective knowledge of the code through code reviews, by pair or collectively. Avoid any developer working on his own on a specific piece of code. 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.

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.

For instance, 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 project. It was an occasion to experiment new technologies, assess their match for the project needs, share new coding techniques, and update our standards together.

Formal Training

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 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; but 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.

Leadership Responsibilities

 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.

No comments:

Post a Comment