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?
Advertisements

How GREAT companies recognize their employees?

March 11, 2011

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