On The Fence Development – What’s All That About Then?

I’ve been contracting for over seven years now and during that time I’ve had  a number of clients, friends fellow contractors ask me “…why ‘On The Fence‘? What’s that all about??”.

Ignoring the fact that the blog I initially hosted on this domain was about my experiences with Linux and Open Source while working day to day as a .NET Developer using Windows, I think that the name fits – it’s all about not putting all your eggs in one basket as it were.

I think that there is quite a wide line between trying to be a ‘Jack of All Trades’ and a ‘One Trick Pony’ and as a Contractor I think that this is a good place to be.

Some will disagree, Jon Sonmez of Simple Programmer certainly advocates specialising and he’s retired in his 30’s so maybe I’m the one who’s wrong here. But while I can see the merits in this approach and it worked out well for Jon, I don’t think that being ‘the expert in the Xamarin.Forms Grid control‘ is going to get me that far (that’s not to say that the Grid control is a trivial thing of course).

I also don’t think that trying to be a Guru in Desktop, Web and Mobile development  is viable either. We all know that this would be virtually impossible to achieve with the technology shifting under us all the time.

I do however think that to be a viable option as a contractor you need a good foundation knowledge, spread of skills across various technologies and a desire to learn as you go (let’s face it – nobody can know it all).

So that’s what I aim for.

I have experience with Desktop development using WinForms, WPF and am starting to look at UWP.

On the Web development front I am currently working with a client who has an ASP.NET WebForms application and another using MVC while a freelance project has me ramping up on ASP.NET MVC Core development on a Linux host.

With Mobile development I am all Xamarin, whether it’s the native flavours for Android and iOS or Xamarin.Forms. Hooking these up to Azure (or ASP.NET WebAPI Core) backend is also within my skillset.

I’m always looking to keep my skills up to date, while able to support existing deployments using older technologies – and even migrate them forwards should that be the desire.

So, what will 2018 be the year of?

They say that life is what you make it so time to make some resolutions …… yes?

Well, if John Sonmez from Simple Programmer is to be believed – maybe not!

I receive regular email updates from the Simple Programmer website and the one I received on 27th December caused me to stop and think.

Probably based on one of John’s blogs posts from 2016, the subject of the email was ‘Dont make resolutions the New Year, make a commitment’. Now I initially thought that these amounted to the same thing but changed my mind after reading the parting shot of the email which read:

Let me put it this way, when you need to take a taxi to the airport, do you want your taxi driver to resolve to be there at 8:30 AM or do you want him to commit to being there at that time?

The answer is obvious (hopefully) so I’ve decided to make some commitments for 2018:

  • I will watch at least one Pluralsight course a month
    • My technology focus will be .NET Core, Azure, ReactJs
  • I will watch at least one Xamarin University session (attending those required to maintain my certification)
  • I will blog twice a month (not including the Online Tool of the Month posts)
    • To keep me honest I will probably post findings from my Pluralsight courses and Xamarin investigations (proving that I’ve actually honoured the above commitments)
    • Other topics will include Privacy and Encryption which seem to be bad words these days

So that’s what I will commit to this year – maybe I’ll be in a position to commit to more but I’ll review my progress mid-2018 and see how I’m doing.

Book Review (of sorts): The Complete Software Developer’s Career Guide – John Sonmez

I’ve been following John Sonmez via his Simple Programmer site for a few years now and have found his approach to be very refreshing. He doesn’t go down the ‘warm and fuzzy – it will all be fine’ road, oh no!

John has a no BS approach which leaves you in no doubt that if you want to succeed in your career as a Software Developer (or anything come to think of it) then it will take hard work and dedication on your part – it won’t just happen.

Now, we all read technical books (or blogs) on a pretty regular basis in an effort to keep up with the ever changing world of technology, but what about those softer skills? Would you really buy a general ‘self help’ book? I mean, Software Developers are special right!?

I have previously read John’s first book, Soft Skills, which I found very enlightening, so when I received an email from John asking if I wanted to read a preview of his new book, The Complete Software Developer’s Career Guide, I hit the reply button straight away. [John contacted a number of his subscribers with the same request – I’m not special in that regard 😉 ].

The Book

Now this is a big book – some 800+ pages – so it was going to take a while to read. However, this all coincided with my planned two week holiday so being able to lay in the sun and just read a book for a few days was not going to be a problem.

The book is aimed at Developers at any point in their career – even if they haven’t actually started yet. I’ve been developing for over 15 years at the time of writing this but I resisted the urge to skip the early sections thinking they would be irrelevant and found some of the advise in them very informative.

In our industry it is very difficult to keep up with the tidal wave of technology; what should you learn and what should you ignore. Entering the realm of Software Development must be extremely daunting these days and John helps to distil it down to what you need to know when starting out. Remembering that it is not all about writing code – far from it.

Once you have an idea about what you need to know – how on earth do you learn all this stuff? Well, John has you covered again with his technique for learning things quickly. Obviously you won’t be a guru on the subject but John’s technique is all about identifying what you need to know to be productive and knowing when you have gained that knowledge.

The book covers areas including Source Control, Continuous Integration and Debugging – but not at a technical level. There is no explanation of why you would ‘rebase’ a git branch or how to configure Jenkins. Instead John highlights the needs for expertise in these areas.

For me Sections 4 & 5, Working as a Developer & Advancing your Career, were the most interesting. Being able to code like a ninja is great, but if you can’t function in the workplace then you are not going to realise your full potential as a Software Developer. Soft Skills are important in all walks of life but in careers like ours, i.e. heavily technical, I think that they are vital.

From how to deal with your boss and co-workers, communicating your ideas and how you should dress (regardless of whether others are wearing t-shirts and flip-flops) there’s a chapter for that. There are also chapters to make sure you come out of your annual review walking tall instead of looking at the ground, on negotiating a pay rise and dealing with prejudice and discrimination.

My Final Thoughts

As I’ve already mentioned, I’ve been following John for a while now and have already read the Soft Skills book so I know his style. With that in mind there was a lot of content in the book that I’ve either read before (on his blog or his previous Book) or watched on his YouTube channel.

So, I think that the book is a waste of time – yes?

Not at all. There was so much content in this book that I think every developer should have a copy (and John is not paying me to say that).

Throughout the book there were times when I found myself thinking “am I doing that and if not why not”. Other times I found it reinforcing what I already do in my professional life – from the way I dress at work to the way I interact within a team. This was valuable insight and empowering to me – knowing that I was not just being eccentric.