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?
8 thoughts on “Improve your developer skills today!”
Hum. Seems to me that this is mostly a list of popular buzzwords about metho and architecture, right? To build apps that solve needs in the real world (read outside no-constraints corporate environments), developers need to go beyond the fads and adapt to their clients business expectations, as the SME market is becoming increasingly wary of the damages of overspecialization and of architectural trips.
I’ve read all the books and done all the kinds of projects most developers only dream of. KISS, hands-on R&D experience and business awareness would be my top picks in a developer.
The best counsel I can give here is that the greatest Technical skill you can have is Business Awareness. By far the most powerful and versatile ability to wield in development environments, and the most difficult to find in highly technical people. In Microsoft circles, there’s about two dozens of these polarized professionals in Montreal (I’ve contacted most of them) and these guys are building IT startups, not applying market standards for corporations.
Just my 2 cents.
Hi Étienne, thanks for your input, I agree this is mainly a list of buzzwords with references. But I still think developers should know the meaning behind these words and apply it in the best world.
I agree that business awareness is an excellent skill to have. In fact it’s a nice skill no matter what your position is.
But as you say it’s not easy to have at the same time that skill and technical knowledges. Thats why we have Product Owners or Business Analyst to gather this information in complex environment to remove that responsability of the developers.
It would be nice to all be expert in everything and be able to use many skills (be polarized) at the same time and some people do achieve it in startup when they have gather enough expertise or innovation capabilities.
I have to say that startup brings their challenges and some accomplish great things, but many fail too. Corporate developers also achieve awesome realizations as some company close.
Accomplishment in life isn’t just define by “coolness” or innovation. Some people prefer to work for corporate company that change the world with more man power. Others put a greater value on stability and ensuring employers care about them than remuneration and on the edge innovations that may not last over time.
But I will add your input as I see value to it as many other “people skills”.
All fair points. Nice update btw. Also, I brought up the startup example as a mean to demonstrate entrepreneurs willingness to tackle risks, resulting in a tentative to make the whole market benefit from their technical expertise. Of course, startupping isn’t an end in itself.
‘Looking forward to your next posts!
Have a nice one
Thanks Étienne, have a nice one too. I will try to present my next idea in an interesting way 😉 Although, I may require some autorization to post it first, we will see.
Otherwise, I also got some ideas that I want to develop blog posts on:
– Recognition Strategy
– Agile processes example and discussion
– Smart phone Apps with C# .NET MVC (basic) http://monotouch.net/
What do you think would be the most interesting part?
It’s a highly personal question. I always like discussions about trends applied to specific contexts. Like, say, a comparative analysis of recent IT leadership techniques in SME and corporate environments, or the different approaches when building Smart Phone apps as a marketing tool versus strictly for social media products.
It articulates the subject in a dynamic environment and shows the trend under stress against your own experiences.
But this is your blog. Whatever floats your boat, really…
Thanks for you comment, I will look into that 🙂
I would have like to see you blog, but it seems to be private.
Humph. I’ve been maintaining a private blog of my IT startupping efforts in Montreal, among other things. Your comment triggered a review of the reasons I keep the blog private. Thank you, and I’ll keep you posted if I chose to open it up.
It is not my first time to visit thiis site, i am browsing this website dailly and
take good information from here everyday.