Tuesday 18 September 2012

The power of the team


As mentioned in my last post among my roles I am, at present, primarily the main developer of the C# client application. I also mentioned that I was transferring to C# and that aside of some small projects in the past, this is my largest and most involved project in the technology.

The problem is that often I am the only developer on this project.

What does that mean? Well  can be a bit more blasé about making minor code changes directly on the trunk/main branch (version number increments and the like), but it also means that when I hit an issue I have nobody to discuss this with. This causes an additional delay in finding an appropriate solution.

Whilst the value of teamwork has always been obvious to me, this situation has bought it home to me on a couple of occasions. Two heads really are better than one.

With others working on a team I often find ideas and experience sharing multiply (at least up to a point). I'm not talking about pair programming (of which I have had only good experiences), but the fact that individuals will have different experience and approaches, and in some situations this proves to be invaluable.

Of course we all need to know how to work on our own (sometimes for extended periods of time, or entire projects), but having others to hand to bounce ideas off and suggest solutions is, I feel invaluable.

Naturally the effectiveness of this depends heavily on the nature of those involved. Those involved in software development are often not the most gregarious or social of people, however even those bordering on extreme autism (as I sometimes encounter in this industry) can turn out to be valuable colleges with the right approach.

Of course, there are also occasions where individuals are just plain obstructive, I just hope these people are quickly identified and moved on to more suitable roles (such as standing in line at the job center).

One other key skill I observed in my very first boss (whom I learned much from that I still use to this day) is not being to proud to learn from those with less experience than yourself. To paraphrase what I remember him once saying to me; "If you suggest fifty things which are just plain wrong, and only one thing that I had never occurred to me, then I'm better off because I have learnt something from you."

Crucially, he also had fifty opportunities to educate me in some way, which certainly happened.

Working alone is great, and sometimes required of desired, but even when this is the case having a team to fall back on is, I feel, invaluable. Nobody knows everything, but most people know something worthwhile... sooner or later.

Friday 14 September 2012

Changing times


Since joining my current company two years ago I have been on a single project, transferring from a Java server development role to a position that also sees me as the main C# client developer, a situation that I actively pursued. This has helped keep my interest in the project alive(we developers are a fickle bunch who get easily bored) and allowed me to extend and expand my experience practically at the same time.

During this period the project has seen an initial major delivery and a second large delivery, but along with my mutating responsibilities the composition and size of the team has also varied during this period. As the bulk of the development work has been delivered the team has shrunk in size in all areas, development, test and management resources have come and gone, but mostly gone.

The time spent here has given me an opportunity to work with some good people, in terms of both talent and personality. Several of the people I've had the pleasure of working with have made my job better and more enjoyable than it may have otherwise been, and I'm pleased to say that comes from people both above and equal to me, as well as those with more and less experience than myself.

One of the things I have noticed is how specialised our current roles make us over time, and I believe this is something that is getting more pronounced as the breadth of technologies and libraries expand. That's not really news, it's something I've noticed before, along with probably virtually all others in this profession I would imagine. It should have come to be expected to a certain degree.

By specialised I mean that depending on what our current task has involved, or more specifically involves on a regular basis, each of us inadvertently becomes more knowledgeable in those particular areas than those we visit infrequently, we become a domain expert. Again, this is only to be expected, by my point is just how pronounced this knowledge unbalance now appears compared to how I viewed this in the past.

Years ago I knew people (and was hopefully one myself) who were competent in vast areas of a language or libraries, but specialised in a subset of those. Now it appears (at least to me) that the programming domain has grown to such an extent that we are becoming increasingly ignorant of areas in which we have no recent experience. The difference here is that where we once may have "known a little", we now know "a very little or nothing at all".

This is to be expected as the technology expands, but I feel it reveals an underlying problem in recruitment going forward, both in my future roles as an interviewer and an interviewee.
I suspect everyone who has looked for a job in development will have seen plenty of jobs requiring experience in just about everything going in a particular technology, most of which we will be aware of to a certain degree; some we will know inside out, others we've not visited for some time will be "rusty", and the final few we've never knowingly encountered.

As time goes by and technology expands this category of inexperience continues to expand rather than shrink. But here's the thing - if it's expanding for me with over twenty years experience, how are people with just a couple of years able to claim knowledge in these areas?

That's quite simple, just by having a basic understanding. I can probably tell you enough about rewiring a house to make you think I would be able to do it. If I actually did then re-wire the house, you'd probably find you got through a lot of fuses (possibly also a few calls to the fire brigade).

The same is true for the people claiming experience in multiple unrelated categories. I may be able to read an article or overview on a new technology/library/methodology, and this will be enough to get me through that section in an interview, but should I then need to use that skill I'd be starting from scratch - the exact same position as somebody who claimed to know nothing.

This raises two issues itself. 1. How can the interviewer tell how much you actually know from the interview (or indeed experience to a certain degree), but more importantly 2. How much does that actually matter?

The more important thing is to find somebody who has a core competence and who is willing to embrace new concepts, anything else can be learnt. We do it all the time, it's regularly part of the job. The trouble is if we're not learning the right things to tick off the right boxes we appear less skilled.

I'd argue that it is often those who don't appear to know a little about everything who know the most. Good luck making the distinction in one or two hour long segments which need to cover other areas though.

As time goes by I become more aware that many of the most consistently competent developers I've worked with have been focusing on a few key areas. They turn out consistently good code, and most importantly can actually be relied on to deliver.

In contrast I've also worked with a number of developers who have latched onto a wide array of technologies, who would be able to suggest any number of new tools appropriate to deliver a particular solution, but who ultimately turn out code that barely works, is poorly constructed and is over complicated (by either use of too many technologies, patterns, or just generally over engineered). And that's is they manage to deliver anything at all.

The trouble is who is going to look better in the interview?

Seeing through this is an art that is not necessarily possible in a series of interviews, you sometimes just have to go with gut instinct, but one thing that is worth considering is this: A good developer will be able to learn a new skill and apply it to get results as required. A "less capable" developer may know everything about everything, but if they can't deliver on that...

Unfortunately looking at job advertisements it seems this latter class is expanding quickly and being sought more highly.

Perhaps that's why the architecture is now a separate beast to development, they have to go somewhere when they're found out.

Monday 10 September 2012

Going forward with the Home Server...


As mentioned several times before, I upgraded from Windows Home Server Version 1 to WHS 2011 some time ago. Since then I have experienced absolutely no critical problems, and generally it runs solidly for months on end. It's fair to say that the server doesn't come under much load, but even so I'm very happy with it.

The biggest issue I have had is with the server backup drive (the drive to which the server itself backs up to) filling up. This seems to be a bit of an oversight as the clean-up process seemed flaky, but even this has settled down now I've tweaked a few settings, although it's anyones guess if I now have a below par server back-up running, but I think it's fine for my use case.

Overall WHS2011 works well for me, and since the latest roll-up pack appears to have addressed compatibility with the forthcoming Windows 8 machines, I have no urgent requirement to upgrade to the WHS2011 replacements for the moment, but it's always worth keeping one ear to the ground.

Recently Paul Thurrott has comment on the transition to the next wave of servers on his A Tale Of Two Home Office Servers post, and his thinking is similar to mine, although he does come from a slightly different perspective.

Essentially the choice appears to be purchasing Windows Server 2012 Essentials at around $450, or running a Windows 8 client.

The current price of Windows Server 2012 Essentials removes this from my choices for the moment, at least until it drops to $150, possibly less. WHS2011 dropped to a very good price, but then this was a more specialised product. Windows Server 2012 Essentials is a higher end product, so I don't expect a similar price drop will happen.

Similarly using Windows 8 Pro, whilst it could offer advantages such as providing that always on media center so many of us had been hoping would be in WHS2011, will fall down on the vital area of remote access and automated PC Backups (the killer WHS feature for me) as far as I am aware. This will make it a step back in ways that are important to me.

Since I splashed out for the marvelous DrivePool, I'm not overly concerned about Storage Spaces at the moment so that's not a driver to an update either.

So I guess it's going to be a case of sitting tight and waiting to see what happens. As long as Windows 8 machines work with the current system I'm in no particular hurry. I guess it's going to be a case of "If it ain't broke, don't fix it". I guess my backup server is a rare case where I don't actually feel the need to have the latest shiny...

Still, I know what I'm like, so that will probably change soon.

Saturday 8 September 2012

XBox Music


Some time ago, Spotify offered a free 6 month (it may have been three, my memory fails me a little) trial of their "Premium" service. I had never been interested before for two main reasons, firstly I'm from an age where I own thousands of CDs and Records (yes, vinyl), so I like to keep stuff after I've paid for it. Secondly, I listen to music mainly through my mobile these days. The long sessions of listening to music in the evenings of years gone by have been largely replaced with other media (video or games). My music primarily takes place when I'm travelling or working (which still accounts for many hours in an average day).

With all this in mind the ability to play music on my mobile appealed, so I signed up for the trial. I did use this a few times, but due to having a lot going on at that time, not as much as I expected.

Then after one month, my free trial finished.

WTF?

The upshot was that I didn't have enough time to see the benefits, and I was a little upset by the premature expiration. No sale Spotify.

I went back to buying CDs, and the occasional MP3.

However, being a Windows Phone user, I'd always been vaguely intrigued by the concept of the Zune Music Pass, but not enough to actually do anything about it.

Recent talk by Paul Thurrott on Windows Weekly and the Win Super Site reminded me of this service recently however. To cut a long story a bit shorter, I mentioned the Zume music service to a work friend (who also has a Windows Phone), and as an ex-user of the service before having a Windows Phone, he re-signed that night. The following morning he showed me the service working on his mobile, and I'm interested enough to have now signed up to the 14 day trial.

We'll see how it goes, so far I'm impressed how slick it all is... although as I already mentioned it's hard for an old git like me to grasp the concept of not physically own things (despite being an occasional user of Love Film Instant).

I may well end up getting the monthly subscription until Windows 8 (and the built in integrated music apps) become my primary OS, by which time I would have either lost interest or will decide to go for the yearly subscription. I wonder what it will be called by then?

Of course, this may also have a small effect on my thoughts of the announced Lumia 920 not having an SD card... to a minor extent (although I'm still not impressed by that decision).

Looks like I'm in real danger of being fully sucked into the Microsoft ecosystem.... but at least I'm doing this knowingly and with the knowledge that alternatives are available, and trust me when I say that Microsoft must continue to deliver the goods to keep me sucking at the teat.

Oh, and unlike Spotify, Zune doesn't seem to broadcast everything I listen to, to all my "friends" on Facebook.

Any downsides? Well, the only one so far is possibly the 3 device download limit, although thinking more about this it should be enough with the addition of unlimited web streaming. Initially I thought about downloading to my home PC, but why bother when it's always connected? If any other down sides pop-up(?!!) I'll let you know.

Shame the downloads "to purchase and keep" are so damn expensive though.

Thursday 6 September 2012

Nokia Lumia 920 First Impressions


So, after eagerly awaiting the Nokia event in New York for the last couple of weeks it's finally all over.

I currently use a Nokia Lumia 800, I love the Windows Phone 7.5 OS (although I'm painfully aware of some of it's limitations), and was hoping to see a raft of features on offer that would have me taking a hammer to the piggy bank.

The hammer, I'm sad to say, is staying in the garage for a while.

The Lumia 920 is indeed an excellent looking phone, and from as much as we've been told ticks most, if not all, of the boxes for me. Except one.

Whilst Windows Phone 8 (re)introduces support for SD cards, and there is an MicroSD card slot on the mid-range Lumia 820, this is sadly lacking on the 920.

Why?

Don't get me wrong, the 32Gb of on-board memory is quite good, but I fear on a phone that I hope to keep using for at least two years this will get filled up pretty quickly.

I've had the Lumia 800 since early this year and I'm already at the stage where purchased applications take up the lions share of internal memory, leaving me limited space for music and movies. I regularly see a "not enough space" message when updating the libraries for the following day. This is a situation I can only see getting worse with the new applications that will begin to appear.

Sure, the Lumia 920 features double the memory of my Lumia 800, but it's still not enough, especially considering that the new screen is begging to be used to view movies.

So 32Gb of memory will lead to compromises, whilst 32Gb with a MicroSD slot and a card of 64Gb (or possibly higher in the future?) giving 96Gb of space would lead to... well, fewer compromises (yes I really do have that much music, and it's not always possible/practical to stream music).

So the Lumia 920 is still in the running, especially if the Nokia software bundle is as strong as it has been on the current models, but this one seemingly simple omission has got me considering alternatives. It's not the no-brainer I was hoping it would be.

I wonder how that Samsung Ativ S will turn out...

Tuesday 4 September 2012

Back from the dead?


This morning I was reading the post Your Words Are Wasted on the excellent blog area of Scott Hanselman's Computer Zen site, and I realised that I've not posted anything to this blog in over a year, and this is probably something I should sort out.

It's not the first time one of my many sites have been in this position, and I doubt it will be the last, but let's have another crack at keeping it going this time (as in having regular updates).

I have actually written several posts since the last time I updated here, however due to various reasons they never made it to the site. Perhaps a couple of them could be salvaged.

Either way, I'll try (once again) to keep this site ticking over. Apologies if you find the content pointless, please don't flame me, just don't waste your time here if that is the case, however if you do see something of interest, that I've mis-understood or got wrong, or have any other constructive comment, please feel free to comment or contact me.

Thanks,

Stu.