Category

Free thoughts

The curse of unfinished side projects

Side projects

If you are a developer, you have surely once in your career, started a little side project either because you had a “great” idea, or because it was a very gloomy rainy day outside and never finished it. In many industry, included the IT one, this is called “the curse of unfinished side projects”.

This comic, is probably one of the most shared across the social media, and it summarise this topic perfectly.

side projects comics
side projects comics

Many people see this has a complete failure, a waste of time and energy, but I see it differently and in this post I will share my idea with you.

No idea is a bad idea

Side projects are hidden pearls. It may be time wasted for many, but in reality any minute spent in a side project is worth way more than a minute spent in your day to day routine. Maybe after spending a night coding an horror game, you realise that it is not for you, or spending your two weeks holiday on the perfect APP made you realise that it wasn’t that perfect or unique, but all this time has an unique purpose. It forces you to think outside of the box, it brings you into unfamiliar ground, and forces you that focus and solve a problem after another, and this is what make this time unique.

The power of a side project does not live within it final product, but in the process required to achieve every small step. It is a free invaluable learning progress.

Since using a scrum methodology in work, I have started to retrospect (scrum retrospective) any work I do, that is a small one day project or a month long. I try to analyse all my actions as often as possible. This helps me understand what need improving and what really could be avoided in the future.

Share the knowledge

Too often, this unfinished side project are not shared with colleagues and family. We too quickly discard these to be a waste of time, without actually having other people opinions and I have learned in recent events that the power lies in sharing these ideas with people, side project are not always left unfinished just because we are lazy, but it may be because we have a full time work and a family to look after, and not enough time to spend on them. But this does not mean that it was the wrong idea or that it should not be brought forward.

Side project are usually created when our body produces an overwhelming dose of adrenaline after having an idea and this is what enable us to stay awake all night.

This is not sustainable, and sharing the information with other could actually help you. First, speaking with others and getting their opinion could actually make you realise that the idea, was not that silly overall and build some more adrenaline. Then, having open discussion with people and keep them updated will actually help you in setting a routine to continue to work on the project. Lastly, it could actually help you find some support, that may be just morale, technical or another pair of hand to share the work.

One in a million

So far we have spoken of unfinished work, and given enough reason to continue to have this small experience. But what if, the project you started this weekend is really its the “one in a million” project that is not going to be left unfinished.

This is another great aspect of side projects, there is always a possibility of creating something that is actually worth all sleepless night. That could one day help you create the next unicorn company (definition of unicorn company).

Conclusion

This blog and website started with a side project, a big feature implemented in the company I work was originally a side project knowledge, and a close friend is actually leaving the dream on what was a side project.

Side project are hidden pearls, we just need to learn how to harvest them. With a bit of organisation and help from others, these projects could actually turn in something tangible and useful.

The power of mentoring

Intro

What a better way than start this post with this amazing quote from P. Collins. Teaching and mentoring is not sorely aimed at sharing your knowledge for others to learn, but it is the process in which you personally develop.

“In learning you will teach, and in teaching you will learn.” Phil Collins

It is well known that the IT industry is filled with many people suffering from “The imposter sindrome”, but in many instances these individuals are the best that the market is able to offer, and lean them toward a mentoring career, can be an eye opening experience.

What is mentoring

I have been looking for a nice definition for mentoring, and I finally found one that was short and concise on the oxforddictionaries.com

An experienced and trusted adviser.

I like this quote because it does not go in details, neither does it mention higher qualification or age or company position. It focuses on what really matter Experience and trust.

Experience and trust

Experience is of course a core required for mentorship, as a mentor is supposed to “guide” an individual toward an improvement of some sort. But this experience is not specific to one skill(more details below). During my last 4 years at Vizolution I have been able to be thought by some great mentors, each of which have inspired me in different ways, but what was really great was seeing employers coming in, learn, and share that knowledge with other people.

To mentor someone you need to have some skills to share. What this mean is that you could be very good in keeping notes, and therefore still be able to mentor and support a very disorganised Senior developer, or you could have adapted to scrum faster than your fellow colleagues and help them to get up to speed ( both true stories).

I really think that teaching and mentoring are completely two different way of sharing knowledge. When using the word mentoring, you are implying that you are taking “ownership” of an individual supporting him/her all the way, while teaching is just about knowledge transfer, and does not focus on how much the audience assimilate.

How to mentor

I personally love to mentor, but even more being mentored as I like to see how different people approach this subject and try to learn on the way.

To mentor people you do not need a bright star on your shirt, or a cool Job title on your name badge, what you really need is a state of mind, one that will put other people before any sort of priority, because as I said before you are taking ownership of someone skills and therefore have a duty to support them every step of the way.

I have always enjoyed teaching other people what I knew, but it has just been recently that I have been able to learn how to mentor people. I am currently supporting over 40 developers, and I try to build a specific road map for each of them to help them improve where they need it the most.

Lead the way

There are many different example that I could share, but the message is always the same, lead the way and make sure you are being followed (always make sure you are not talking by yourself, involve the person, test how much they are learning, let them take control).

If you are dealing with a junior developer, instead than just show the correct code to complete a task, you should first of all try to understand the thought that went behind his/her solution, and try to guide the programmer by showing  them the possible improvements and the different paths that could have been taken, so that the correct code becomes just a simple tool of a greater lesson.

Of course the mentoring tactic need to change depending from the individual. Some people want to be supported and helped and don’t really value themselves, but there could be other that are very confident and need a lighter support, they may not even know that you are mentoring them, but this is when mentoring really stands out.

Why do mentoring

It take time, energy, it is very difficult and sometime the person that you are mentoring may not even be aware of it, so why should you even bother.

Personally I think that a great mentor, is a great leader. Mentoring is the best way to learn your strength and your weakness. It help you with personal development and improves your existing skills.

I talked about “the imposter syndrome” above, because developers are well know for not being very social, and in many cases this is also accompanied by a sense of failure. Unfortunately, this developers, are usually the most skilled, but their knowledge is not shared. I have seen the great effect of mentoring on a specific individual, starting to share his personal skills made him realise how good it was, he improved his self esteem, and made him a key employed in the company. We usually focus too much on the core skills (in this case coding), and we forget that people may need help in different areas.

Who can mentor

It should be clear by now, that everyone should mentor. We may all do it differently, and some of us may not succeed at it at first time, but this does not mean that mentoring is not for you.

As mentioned above, I love to being mentored, I like to find the strength in people and let them teach me what their really know by sharing their love for something.  It is not important if they are junior, senior, or even if they do not work in my same sector, if someone has a specific skills that is worth sharing, it is important to accept your weakness and ask for support.

Conclusion

I am currently the technical lead, but this does not stop me going to admit that there are developers that are better than me in specific skills, and this is what mentoring did to me.

Mentoring and being mentored showed me my weakness, but it also showed that there is not harm in being open about them, because I also know to have many different strength. This state of mind is what helped me and there is no better or easier way to achieve it than by offering your help and open yourself to support others.