Developers dont want ping pong tables, fire pits and chocolate fountains

An article, describing an interview with Joel Spolsky (CEO of StackOverflow) at the Geekwire Summit, states that developers aren’t looking for ping pong tables, lounges, fire pits and chocolate fountains as it decreases the overall productivity.

In the article Joel describes the needs for developers to have a closed office, where they can tune out and concentrate, go to a discussion board to ask and seek questions. Obviously this stands very much aligned to Joel’s company, StackOverflow (SO), which is an often frequented destination for developers who needs answers to technical problems. I’m not going to go into my own personal opinion of SO or the value it has (or hasn’t where that’s the case), but more to look at what the core message of the article is about. Namely office environments.

Office environments and Developer Productivity

We all know that crunch-time is a stressful part of our jobs. When we’re almost there and deadlines are looming. We need to focus on delivery and we need to get things done as fast as possible.

This means uninterrupted time with your code and external distraction can seriously hinder concentration and drop productivity. We (read: developers) handle that in multiple ways. We work from home; we wear headphones to block out ambient noise; we close the door; Obviously in some environments that’s not possible.

In my experience, it takes approximately 15 minutes to get into things and reach your “Zen” zone. This is where you’re focused solely on writing the best code you can. Having a constant flow of people around you moving about is a distraction and can very well mean that you never reach that zone throughout your entire day. That’s bad of course. But we also have other distractions. Colleagues and team members asking questions. Emails inbound that needs your attention then and there. Your phone ringing or messenger application popping up. None of these distractions has anything to do with having a hip environment with said ping pong tables. They’re part of your life to some extent.

So for all of the focus on your environment not containing ping pong tables, breakout lounges and so forth, there’re many more ways to distract us than just that. We need uninterrupted time to focus – that’s obvious.

Does having a ping pong table in your office distract you from your work? Ok, if you go there instead of writing code or if team mates are loud and disruptive when playing, then yeah it does indeed bring a level of distraction to your job.

We can all agree that we need to concentrate on getting the job done and the environment can definitely bring that distraction.

Is ping pong bad?

Earlier I mention the ping pong tables and can agree that it brings distractions to your environment. But it also brings something else to your environment that a sterile, closed environment doesn’t: Time at the office, with friends and colleagues, that helps bond traditionally introverted people together. That’s also very important. We shouldn’t forget that developers achieve very little on their own. Most projects of any substance are a collaboration between many developers, all working on specific tasks. When we work as a team we are likely to be far more productive than when we work in isolation. That at least is my view as I’m an extremely extraverted developer. I personally need interaction with my peers and colleagues; I don’t need it all the time but it energises me a lot more than sitting in a closed office for 8hrs (read: as long as it takes) a day. My productivity drops throughout the day and i counter that with some social engagements. Yes, it’s time where I don’t write code but it helps me recharge my batteries.

On long hauls – projects lasting months, if not years, the long term effect of having something to take your mind off things are extremely important. We cannot thrive positively if all we have is stress and 100% concentration. We are humans and need to engage with other people. The ping pong table can offset some of that stress.

Ok, I’m focusing on the ping pong tables a lot; It could literally be anything. Air hockey, pool tables, arcade machines, dart boards and any other activity that can offset and counter build up stress in people. I’m thinking long term, which I don’t think Joel is in his views from the article. I’ve never seen, in my nearly two decades in this industry, that staff retention wasn’t a big problem for companies. Of course it is. Losing talent is a major issue and not just for software companies. If you’re just looking at developers as a productivity figure, you’re likely going to be losing some along the way. Work environments are extremely important for retaining your staff and not all developers are the glass wearing nerds that just run on caffeine (ok, we do), pizza and long nights at the office crunching code for 20hrs a day. As a matter of fact, those are the rarest type of developers today. Programming used to be viewed as magic and attracted only the most introverted personalities. Today not so much.

Finding a balance is far more important long term

I think it’s possible to get the best of both worlds. Yes, you may not attract talented developers purely because you have ping pong tables. Of course not and with that I agree 100% with Joel. But also just offering them the ability to work from home and closing the door to your office isn’t going to make anybody excited.

You need to balance both worlds and we as people aren’t just black and white. You can have both. Don’t place the ping pong table in the middle of your developers cubicles, look further in your office layout. Have the break out rooms built in a basement, or another building if you have the cash to build a campus. Give developers the best of both worlds so that it’s possible to have your cake and eat it.

I personally don’t believe that developer productivity can be measured in how many lines of code they have written. I think that’s a very flat view of what a developer do and personally don’t see that productivity is dictated purely by the environment you are in. Of course, Joel isn’t being all that black and white either and he raises some very good points during his talk at the Geekwire Summit. He compares the rates Facebook pays over other tech companies. They pay more and he contributes this to the fact that Facebook can’t attract developers due to the work environment. I think it’s a little bit more complicated than that to be honest.

The strategy for attracting a developer is very different to that of retaining one.

Mostly a developer want to work on cool projects, with the newest technologies. I can understand that. I wish for a lot of things in my career to have been different, but am now also realistic enough to understand that not all projects are the most exciting in the world. Sometimes you have to eat a sour apple and that’s really just part of life. Much like paying taxes and servicing your car.

The point of finding a balance with what you want, need and can get becomes far more important the longer you stay in the industry. Longevity is incredibly important.

As an IT consultant (read: developer mercenary) I understand that I cannot rely on my client and projects to give me all I want in life. Of course, I’m often far more transitional than a traditional in-house developer and some, if not all, of the rules doesn’t apply to me personally. But I’ve been doing this for long enough to understand what to focus on that’s important to me.

If I have to choose of a perfect environment for me than It would clearly be that I had the office door to close when necessary, that I could work from home when I wanted and that I worked on the newest platforms available. I would also want that ping pong table available to me and my colleagues when I needed a break. Work isn’t always just about work. Yeah, cake..eat it.

But why can’t I have both – doesn’t seem that hard to me to be honest and it doesn’t have to be that complicated.


Article: Just shut up and let your devs concentrate, advises Stack Overflow CEO Joel Spolsky – http://www.geekwire.com/2016/just-shut-let-devs-concentrate-programming-expert-advises/

Windows Phone 10 update, stuck with error 0x8024201f; easy fix

I’ve always been happy to give cutting edge apps, operating systems and gadgets a go and when Windows Insider opened up for Windows Phone 10 preview I definitely had to sneak on board and get my trusted Nokia Lumia 930 (a gift from a very dear friend, Jin) upgraded.

To be honest, the experience hasn’t been altogether a happy one. That being said, the actual risk is minimal, but frustrating nevertheless. Especially with apps failing (apps i was using frequently, such as Outlook or my Calendar) in steady streams.

Over the past 5 months I’ve done more than 15 hard resets of my phone – purely because it became too unstable or vital apps (such as the Phone app, durr) became unresponsive. Granted, it’s an easy process to reset, but time consuming.

It came to a head in the past 3 days – 11 hard resets and a couple of updates keeps failing. Especially 10514 and 10536. Kept getting a message “an update was not installed” or somesuch, with the phone then proceeded shortly after with another update download. This went on and on and on, not only making the phone unusable for me but also very hot to touch.

Finally deciding that this was going to stop I figured a downgrade and another upgrade would see the WP10 updates install properly.

So here’s the fix if you’re actually stuck with not being able to upgrade..

  1. Download the Windows Phone Recovery Tool 2.1.2 from here: http://go.microsoft.com/fwlink/?LinkID=525569 onto your PC/Laptop
  2. Install the app and connect your phone to your PC/Laptop
  3. Once connected up, click on the “Install Software” icon (this can take a while so be patient)
  4. Go through the full install and setup your phone again. This will bring it back to WP8.1.
  5. Go to the Store and install the Windows Insider app
  6. Once installed, open the app and sign up for the “Fast” track (only Apple fanbois should go with the slow route)
  7. Once done, restart the phone
  8. Go to Settings -> Phone Update and download the update. Once it’s downloaded it’ll tell you to install and restart. Do so. Voila, I skipped what i believe is the troublesome update 10514 straight to 10536.

(I didn’t have any issues with the phone not being recognised, but have heard some have that issue. Do a Hard Reset if that’s the case first before going through with this process)

This brought me straight to the 10536 update and it’s working a treat again. Apps are stable and I’ve gotten new versions of many of the apps I always used (Outlook, Calendar, Phone, Messaging etc).

There you go, stay happy and keep coding..

wp_ss_20150919_0002

 

String.Interpolation – C# 6

One of the new, and probably very unused capabilities of C# 6, is String Interpolation. Ok, that’s not really a new concept. We’ve seen it with String.Format() and the ideologically wrong String.Concat() methods.

Hell, we’ve probably all (at some point in our lives) done [string + ” ” + string] and made it work. Of course, not going into why that’s completely wrong, lets assume we’ve been using the String.Format() method most..

 internal static string ReturnValue(TestObject x, TestObject y)
 {
    var orgExpression = String.Format("{0} in the year {1}", x.Name, y.Year);
    return orgExpression;
 }

Of course, a very simplistic design – but it shows the string interpolation (e.g. loosely translated [the method of which one point of data is created out of multiple points of data]).

With C# 6 we’re seeing something a bit niftier (and dare say I…neater?)

 internal static string NewMethod(TestObject x, TestObject y)
 {
     var newExpression = $"{x.Name} in the year {y.Year}";
     return newExpression;
 }

The biggest hassle with String.Format(); well aside from the fact that it’s somewhat error prone if you started to get a bit complex; you see, the order of the parameters are extremely important. Getting too smart here could get you into some serious trouble.

Plus, the new way of doing this is a lot more readable (read: maintainable)..

As in the “old” days with String.Format() we can still use format expressions.

internal static string NewMethod2(TestObject x, TestObject y)
{
   var newExpression = $"{x.Name} in the year {y.Year:D4}";
   return newExpression;
}

We can even use conditional expressions if we need to.

internal static string NewMethod3(TestObject x, TestObject y)
{            
   var newExpression = $"{x.Name} in the year {(y.Year < 1 ? "AD 0" : "AD 2015")}";
   return newExpression;
}

I for one am very happy with the development of C# these days.

Have fun, stay safe and keep coding.

 

 

 

IFA 2015 in Berlin – Santa needs TOIL

Yeah – Santa seriously needs some TOIL this X-Mas

Most know (by now you should anyways) that I’m a geek and all excited about new gadgets – CES and IFA are two of my most favourite shows. Gadgets everywhere.

This year’s IFA has just kicked off this week in Berlin and to say that there’s a few toys that’s caught my attention, is probably an understatement. Since they threw about 80 new devices out there, it’d be too much for me to cover (some also isn’t that important to me) – but the ones i’m the most excited about is here..

Moto 360 2nd Gen (link)

..yes..i know, it’s a ‘droid watch – but damn, it’s one fine looking specimen. I’m (secretly) a watch whore..s’cuse me..enthusiast, and the wearable market is flooding with smart watches (and no, i do not count the iWatch as being smart), but they tend to look like “packaging” rather than something you want to wear.

lenovo-launch-moto-360-bigok – some of the 2nd gen designs are a little bit “blingy” for my taste, but the matte black steel link is just awesome.

some key points on the 2nd gen:

  • There’s now a men’s and women’s collection (yes, ladies, you can play with the cool guys too)
  • There’s an inbuilt fitness tracker (can see some awesome applications coming for that, g’bye Fitbit)
  • Thinner bezel than 1st Gen 360

Oh, and lets not forget it looks a hell of a lot better than both Galaxy Wear and the Apple iWatch.

This one is on the top of my list of toys for the next year.

IdeaCentre Y700/900 (link)

With the Y700/900 Lenovo steps right into the high-end gaming market and mentioned during the reveal was tool-free install, from end-to-end, 32Gb ram and Dual-GPU, not to forget Skylake CPU.

lenovo-launch-ideacentre-y700-bigI actually didn’t think Lenovo would make this move to be honest – yes, we’ve heard them ask for “What do you want in a gaming rig?” on more than one occasion, but the gaming industry is a numbers game. Bang-for-buck is the mainstay for gamers these days. The true enthusiast will of course shell out their second kidney for the coolest tricked out rig on the market, but they’re not the mainstream users that most manufacturers target from the bat. No, that was what we saw with the entry level Y50/70 gaming laptops. They’re right in the sweet spot on price and capability.

 

Yes, they looked good and the addition of the 4K screen was something totally unexpected, but it was a numbers game predominantly – again, bang-for-buck.

For gaming i’m usually by far a desktop and console type of guy; have owned both dedicated gaming laptops before and the experience (especially with the Dell XPS 1710) left me with a bad, bad, bad taste in my mouth. The Alienware later owned took the edge of the bitter experience – but, that was also some seriously expensive kit. Would take something seriously impressive to make me fork that kind of dough out for a gaming laptop again.

Lenovo doesn’t sit still of course – the Y700/900 shows that and I for one can’t wait to see what the guts will look like when more is revealed.

That leads me to the next toy..

IdeaPad Y700 (link)

As just implied, the gaming laptops are mostly a gimmick for me – ok, owning one of the Y-series laptops would be awesome but not for the mobility aspects of it. They come with some serious guts that I can appreciate and I don’t currently have a desktop.

It’s coming in 4 flavours (awesome, awesome’er, awesome’er’er and awesome’est):lenovo-laptop-ideapad-y700-touch-back-1

  • 14″ entry level, yet still with AMD R9 discrete graphics
  • 15.6″ with Intel RealSense
  • 15.6″ with Touch screen, and
  • 17″ (which is rumoured to come with the Skylake chip – unconfirmed at this stage)

Lastly, one device that I think is epic.

Yoga Tab 3 Pro 10 (link)

I owned (guess you can say “we” own it now) a Yoga Tab 10 HD (the little cousin to this one), which is a 10″ Android tablet. Still, I’m not a fan of Android, but this little device is here to stay. It’s probably one of the devices that gets the most usage around the house and that’s because of the awesome battery life this tablet has – 18hrs.

So, the YT3P10 is the same as the Yoga Tab 2 Pro and maintains the nice build quality – and of course it has a projector in-built. Yeah, the Yoga Tab 2 Pro also had a projector in-built, but rumour has it that this one is even better (projects a 70″ display onto any wall).

Here’s the total list of devices that got revealed..

Lenovo IFA 2015 Products Showcase (external)

Technical debt – when the bank really can’t help you out

Not long ago I had a brief 2hr session with a client who were looking at implementing a collaboration platform (read: SharePoint) to support their massively growing business. The discussion as usual went around platform/product capabilities and as usual the topic slowly venture into requirements and different scenarios that the client wanted the system comply.

Due to the growth of the business, all internal systems had soon been left behind and simply couldn’t cope with the expansions – this is often the case for companies that doesn’t factor IT into their business model. Luckily for the client, most of the OOTB capabilities of the product supported directly what they needed, but a few didn’t. These were for the client seemingly extremely important and a custom solution would most likely be needed.

If you’ve ever spent any time in a meeting with a sales representative, you’ll know that the general consensus is to sell – yeah, go figure. But as a consultant there’s always areas that you really need to be careful of entering into – and this is where you need to have an open and honest discussion about the impact a system can have to a business.

Picking a solution (No, you are not given a choice)

Naturally most companies employ consultants because they know that it’s not their core business. So looking at the reasons to adopting a system (any system), from the business perspective, there’s:

  1. The need to increase productivity, or
    • The need to decrease deficiencies in current system
    • The need to cut cost of productivity
  2. The need to introduce controlled/improved processes
  3. The need to expand, or match a shifting market, or finally
  4. The need improve on system quality

It’s a very broad non-specific and/or descriptive list but covers the various models used by management consultants (including PI-MDD, which from a consulting perspective is my personal favourite – that quite often goes against the grain, especially since I’m predominantly a SharePoint consultant). I’m not going to into the how and why of modelling these things, because I don’t have any formal “Consulting” education (can you even get that?) – but i digress – the needs and context needs to be detailed, which is where many smaller corporations don’t see any value – “We know our business and don’t want to pay YOU to tell us about it” – so they find a budget, which rarely actually has any foundation in either context or need, but a “This is our budget, get it done” perspective. The next step is then to either find a solution provider or a product.

The model here is pretty simple..is cost higher than budget.

Double-click, Next, Next, Next, Finish

Once a solution provider has presented a “choice” which matches the “budget”, the time comes to integrate the solution. A short stint from an onsite specialist and you’re up and running. Some time allocated to “Power training” and the business now has a Best In Breed solution. Exit stage left.

At this stage there’s already conflicting ties between the Need and Context. Initially there’s a drop in productivity because most users are having to learn on the job, perhaps mistakes even occur? orders are lost, tasks are left incomplete – and this is were human ingenuity kicks in and the proactive folks simply circumvent the system till such a time as the system can be “fixed”.

What occurs in this instance is a dramatic drop in ROI – the system is not doing what it’s meant to do and staff are either slipping back and using what they previously used or are making up new processes in order to meet their KPIs or deadlines. After all, business must go on and the outcome is “the system doesn’t work”.

Utopia doesn’t exist

Most platforms seems to have a lifecycle that spans over 5 to 7 years before being replaced/upgrade.image

In the period between introduction and end of life – the utopian fantasy with software is that there’s no cost involved with it. Once it’s bought and installed, everything takes care of itself.

Ok, realistically most have an idea that software does need to grow, so storage, backups and servers are all part of the “natural” life of having a software platform.

The decisions to adapt a platform is far more intricate than that. oh, vendors will sell “support and maintenance agreements” to you at a % price. For that you’ll upgrades/updates, patches and an offshored support email that you can use to contact them if you do need some assistance.

But mostly the vendor relies on partners and/or solution providers to take care of that for them.

It’s here that technical debt comes into play and it’s where vendors or solution providers doesn’t want to go. Yes, I’ve just sold you on the idea that you should by my services or product, at a concise price, why can’t I declare all the costs to you right now?

There’s a natural increase in cost associate with a software platform – it comes in the form of both financial and resource efforts and it could increase the investment figures by up to 20% per annum, of the initial purchase cost, very easily.

Technical debt can be calculated – but it’s very complex so I tend to use an analogy to explain that adopting a platform is much like having kids – there’s an initial phase of excitement, followed by a sense of dread because the project is taking a long time and concluded with the reality that it’s a never ending cost that didn’t just stop when the kids left home.

When decisions matter

It’s always hard to sell a software platform/solution based on a high upfront cost, hence why most don’t do it, whilst there’s a seemingly ignorant belief in the fact that off the shelf packaged software doesn’t carry the debt as well.

Most have heard that a bespoke solution is too risky – hiring some developers to slap a system together and then call it a solution is risky, especially when approached like that.

Can you quantify the exact cost for any system? for most, no – there simply isn’t that much tangible proof to state what that figure is. Like with anything else, there’s a risk involved with the business having to change too frequent, which leads to either an out dated solution or a high cost in retrofitting it to meet the new needs.

Yes of course there’s a banging good approach that’ll be offered when this happens – lets go agile!!! For seemingly unknown reason, companies has now decided that agile is risk free. But it still doesn’t eliminate the technical debt that’s accruing – of course not, since the changes to the system is going to cost money and effort.

In conclusion

The only decision that really matter is an informed decision. Go into the adoption process with both eyes open and on the prize. Be aware of all facets of solution adoption and be realistic. The fact is, if your budget cannot sustain the system it needs in order for the business to prosper, then your business model is wrong.

LIDNUG & Scott Guthrie – 15th Q&A on the 9th of January

 

lidnug

LIDNUG presents Scott Guthrie’s 15th Open Q&A and the first event of 2013.

 

Scott has been coming back to LIDNUGs members each quarter for the past couple of years and it’s been one of the best sessions to get answers directly from The Gu himself.

 

In this session Scott answers questions on technical solutions, advices on implementations and draws comparisons between methodologies – all in the span of 90 minutes where his sole focus is to answer whatever question that comes in from the attendees.

 

My name is Scott Guthrie, and I am a Corporate Vice President in the Microsoft Server and Tools Business. I run a development team that works on the following products/technologies:scott-guthrie

  • Windows Azure
  • ASP.NET
  • Entity Framework
  • WCF
  • WF
  • IIS
  • Service Bus
  • Cache
  • BizTalk
  • Visual Studio Tools for Web
  • Web Services and Workflow

Register and attend this event for a chance to win 1 of 2 Telerik Ultimate .Net Collections.

Click here to register

 

FAQs

Where can I contact the organizer with any questions?
Use the following link and send us a question

Is there sufficient parking available at the venue?
Yes, parking is available at this Virtual Online Event. Just make sure you park the car in your drive-way, have a cup of coffee and log in.

Who can I blame if I can’t access the session?
Just blame Brian (it’s easier that way) => brian.madsen@lidnug.org

Will attending this event help my career prospects?
Of course, you will be able to bring a treasure trove of knowledge with you to your next job interview.

 

LIDNUG and Wintellect Presents – .NET Performance Tuning with John Robbins

LIDNUG & Wintellect Presents – .NET Performance Tuning with John Robbins    John Robbins

One of our most highly anticipated events and presenters is coming up in just a few days (11th of October, 2012) – namely the return of John Robbins. Last time we caught up with John we had a full house, and with currently 700+ registered to attend it’s bound to be a blast.

.NET is an amazing environment. It runs on everything from a small phone in your hand, to the latest touch tablet, to your company’s server, to a cloud environment handling tens of thousands of transactions per second. But with that flexibility comes problems. When your applications performance slows down the issues go from “working OK” to “we are going to get fired any minute” literally overnight. You’ve got a performance problem with your .NET code so what the heck do you do?   In this session John Robbins will talk about the wonderful tools you have to find and fix those performance issues once and for all. There’s a lot of deep thinking over performance that most developers haven’t done because they don’t need to do it every day. Fortunately, John’s done that thinking for you so join him for this session and learn to tackle .NET performance problems. No matter if your performance problem is algorithmic or memory-based you’ll see how to deal with those issues once and for all.


Register to attend the webinar and you’ll be entered to win a Wintellect virtual training course (a $499 value). The winner will be announced during the webinar. You must be present to win.

The LIDNUG and Wintellect series of events are sponsored by Syncfusion.

For more details and to register, click here: http://lidnug-wintellect7.eventbrite.com/

note: for those on the southern hemisphere please be aware that this event is held in the EDT timezone.

Stick to your guns – why lifecycle management is important in the enterprise

The concept of Application Lifecycle Management is not a new invention that just popped out last year and hit us in our backsides. It’s a very wide topic with a lot of categories, which includes categories such as:

  • Project Management
  • Change Management
  • Release Management
  • Design, Modelling and Issue Management

Yes, that’s right guys and girls (honestly!!) – Project Management is indeed part of the Application Lifecycle (for real this time!!).

This is spread over an even larger list of methodologies and tools, some fluid/agile and some integrated…

We often hear that IT projects are more likely to run over budget, be delivered late and in a state of looking like a bug-ridden open source project…. statistically that’s quite often the case – so why do we bother when we’re doomed for failure? Well, because when things are done right, it just works.

One of the biggest mistakes I frequently notice on IT projects is the failure to understand that it’s not just the development and project management team which has to adhere to a process. (Yes, i know, those that pay the bills just want things done now…you arguing?…s’ok, there’s the door). IT projects are like a house of cards, the more you add and the more complex the “build” becomes, the more careful you have to be – so that means following that process even if it means you have to get approval before proceeding.

I was once assigned to a project to resolve a few bugs here and there. Nothing major, this was final stage of the project, just a few helpful hours when the cycles where free. The first issue I was assigned wasn’t that complex, but getting to grips with the code base and project layout did take a bit of time. It wasn’t really documented and there was nobody around to give a hand. Anyways, after about 1 1/2 of trying to reproduce the alledged bug, I finally gave up and tracked down the BA who’d lodged the bug to start with. For the first 30secs the BA had to get their head around which particular bug I was referring to – all understandable, the project had run for years.

Then it dawned on the BA which issue i was referring to…the message was…

That issue was fixed 1-2 days before it was assigned to you…

Ok,  naturally I wasn’t entirely impressed, so I chased down the PM that’d assigned the issue to me and got the usual blabber about “being newly assigned onto the project” and “we’re all in this together, please stop strangling me…garggle..ugghh..gasp”.

So the incident at least had a release for my homicidal side..

Why did the Project Manager assign the issue to me in the first place? Well, he’d been running around, trying to get resources stitched together to complete the project and get it out of his hair. Yes, he was a newly assigned PM and the developers on board were largely juniors. Obviously a failure to communicate on one level or another….or….something a bit more sinister?

The steps pretty much showed a full breakdown of the lifecycle.

Test conducted -> Issue Found -> Issue Raised -> Issue Triaged -> Issue Fixed….

And then that’s where things really broke down. No detail was found in TFS that the issue had been fixed. It was still assigned to the PM. Still in active status.

Obviously the PM was never informed that the issue had been fixed..who’s to blame for that? The developer? the tester? the PM?

It’s a very basic example of what can go wrong when the process isn’t followed by everybody involved. That includes developers, testers, project managers, stakeholders etc.

Considering how simple this was, the cost was huge and the ROI so small as to be negligent. Look at that from a project perspective, a drop in the ocean, however if that happened often enough the project would fail (unless we had some seriously generous clients and budgets).

Look at this from an enterprise perspective where cost of delays, additional licensing and hardware, consulting resources et al, then it’s obvious that the lifecycle is paramount. Had a process been in place above (well it was, but it obviously wasn’t followed) the waste of time (and additional cost to the project) could have been avoided.

Shortly after that incident I received an email, asking me to make a small change (just a date calculation, v.simple and quick fix) to another feature. I naturally understood that the work item had been assigned to me so I could see all the details of the change (and ensure nothing had been missed in the email), but alas, it hadn’t. Due to timezone differences I needed to wait for the PM to get back on board for the day, to ensure that the details I’d been given in the email was all encompassing. The work item change had been raised as an issue to be resolved – and lo and behold – it also hadn’t been assigned to me. Great, now due to check-in policies in TFS, I wouldn’t be able to check in before the change to go to the test team. Again, and added piece of delay that ends up costing money in the long run. Of course, I could go and make the change to the code base, wait for the issue to be assigned to me, check in and then move on. But, here’s another idea.

How about I DON’T do the work before the “paperwork” is all sorted?

Yes, I waited patiently for the PM to respond to my email – “S’cuse me, sir..please assign issue xx to me and verify all details…kthxbai” – and then I proceeded.

Did it take a bit of extra time to get this done? Of course it did, but what could the consequences have been had I not gone down that path? Again, wasted time and even possibly impacting code and changing features which wasn’t meant to be changed. Again, more wasted money/time/resources.

This is just a small example of why being very careful to follow a set lifecycle is paramount to IT projects – in the whole scheme of things, this wasn’t something major really – however, the project had already rolled way over budget and deadline, why continue to waste resources when a simple process could have prevented it all.

An April Fool’s Day MVP – MVP 2012

The 1st of April has been hillarious for me, ever since I got my first Microsoft MVP Award in 2006. Not solely due to the fact that I’ve been honoured by Microsoft by being presented with the MVP Award, but also because quite a few of my friends finds it funny to send me all types of “spoofed” emails on the day.

This year was of course no different – lots of emails (of various dubious qualities), but at the end of the day I did indeed received one particular email that’s bound to bring a smile to my face.

Yeps, I’ve been awarded the 2012 Microsoft MVP Award and I’m very pleased with it. The award is a recognition from Microsoft and irrespectively of why we do what we do for the community, it is indeed very nice to get the recognition. When you take a look at the company and quality of the MVPs out there, I feel truly humbled. Some of the industry’s biggest names are MVPs but it’s like comparing apples and flux capacitors.

So here’s to another great year of more community involvements – but first a big thank you to all of those that’s bothered to listen to me waffle on for hours on end – lets make 2012 even better, and bigger, than 2011.

 Anyways, you can find me floating around in a few places:

 Feel free to ping me if you got any questions..

oh, btw, the category is ASP.Net 🙂

A choice – classroom vs. virtual technical training

Over the last couple of weeks i’ve been working on a business case for our centre to adopt a virtual technical subscription as opposed to our classical choice of “classroom” technical training.

It seems more and more clear that the ROI of classroom training is of an exceedingly low value if you look at it strategically.

What i’ve deducted so far is:

  • Classroom training provides a “feel-good” positive feedback from staff attending it. They know it’s costly and feel more valued by the company.
  • Classroom training provides a hands-on experience in many cases
  • Classroom training does not provide a large variety of topics (usually one topic per training session/week at a high cost)
  • Classroom training does not provide an on-demand availability as schedules are set by training providers
  • Classroom training does not provide a high knowledge retention rate

These were some of the main points that’s making the grounds for my business case.

When turning that around and looking at a virtual technical subscription (such as PluralSight.com and Innerworkings.com) there’s subtle areas of difference.

  • Virtual training doesn’t necessarily provide as “feel-good” positive feedback from staff utilising it. The individual value associated with it is generally less than Classroom training. This is a percieved monetary value.
  • Virtual training provides a hands-on experience in many cases if you mix your technical subscription offerings
  • Virtual training provides an on-demand availability service. It’s there when and wherever you need it
  • Virtual training provides a large variety of topics and can be both specific or general in depth
  • Virtual training provides a high knowledge retention rate as you would consume content which is needed here and now

From the generalisation (which i’ve had to make) it’s clear that both cost and knowledge is of high importance, leaving only a business decision on 1 or 2 points to be made.

I was able to run several trials with different staff over a short period of time and deducted that on average 6hrs was spent weekly (some lower and some much higher) when the on-demand content was available. The most important feedback I got was that there was a sense of “i can train when and where i feel like it” and “i can re-visit content i’m not sure about anytime”. These two points were of immense value to me as they clearly indicated that the benefits of classroom training was slowly being devalued.

The next phase for me is now to look at delivery, control and management/availability of sources and then work out a cost vs. cost for each offering.

It’s interesting for me personally to see how diverse many of these virtual training subscriptions are in topics and gives me some more positives to work with.