Vendredi passé, j’ai eu la chance de participer à l’Agile Tour Lausanne 2016. Une des conférences que j’ai particulièrement apprécié est celle de Charles-Louis de Maere, Agile coach chez Pyxis en Belgique. Elle couvrait principalement le modèle de Christopher Avery sur la responsabilité ainsi que son implication au sein de nos équipes de travail.
Ce qui m’a le plus frappé dans ce modèle, c’est à quel point on peut facilement le transposer à différentes situations de notre vie professionnelle et personnelle. Il devient alors évident que nos blocages n’ont pas aidé à résoudre le problème ou à atteindre notre objectif et qu’une évolution vers les étapes suivantes aurait été préférable.
Le stress et la résistance au changement nuisent également à cette évolution, mais il est possible de s’entraîner afin de choisir des réactions plus adéquates.
La responsabilité c’est quoi?
Selon moi, être responsable implique d’assumer la réalisation d’un objectif ou la résolution d’un problème en étant motivé tout en sachant prendre des décisions lorsque nécessaire. Pour bien réussir dans cette voie, il est préférable de:
- Désirer améliorer la situation
- Prendre conscience de la situation actuelle
- Confronter le ou les obstacles
- Collaborer avec les différents intervenants
Analyser la situation, décider d’un plan d’action et déterminer les différentes options possibles sont également des étapes qui peuvent faciliter nos actions responsables. Aussi, il vaut mieux montrer l’exemple et être responsable que de l’exiger de nos collègues.
Gains de la responsabilité
Renier un problème, blâmer quelqu’un, se justifier, prendre les reproches sur soi, s’obliger à tolérer une situation ou ignorer un problème peuvent souvent demander plus d’énergie qu’une résolution efficace d’un problème. De plus, c’est beaucoup moins pénible pour le moral et on se sent beaucoup plus facilement motivé.
Rapidité de résolution de problème
Un problème sera plus rapidement et efficacement résolu lorsque les personnes travaillant dessus sont responsables et focalisent leur effort.
Quelqu’un de responsable est habituellement mieux perçu par ses collègues et pourra propager sa motivation au reste de l’équipe de travail.
Quels autres gains la responsabilité apporte-elle?
In a domain where many keep their kid heart, what can we say about the industry maturity? Even if software development is a young discipline, we have seen a lot of practice changes and improvements in the last 10 years. One of the big steps in my opinion is that we now acknowledged that change is part of our daily job. It has made the industry search for better managing and processing ways. Other discipline paradigms have been observed, duplicated and adapted to our context. That has made our body of knowledge growth and new ways of doing things emerge.
I personally think that we are a people business, our industry require motivated people willing to work as a team to get results. That’s the reason why it’s more and more important to consider the human aspects more than the technical aspects. It’s also a society tendency: people desire more human jobs. Team that will succeed will be those who understand that fact and act in this way by caring about employee, team synergy and ensuring it’s an applied value by everyone.
What are the software development hot topics?
Agile Architecture – conference resume
What I liked about that conference is that it presented a good summary of the hole DevTeach event, by presenting a little of every main concerns and ideas raised in the other conferences. You can follow Mario on his talk show (French).
In your opinion, what are the other emerging concerns and ideas in software engineering?
I recently went to dev teach Montréal 2011 and read a lot about agility and what came out recently as more and more emergent is discussions regarding Scrum VS Kanban and other software engineering best practices and toolboxes. Scrum is being seen as a revolution that is not always suitable in all context (strong hierarchy company, maintenance project, …) while Kanban is seen as a continuous flow methodology seen more as an evolutionary approach more easy to implement and best suited for maintenance. We also see emerge combinations of both methods.
What experts say?
Here’s a mind map of the notes I took at Joel Semeniuk’s conference at devteach Montréal 2011. He his a Microsoft Regional President, MVP, CSM and CSP.
A Dash of Kanban – Conference resume
On my side, I had the chance to work in a real Scrum process and some of the nice benefits of it rely on the fact that you obtain a motivated and united team that have clear goals and liberty to achieve them in the most efficient way they found for their context. Scrum have clear and simple artifacts and ceremonies to follow to continuously improve the process, ensure everyone is in sync, obtain feedback from the client and understand what need to be done. Although I have seen Scrum struggle with maintenance project and bug fixing, since issues often need to be solved right away and can’t wait the next iteration even if it will disturb the team it’s most of the time really urgent. This presentation talks about an interesting way to combine both of them and I would like to test it and see it work for real to see the challenges and outcomes of that method.
- What do you think is coming in software engineering best practices?
- How could we combine Scrum and Kanban successfully?
Being able to develop software today is more applying best-practices than being knowledgeable in a specific technology. Why? Maybe because technology evolve so fast that it’s better to understand principles than technicality. Obviously a minimum of technical skills and experiences are required to perform best.
This makes university degree workers and autodidact people more interesting employees, since they are open to change and apply best practices. Many call it Software Development Maturity or Software Engineering Culture which is link to a way of thinking and a continuous desire to improve and be aware of new ideas in the industry.
Here’s a list of what I consider be essential knowledge for today’s developers.
6 Fundamental Knowledges
- SOLID (Code magazine article, Wikipedia)
- Object Oriented Programming (OO)
- Design Patterns (Do Factory)
- Domain Driven Design (DDD)
- Agile / Scrum (Agile Manifesto, Scrum org, Agile Scout)
- Test Driven Development (TDD ) (Arrange Act Assert, Eric Mignot, TDD trainer)
Is software maturity enough?
We are all humans… Yes we are! As such we have needs and abilities we should respect. Software development was often considered as a nebulous science where people are resources that can be interchanged. Well we learned, sometime the hard way, which it’s not the case, some people achieve better with specific “people skills” that support and healthy team and we should encourage more these behaviours.
Here’s a list of developer people skills:
- Business Awareness – Understand expected behaviors and value
- ROI thinking – Consider efforts VS added value
- Tolerence to changes – It will occurs, be ready for it and embrace it
- Recognize – Take time to acknowledge other’s accomplishment
- Team spirit – Ability to be efficient in a team
- Communication – Active listening and clear explications, don’t hesitate to interact!
- Open minded – Accept comments and try to improve overtime
- Organisation – Work on top priority first
How could I improve?
As anything in life, you will have to work to get results. First you can participate in communities of your area (ex: Communauté .NET Montréal, Agile Montréal), you can listen to podcasts (ex: Visual Studio Talk Show, Vox Agile) or event read about emergent architectures (ex: CQRS => Greg Young Blog post, Another Greg Young Blog post, Julien Letrouit’s Blog). Try to become a better team player, ask yourself what you can do to be more efficient in your context.
- Any other ideas to improve that article?
- What do you think is the most difficult to achieve?
Here’s an interesting article about Motivation best practices that I read and resumed. I thought it would be nice to share it and try to start a discussion to get your opinion.
How can we start to motivate employees?
- Use communication, transparence and trust
- It requires self-awareness and get over industry paradigms
- Focus on employee engagement, interactions and happiness
- See engagement as an investment instead of an expense
- Focus on the company culture in the hiring process
- Let employees drive company culture and regularly review it
- Reach innovation and creativity through open roles and responsibilities over control and rigid processes
- Implicate and invite employees in decisions
- Bring value and quality to the clients over short term gains
What do you think?
- What would be the impacts of allocating more time and resource to continuous improvement and employee’s implication?
- Example: Google allocate one day a week (20%) of employee’s time to innovation and it’s clearly integrated to their culture and products.
- What are the chances that self-management employees do their best for the company success versus do minimal work when not supervised?
- Hard one since every individual is unique, although people with the same culture and values tend to act the same way.
- Individual objectives recognition and engagement surely influence that behaviour.
In the article, I disagree with one company idea that HR department is not required. I think it’s important to have people dedicated to improve company’s best practices, cultures and employee engagement. Without time and resources allocated, these company’s attribute won’t improve alone. Although I like the idea of all employees being able to provide their input on these subjects or anything related to the company.
These best practices also align with software development agile processes: agile manifesto