Will software projects be done in Kanban or Scrum?

June 18, 2011

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

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.

Questions:

  • What do you think is coming in software engineering best practices?
  • How could we combine Scrum and Kanban successfully?

Improve your developer skills today!

April 12, 2011

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

  1. SOLID (Code magazine articleWikipedia)
  2. Object Oriented Programming (OO)
  3. Design Patterns (Do Factory)
  4. Domain Driven Design (DDD)
  5. Agile / Scrum (Agile ManifestoScrum orgAgile Scout)
  6. Test Driven Development (TDD ) (Arrange Act AssertEric 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éalAgile Montréal), you can listen to podcasts (ex: Visual Studio Talk ShowVox Agile) or event read about emergent architectures (ex: CQRS => Greg Young Blog postAnother Greg Young Blog postJulien Letrouit’s Blog). Try to become a better team player, ask yourself what you can do to be more efficient in your context.

Questions

  • Any other ideas to  improve that article?
  • What do you think is the most difficult to achieve?