Note to self: Remember this if I ever became a manager

Having read this article that was delivered to my inbox recently I would like to put on record that should I ever become a team leader or manager, I hope that I could look back at this list and tick off more than one or two.

8 Core Beliefs of Extraordinary Bosseshttp://www.inc.com/geoffrey-james/8-core-beliefs-of-extraordinary-bosses.html

My favourite:

8. Work should be fun, not mere toil.

Average bosses buy into the notion that work is, at best, a necessary evil. They fully expect employees to resent having to work, and therefore tend to subconsciously define themselves as oppressors and their employees as victims. Everyone then behaves accordingly.

Extraordinary bosses see work as something that should be inherently enjoyable–and believe therefore that the most important job of manager is, as far as possible, to put people in jobs that can and will make them truly happy.”

What’s your favourite one on the list?

Is there a shortage of C# developers?

I have heard there is a shortage in C# developers, but I don’t understand how or why. Surely the number of IT jobs has shrunk by a similar amount to other markets?

I don’t know what the experience is across the rest of the UK, or indeed any other country, but I am based in the South East of the UK in a pretty average to large sized town and am getting regular contact from agencies about new positions opening up all the time. The real amazing thing is that so many are local rather than London (1+ hour commute) which is not a situation I ever remember being really true for the past 10 years previous.

However it’s not all great news, they predominantly seem to be contract jobs, and often ‘only’ 6 months. Still if you are looking for a position, I strongly recommend filling in your LinkedIn profile. Having done so myself seems to have really made it easy for recruiters to focus in with relevant available positions. In fact I have a strong link in my past with working for an online recruiter and I struggle to imagine how they will compete with free profile and networking services like LinkedIn.

Anyway for those that read this blog, employed or not, it can only be a good sign that there seem to be a growing number of vacancies about.

Update: A link from a friend shows I’m quite possibly not just imagining it
http://www.zdnet.co.uk/blogs/from-both-sides-10005031/it-professionals-see-wages-inch-up-10025901/

Issue Management Software

Okay I’ve managed to crowbar some spare time at work so I can step back and look at what ticket/bug tracking and project management tools we use in our office. Firstly I am not our project manager, but I am the person that looks after our source control and the main person interested in using a ticket system.

In my past I’ve been a heavy user of TFS. I thought it was brilliant back then and I wish I could use it now, but the market situation and the sector I’ve moved in to demand I look at free or existing platforms first. On top of that the organisation I’ve moved in to didn’t use source control before I started here so having brought that in, whenever I choose a new product or platform to adopt I need to keep in mind if it can be shared with those ‘down the corridor’. Many of our sections programmers do a lot of non-Microsoft based activity too so currently we use Subversion(SVN).

Currently we have:

  • (Visual)SVN
  • Trac
  • CruiseControl.net

I’m currently scoping out:
TFS 2011 – technically this is sort of out of the running. It doesn’t suit all the other departments perfectly. However there is a parallel with the people more keen to adopt the work process changes I’ve proposing and the MS development work so it’s not a total no-go. Also my project manager likes MS Project and so the integration between products here is a really big plus. Downside is that there is an ongoing licensing cost, although very much reduced due to our educational discount.

Trac – we already have it and it is used by so many. What I did hear about when asking for help on Twitter (thank you WANDisco, Codesion and Collabnet!) was about a project that WANDisco are working with called Bloodhound. This looks like a great extension to Trac from what I can see. My only complaint that I have is that it doesn’t seem to be ready yet! I’m still very much interested as WANDisco provide the very impressive uberSVN which I have been trialling alongside our VisualSVN installation. It could easily become a replacement.

RedmineThis one I found through searching for Trac alternatives. It looks really neat and is definitely still in the running. I haven’t properly trialled it yet though so I need to pull my finger out.

Collabnet TeamForge – This looks amazing. It was a bit fiddly to install, and it comes with some baggage with its setup, but it looks great if a little heavy at times. I’m 3 days in with trying this and the hardest part seems to be like TFS, where do you define a “project”‘s boundaries. Our main ‘product’ is a university website with several applications sitting on there. I wouldn’t like to think that each of those app’s deserves its own project of the scale that seems to be aimed at in Teamforge so it leaves me wondering if a “Website” project is sufficient.

IssueNet (Intercept) – Our institution has already bought this software and thanks to a friend at work we’ve realised that although originally intended to cater for the engineers and the various help/service desks, it actually handles bug tracking, source control integration and project management features (including MS Project integration) out of the box. A chat with the manager of that department is on the cards ASAP!

So there is our shortlist so far. Do you know of any other tools that offer:

  • Source Control integration (SVN)
  • Ticket system
  • MS Project integration – or a replacement for it

If so I’d love to hear from you.

Danny

Visual Studio 11, TFS 11 and .Net4.5 Beta

Visual Studio 11 beta is available for download

http://www.microsoft.com/visualstudio/11/en-us

I haven’t had the chance to install it yet so if anyone has any comments then please leave them!

Thankyou for following

A quickie, just to say thank you to all those following my blog. My number of visits has in February is double Decembers figure so it’s nice to know someone is actually finding some value in what I write.

I have a couple of big posts that I’m waiting to be happy with. They are from the Improving Things series and something on personal development. These are being held up by all the more developer focused posts I am enjoying putting up.

If anyone has suggestions on something they’d like to see me write then feel free to contact me or leave a comment on here.

Danny

Pluralsight, free for leap day

As you might know from an earlier post, we have a Pluralsight subscription at work and I am a big fan.

I don’t get half as much time as I would like for watching these but every one I’ve done so far has been well worth it.

According to this blog post it looks like it’s free for all of Feb 29th, quote:

“For 24 hours, starting Wednesday February 29, at 12:00AMEST ( 05:00 UTC) the Pluralsight library will be wide open. You will be able to watch as much as you can in 24 hours!

No need to register. No need to provide a credit card.
The entire library is completely free for this one day.“ 

Note: I am neither sponsored, endorsed or probably even liked by the Pluralsight team!

Danny

 

VB.net “vs” C#

“What are the main differences between VB.net and C# and why would a company choose one over the other?”

I posted an answer to this question which was posted in a forum a few days ago. Now having waited for it to pass the moderators approval I got a chance to re-read my answer and I wanted to keep a record of it. Feel free to discuss/argue with my viewpoint:

Answer:

As a developer I seem to notice that C# gets used in more “serious” places. This is farcical given the truth of the matter of course. I also notice that the developer positions for C# seem to get paid more as well – this is a big influence as a developer.

I imagine the above stems from the generalisation that part time/dabbling developers played with VBA/Office and some VB6 and found VB.Net a natural progression. Whereas C# has shares more syntactically with C++, which is definitely not the territory of part time dev’s/dabblers. So whilst the languages are equals, some of the natural reasons people chose one over the other might be a clue as to why there is such a perceived difference.

There really is very little difference, they are 99% identical (annoyingly MS does have a habit of putting things in one language and not the other at the same time). I like some of the more natural things in C# like short circuiting. It’s the simple small things! A classic case of VB.net can do it, but I can’t remember the last time I saw AndAlso or OrElse used. These small things give the ‘feeling’ that C# is designed to be faster.

As for a company – it won’t really matter. I would focus on finding a dev team of people you trust and that buy in to your companies philosophy and then choose either flavour based on their preference. I am unaware of any extra shortage of C# vs VB developers – but could be wrong!

Danny

Project/dll consolidation

I’ve taken it upon myself to consolidate a few of our projects, but I’m wondering why we ever did it the way I organised 2 years ago.

We have several libraries all representing core business logic for the university. Students, Staff, Study (courses, modules etc). Up until now we had broken them down in to separate dll’s but I am wondering why we ever bothered? The problem of circular references means surely we should have just made one big project in the first place.

Anyway that’s my side project for the next few days when I get time on the side. Luckily I insisted on sensible naming conventions and namespace from the start and our other code shouldn’t even notice this painless metamorphosis – Next blog post might be entitled – “The day I made a big ASSumption”.

I’d welcome any thoughts on how big you let your business logic projects get.

Danny

foreach vs LINQ

I briefly mentioned the foreach vs LINQ comparison in an earlier post.

There are a lot of discussions (here’s a good one) about the performance bonus of using your own foreach loop over using LINQ and the extension methods we now take for granted.

I for one highly value readable and concise code that is as easy as possible for a different developer to pick up and read. I want to emphasise that “and” and its importance though, because reducing everything to the minimum amount of lines possible is a trait I’ve seen plenty of times in my past and current employment. Some developers think there is something intrinsically more intelligent in reducing a perfectly readable 3 lines of code in to a nested single line of unreadable hell. I’m either (a) not as intelligent as them and/or (b) not impressed by this feat – I have no shame in admitting (a) but conversely proud of (b).

Unless going for the Job Security Visual Studio Achievement I think the modern developer should be as much focused on maintainable and team friendly coding practice and style. Even if your development team or organisation doesn’t have a “house style” you should always be looking to write code that can be handed to another developer and instantly readable. In fact in not doing this would seriously mark you down in my professional estimation (and I know you care really right?).

It is because of this that I am willing, wherever technically viable*, to use a more verbose statement in LINQ than a much more unclear foreach loop. I think one of the nicest things about LINQ, besides its awesome power to work across so many data sources, is that it is so instantly readable.

*Of course if the performance loss is unacceptable in making the product or application work in an acceptable manner then you have no choice.

We have ORM tools, forget SQL

This post came from reading the following question on a forum.

“I have started programming C#.NET, my question is, is it better to use SQL server or Entities Framework as a somewhat newbie?”

Some people were actually suggesting that because the development of ORM (Object-Relational Mapping) tools has come so far, that us developers needn’t worry about understanding SQL.

For the record, I felt the need to reply:
There are some really good points made here. My advice is that you should absolutely understand SQL Server (whatever flavour), T-SQL as a language and then move on from there. I personally use EF, but I can’t imagine it would ever be desirable to know about EF and not SQL. Whereas companies are very much willing in general to accept people that know SQL and not EF(or any other ORM)

Now my point really addresses that as a new programmer asking this question, he or she might want to tool themselves up properly never mind the technical merits of either tech and whether you can do without one or the other.

But the real question that lingers after that answer is “do we need to know SQL?”.

I am still convinced that we should know SQL (even as a fan of ORM), at least with the current levels of maturity of EF et al. There are still cases I read about where ORM struggles to meet the performance needs when you have a specific data operation you want to perform. We know that LINQ performs badly compared to some basic operations (like foreach in some circumstances*) so is it wise to trust a technology like ORM that obfuscates its inner workings, so blindly? No I think not. I will only use ORM more and more, but to use it without any knowledge of the alternatives I think is where things can go wrong.

Follow

Get every new post delivered to your Inbox.

Join 41 other followers