Category Archives: General

Podcasts are offline for now, sorry!

Apologies folks – I have taken the podcasts folder offline. It seems that the .mp3’s were being enjoying abnormal demand over the past 7-8 days…too much for human consumption, so I can only assume it’s an automated process that’s consuming more than my fair share of bandwidth.

I will look at alternatives over this weekend 22/23rd December.

November 2012

I need to start writing more. I used to be a prolific writer. I’m going to write these monthly posts as a means of getting me writing again. Apologies if you find them dull, however I need something to kick-start me!

November was a busy month. So busy, I had pretty much written it off within the first week of the month. Work-wise, I had a handful of site visits to make to the east of Glasgow. Couple that with a couple of trips out to getting the car serviced and its suspension repaired (Edinburgh’s roads are in a dire state of disrepair), it rather felt like a month where I never actually stopped.

12th through to 16th
We managed a short break at Centre Parcs in the north of England. I say break, I really mean three days (Tuesday, Wednesday, Thursday) – the Monday and Friday are typically spent loading/unloading the car and driving to/from the resort. Loading and unloading the car, especially with the roofbox, is quite frankly, a chore and not something I would class as a holiday activity.

1

On the plus side, I did manage to try a couple of things: a Segway and tree-trekking. The latter I had done before some 20 years ago. The Segway was new and was rather cool; sadly not road legal!

2

17th – DunDDD
I don’t often get to sit through a whole session end-to-end, however I managed it for a number of sessions at DunDDD. I pleased to be able to sit through these sessions: Steven Clarke’s “How do you combine user experience and developer tools?”, Gary Short’s “Marginal Gains – Bringing UK Cycling Success to Your Dev. Team”, Seb Rose’s “Bad Test, Good Test” and Gary Short’s “Not Everything is an object”.

3

29th and 30th – Bletchley Park
Towards the end of the month, the Microsoft MVP Open Day took place at Bletchley Park near Milton Keynes. I drove down, via Newcastle and Sunderland, picking up Jon Noble and Andy Westgarth on the way. It was an early start on the Thursday, I left Fife at 0500 on the Thursday. Despite that, it took me a good three and a bit hours to get to Cullercoats near Newcastle. After a short stop in Sunderland to top up the travel mug, we headed south and made it to Milton Keynes in the nick of time.

These two days were definitely a highlight for me. Apart from the uber-ness of being at Bletchley Park and the National Museum of Computing, I was also able to catch a couple of MVP-led sessions. Liam Westley ran his Commercial Software Development session and Guy Smith-Ferrier ran his session about Riting Roslyn Refactorings: Harnessing The Compiler As A Service. Again, it’s not often I get to sit in on sessions end-to-end, so this was the second time this month that I’d managed it! We, the DDD team, ran a short session on DDD, the community and user group involvement.

5
Historic site of secret British codebreaking activities during WWII and birthplace of the modern computer.

4
Full of legacy treasures!

6
I wrote some BBC BASIC, haven’t lost it yet!

Shopa needs your vote to make it bigger and better!

shopa

TL;DR summary
shopa needs your help making it bigger and better! Click here, then vote! Thanks!

About shopa
shopa is a social technology company that enables risk-free word of mouth sales growth for independent businesses who sell products and services online.

Customers of online retailers using shopa’s ‘share & earn’ tool can receive cash incentives for recommending products. Customers can easily share products they like with friends and if any of them buy, they both share an instant cash reward. shopa’s retail partner’s benefit from a network of personal recommendations.

The shopa team, led by Peter Janes, has built the clever technology with limited resources and they have already caught the attention of major companies as well as angel investors who invested in the business in August.

But shopa is not just about the product; there is heavy emphasis on monetising data. The team has access to valuable behavioural data, which will further help clients to understand the behaviour of customers through the use of powerful analytics.

The business has recently been granted a patent in the US as well as a global technical partnership with eBay and its companies PayPal and Magento to continue their progress.

Do you want a sneak peek at some ideas Microsoft are working on?

Microsoft’s Steven Clarke is looking for five JavaScript developers to help him with a user experience study!

The study starts on 31st of July and runs until the 2nd of August – please get in touch with Steven to arrange a convenient time.

You’ll need to make your own way to Microsoft’s Edinburgh office (it’s pretty much at Waverley railway station)

You’ll have to sign an NDA to participate as the prototypes are confidential. It’s a great opportunity not only for an early look at some ideas Microsoft has, but more importantly for an opportunity to significantly influence the direction Microsoft take.

Please contact Steven if you are interested.

Why you need to buy @berkun’s new “Mindfire” book…

I’ve been reading Scott Berkun’s new book, Mindfire.

I’m not going to review it in this post, I’ll save that for later.

However, I’m will tell you why you should buy it!

Scott self-published Mindfire, a feat worthy of huge congratulations. He did so for a number of reasons. I was particularly taken by this one:

So, you should buy Mindfire if only to learn what it is Scott would like to write about that makes publishers run a mile.

I have deliberately added this post to the Project Management category, Scott is the project management guy 😉

Now, 2011, is a great time to move into Windows Phone development

Earlier this week, over at The Guardian, Matthew Baxter-Reynolds essentially asked the question: Where do the Windows Mobile developers go now?

Except that the article was actually called Why Android is the natural alternative to Windows Mobile for developers. The strapline for Matthew’s article added a little more meat to that statement: “When Microsoft killed off Windows Mobile, it left would-be developers with experience in its tools who wanted to build ‘line-of-business’ apps with a problem: what could they target?”

Matthew’s article covered many topics. It touched on:

  • fabrication of Windows Mobile and Android devices
  • line of business application development using the iPhone, Android and Windows Phone
  • patents
  • BlackBerry and RIM

It’s a well-written piece and I would urge you read it and Matthew’s other material.

I’d like to focus on one small piece of Matthew’s article. Specifically the piece about Windows Phone:

Windows Phone is also a pain because no one has them and no one (yet) wants to buy them. I believe this will improve when Windows 8 hits the market next year, but until then it’s difficult to pitch to customers. Plus you would think migrating software and apps from Windows Mobile to Windows Phone would be easy. It’s not, because of the radically different Silverlight-based user interface model. Windows Mobile is .NET-based and Java-esque.

It is fair to say that much has been written [during 2011] about the uptake of Windows Phone devices. The phone manufacturers [HTC, Samsung, LG, etc.] must be furious with the way the phone carriers [the likes of O2, Vodafone, T-Mobile, Orange, Three] have failed to market their Windows Phone products. It wasn’t until I was at DDD North on the 8th of October 2011 that I saw more than one Windows Phone device in the same place. In fact, as @scottisafool noted, by virtue of there being a handful of Windows Phone devices in the same place, it put many High Street stores and supposedly phone-savvy supermarkets to shame.

Every market has to start somewhere. Windows Phone is the new kid on the block and it has moved into a block that’s already very well established; current residents include Android, iOS and to some extent BlackBerry. Given that major pundits are referring to Windows Phone as the third member of the mobile ecosystem, I believe it’s fair to follow Matthew’s recommendation to ignore BlackBerry. Unless RIM have an ace up their sleeve, I have to agree with Matthew.

Despite this apparent low uptake, it hasn’t thwarted the application developers. As of today there are some 35,000 applications in the Windows Phone Marketplace. Many of the reputable news sources for Windows Phone report that about 90% of the core apps and games that “the others” have on their iPads, iPhones and Android tablets are available for Windows Phone devices. Whilst that suggests the market is pretty much sewn up, there are still gaps that need filled. Contrast this with the fact there are over 500,000 applications available for iPhone and Android devices and it’s fair to say Windows Phone has some catching up to do. Assuming, of course, that you believe catch up is required. One has to ask how many of the 500,000 or so applications are unique or are so trivial that calling them an application is an overstatement.

Nokia’s presence in the Windows Phone ecosystem should not be under-estimated. Rumours about their device line up have been rife. Leaked photographs of their proposed Windows Phone device(s) have been published, analysed and analysed again. This weekend, October 21st and 22nd 2011, TV viewers in the UK started to see subtle hints from Nokia, the Sea Ray made very short but pointed appearances between adverts in major shows on Saturday evening. This advertising, albeit very short, is very welcome. Windows Phone marketing has been beyond disappointing, a fact that cannot be denied and a fact that isn’t UK-specific. I would hope that advertising picks up as we get closer to Nokia World, October 26th 2011, when Nokia’s devices will be revealed to the public for the first time. Nokia have the ability to produce, market and sell millions of devices. In Europe, they are virtually independent of any particular demographic: kids, teenagers, housewifes, workers / business users, pensioners, the military…they all use Nokia devices.

Whilst Matthew believes no one has them [Windows Phone devices], he does believe that people will want to buy them in the future. And that’s the key: the future. The future for Windows Phone isn’t 12-18 months away, or further. It’s between now and Q1 2012. It’s now. Microsoft’s careful approach, whereby they built Windows Phone version 7.0, used customer feedback to refine it with NoDo and subsequently with Mango, mean they have an operating system that is a first class citizen in the mobile space. It can compete, and win, against the likes of iOS and Android.

Windows Mobile developers will continue to have their market in line-of-business applications for as long as there is demand and device availability. Where should they turn to next? Matthew believes that Windows Mobile developers should be focusing their future development efforts in the Android space. I have to disagree with that thought! The Android market is saturated. Android is an operating system that suffers from considerable fragmentation; there are many versions of Android, spanning major version numbers, still in use today. Examining the various platform versions, I see there are only a few flavours of Android that are “accepted” as primary development targets, which is a step in the right direction. Even if you target the three major versions of Android, the open source nature of Android means that developers might find themselves having to work around issues that are very device-specific.

Windows Mobile developers will find themselves moving from Microsoft’s .NET platform over to Java, which is means moving away from Visual C++ and the Visual Studio IDE. Thankfully, the existence of third-party tools such as MonoDroid, allow us to write C#/.NET code that can be deployed to the Android platform. However getting started with MonoDroid will cost you at least $399, which is very much worth it if you wish to avoid entering the Java camp. On the plus side, once you’ve written your application, it can be submitted to the Android Store and available for sale within hours. Ultimately, moving from Windows Mobile to Android should be considered a complete platform change: all of the tools, software development kits (SDKs), frameworks and deployment targets have changed. You could be buying into a whole new set of problems.

Windows Mobile developers who are considering a move to iOS are in for a similar surprise. Apple’s iOS relies on the Objective-C programming language. I won’t go into Objective-C in this post, but if you need to read more, there’s good content in this article over at The Guardian. Whilst iOS developers don’t suffer from Android’s OS fragementation, they do suffer from Apple’s lengthy application submission process. I’ve heard some developers say the application submission process can take weeks. I’ve also heard that Apple can reject applications without providing any reasons as to why the rejection occured – I believe Apple have gone as far as to ignore some Google application submissions! Not surprisingly, tools such as MonoTouch exist, whereby we can write C#/.NET code that runs on iOS. If I was developing for iOS, I’d be seriously considering the $399 cost for MonoTouch. Again, moving from Windows Mobile to iOS should be considered a complete platform change and one that may have a significant cost attached to it.

Contrast Android and iOs with the Windows Phone modus operandi. Windows Phone applications can be developed using a tool that Windows Mobile developers should be reasonably familiar with: Visual Studio. Windows Mobile developers have been used to working in a managed code environment for some time now and they are particularly comfortable with the Visual C++ language. Windows Phone development will mean developers use their choice of C# or Visual Basic – this shouldn’t be a major undertaking as it’s not a complete platform change. Windows Mobile developers should have a good grasp on the .NET framework. The move from Visual C++ to C# is, in my opinion, fairly painless. Yes, they will have to contend with a new deployment target, however it’s not a case of “all change” as it would be for Android and iOS, developers get to stay in the overall Microsoft ecosystem. And or course, the Windows Phone development tools are free, which is always good.

Many businesses are already allowing Windows Phones to form part of their device portfolio, whether the device is on the corporate asset register or simply owned by an individual. Once the consumer market opens its mind to the fact there are alternatives to Android devices, iOS devices, BlackBerry devices, the business space will see similar such uptake. Consumers have day-jobs, they don’t want to find themselves using a state-of-the-art Windows Phone device to manage their personal life and then to have to use a candy bar to make phone calls in their corporate life. Nokia used to be in the candy bar market, especially for corporate customers…I still have a Nokia 6021 gathering dust! Ironically, I carry a Palm Treo 750 (Windows Mobile 6) instead of the Nokia 6021. I also carry an HTC HD7 Windows Phone – it’s my personal phone. The HD7 gets more use than the Palm does – putting Windows Phone aside, the screen size makes it so much more useable.

Whether Windows Mobile developers choose Android, iOS or Windows Phone, they will still find themselves building their line-of-business applications using a new user interface metaphor – gone are the small buttons and stylus-inspired Windows Mobile user interfaces. Windows Phone, like the iPhone and Android is all about touch, sliding, pinching and tapping. Despite the ease at which I believe a Windows Mobile developer could pick up the Windows Phone development environment, it’s not the main reason I believe that they should move into Windows Phone application development. The ease at which a Windows Phone application can be developed is certainly a very important reason, however it’s not why I’ve written this article.

The primary reason is the exponential growth that we are about to see in Windows Phone uptake, particularly in the consumer space. As noted earlier in this article, during the week leading up to Nokia World, the commercial UK TV channels carried a number of subtle adverts. Even today, Monday 24th October, the free Metro commuter newspaper carried an advert for the HTC Radar – granted it could have done with having more than a “cake” on the screen, it could have showed off the OS! Assuming Nokia World proves to be the catalyst that Windows Phone needs and deserves, Q4 2011 and Q1 2012 are going to see massive uptake in the Windows Phone space. Demand for Windows Phone applications is going to go through the roof early next year, 2012. We need to be developing applications to meet that demand and we need to be doing it now. Rarely do we get a moment like this, we have six months notice that good times are coming: action, now! The Windows Phone market needs you!

So, you see, now, 2011 is a great time to move into Windows Phone development.

Software projects that are over-budget and late: please, don’t blame us…

[Originally drafted in March 2010, published February 2011]

For many decades now, developers and IT departments have been at the receiving end of a lot flack. Flack stemming from the fact that many software projects cost more than originally estimated and take longer to reach production than previously thought. Typically, it’s the fault of the folks near the bottom of the tree: the developers or the IT department. This blog post is a tale of woe that highlights the blame culture that we live in and how this author believes that blame to be misdirected, at least in some cases.

Most software projects have some sort of plan, a list of activities, a product backlog, user stories, perhaps even a schedule. Regardless of your religious view in the waterfall or agile space, you will have requirements noted down somewhere using whatever technique floats your boat. You may also have an “end date” (aka a go live date) that is either dictated by some form of time estimate based on the list of activities or, worse, by a third party. Invariably, you may not have a lot of say in the estimation process…you have to hope that the person is reasonably good at estimating how long it will take a somebody else to complete a task. Remember, that person is estimating how much time somebody else needs to complete a task: a task in a domain they most probably know very little about (“stick a button on that form there, how hard can it be?”)

Thinking about scope: can you produce a flowchart outlining your current process, the process that you want a magical application to replace? If you can’t produce a flowchart, how do you expect other people to understand the start point, the processing and the end point? You can expect some help from your developer, programmer or system implementor when it comes to documenting your current workflow; equally you can expect some help from them when it comes to documenting your requirements. However, don’t turn to your developer, programmer or system implementor and tell them that you don’t have the time to document the requirements or document the workflow. If you don’t have time to tell us what you want in the first place, we know (from experience) that you’ll not have time to help us with user acceptance testing later on in the project – assuming we can build a system worthy of user acceptance testing in the absence of any real requirements.

All too often developers and IT departments have been getting it in the neck for project failures. However, little has been said about the fact that the blame really lies with those further up the project hierarchy. Failure to provide adequate work scope / definition results in confusion and the potential for large amounts of scrap and rework. Developers don’t mind throwing code away as a result of refactoring, however they do mind shelving code because it has suddenly become redundant or is now not part of the solution.

In a recent current project I was told “we don’t have time to write a specification”. However, we do have the time to overrun by many months and we do have the budget to fund the additional development and to cover the opportunities that are lost. With no end in sight, developer morale takes a hit, they lose direction. Similarly, there can be nothing worse for a developer to be on a project where s/he doesn’t know what they are meant to be doing? And worse, if they do find out what they are meant to be doing, to have it change from one week to the next. Or even to have it [the glimmer of hope, the taste of the requirement] change from day to day.

In the absence of a specification, feature creep is inevitable. Development cycles feel, and often are, endless. Even with an understanding and helpful client, the absence of a specification is a golden ticket for those who want everything from the system. Specification-less projects suffer from feature creep and work scope additions. All of the “nice to haves” suddenly come out of the woodwork. And because there’s little in the way of contractual documentation in place to lay down the law or draw the line in the sand, there’s nothing you can do apart from argue your case against adding features. The time you spend arguing your case, is time you’re not working on the project, you’re not progessing the project towards completion, the delay gets worse. Mind you, perhaps it’s a good thing that you’re not working on the project, after all, do you know what you’re meant to be doing?

Software development is a complicated process.  Unstructured and unproven time/budget “guesstimation” just doesn’t work in this industry.  You can’t say to software developer “two weeks” to write an enterprise class system that replicates the functionality of commercial of the shelf software costing many £000’s per license.  Two weeks is how long it might take you to cut’n’paste a spreadsheet together…it’s hardly long enough to develop all but the most simple functionality.  In the absence of a specification, database schemas are an ever-changing beast.  In most data-driven applications, the database schema is comparable to the foundations of a building.  The foundations are not something you want to change half way through the development.  Granted, clever people have written applications with dynamic database schemas…but they weren’t written in two weeks, or part thereof. 

After the database design, there’s the user interface.  Yes, it is easy to drop a button on a form!  What’s not so easy is what that button does when you click on it.  Anything beyond MessageBox.Show(“Hello, world!”); is where the time is spent.  I’m grateful to have seen multi-page specifications for the action behind a single button – if you can find somebody willing to invest the time and effort in writing such detail, the payoff is amazing. However, such people are few and far between. In today’s day and age, agile is where it’s at and user stories are King. Ultimately, it’s an emotive topic and one that I will not debate here (although you are free to discuss in the comments) – I don’t mind how you capture requirements, as long as you do.

Software developers struggle to work with “what’s in your head today”, knowing from experience that it will change tomorrow. Even in the agile world, there has to be an element of commitment: if you change your mind day after day, you’ll get a reputation and folks will end up using baseball bats to extract requirements. That’s not a good look, trust me on that. Oh, and don’t take the picture too literally: don’t do things on a handshake, that doesn’t work either: put something in writing, a contract, something that sets the scene and defines the lay of the land.

Requirements: however you document them – they are the light at the end of the tunnel for you and for the developer / development team. If your developer / development team ask you for “better requirements” very early in the project (or, shoot, even at the very start of the project), don’t dismiss it. Listen to them, they probably have a point. They are the folks who’ll be writing the software and they are the folks who’ll struggle to prepare a deliverable based on incomplete or inaccurate scribbles on whiteboard or sheets of paper.

Requirements: abuse them at your peril. In the absence of requirements, prepare yourself for a bottom-less pit that will consume time, money, other potential projects/opportunities and the morale of your development team.

Considered Reading

PM#11 – Management By Shouting Loudest (MBSL)

[Originally drafted in 2008, published 2011 with minor modifications]

Via http://mysite.verizon.net/charliez/murphy.htm

Swipple’s Rule of Order
He who shouts loudest has the floor.

He who does shout loudest and takes the floor, often fails to realise that there may well be other people who can’t or won’t shout louder. Thus we find ourselves in a position whereby other folks’ opinions are either not heard or become of secondary value: there is a huge lost opportunity. It’s a lost opportunity because those folks whose ideas and opinions that are not heard, may well be better than those offered by the people who shout the loudest. Shouting the loudest may also be referred to as Management By Shouting Loudest (MBSL).

Similarly, he who shouts loudest may believe that their contribution or their requirements should take priority over those contributions suggested by others. Where prioritisation is assumed, one needs to consider the knock-on effect – whenever something becomes your top priority, something has to give. A lack of warning or preparation on the part of others means we suddenly have an emergency to deal with. It’s also about respecting folks’ schedules – folks in IT don’t sit at our desks twiddling our thumbs waiting for your emergency to happen (a common misconception that affects the IT industry on a large scale).

If you do succumb to accepting a task from somebody who shouts the loudest, think about the impact it has on your current schedule. What is being sacrificed? What is going to take longer to complete? Apart from yourself, who are you letting down as a result of accepting the MBSL task?

It’s no wonder that “he who shouts loudest” is a very old trick and one that is still in use today. Watch out for it, try to curb its use by catching it early: try and coach the person doing the shouting into adopting a more democratic approach. Look out for lost opportunity moments, capture those, give them air time – you may be surprised how much innovation is lost by accepting the MBSL way.

In this series:
PM#10 – The truth is best…admit it…
PM#9 – Avoid duplication of effort
PM#8 – Multi-tasking is evil
PM#7 – High workload means lower productivity…
PM#6 – You were right and I was wrong
PM#5 – Whose schedule is it anyway?
PM#4 – Start it…finish it
PM#3 – Use e-mail properly
PM#2 – Focus on the project
PM#1 – decision making

Job: immediate start, Fife: .NET 4, VB.NET / WebForms – Go live opportunity!

Via Twitter, I have been made aware of a software development opening with a firm in Fife. They have been working on an application that is very close to completion and thus go live. They are seeking a VB.NET / WebForms developer to take this .NET 4 project through to completion. This is a great opportunity to establish a relationship with an exciting and growing company.

If you have immediate availability (and are ideally based in Fife!), please get in touch with either Phil via Twitter or myself (my e-mail address is at the top right hand side of this page) and we’ll put you in touch!

Actual (real) developers only please, no agencies.

Santander: a bunch of stupid bankers, you suck

12.05.2011 – update
After being contacted by BBC Watchdog, Santander telephoned my wife to offer an apology and £100 (cheque) compensation. They accepted that things could have been done better and the complaint handled in a shorter time-frame. Whilst we had pretty much accepted an earlier offer of £20 credited to the account card, the apology and the extra £80 were in line with my request in the a letter of complaint to Santander in January 2011. Santander’s apology has been accepted.

Santander bank has made huge inroads into the UK finance sector. Abbey National, for example, suddenly became Santander…and from what I’ve heard from at least one customer, they’re not doing too good a job of it. Similarly, I’ve read an awful lot about how Santander are at the top of list of banks that consumers complain about. As you might expect, given the title of this blog post, I am about to “add one” to that pile of complaints.

Neither my wife or I have bank accounts with Santander, however my wife does/did have an Evans store card. In their “great buy up”, Santander acquired the Evans store card business along with Asda, BHS, Burton, Dorothy Perkins, Topshop, Miss Selfridge, Wallis and Outfit. It’s likely that they’ve got the store cards for those outlets too. Some evidence of this can be found over at Martin Lewis’ Money Saving Expert forums, here and here. And they’re not getting any better, as this post suggests.

Anyway, on to the problem that Santander created on my wife’s Evans card…and thus a problem that I have to work to solve.

During November 2010 my wife received her Evans card statement. It showed the previous balance and a payment received covering that same balance. It also showed a Late Payment Fee of £12. Naturally my wife was concerned and telephoned Nikita at Santander – Nikita assured my wife that it was their error and the £12 would be refunded. Here’s a copy of the statement:

Indeed, Nikita’s information was confirmed by Santander’s Tim Woods (Head of Santander Contact Centers) when he wrote to my wife on the 23rd of November 2010:

Sounded good. Sounded like Santander might have been proactive and sorted it out themselves. Great. Mr Woods works for Geoban – “Geoban is an internal company to Banco Santander, providing Operational Excellence to the Group Companies”. Operational Excellence, can’t get better than that, we’re in good hands.

At the end of November another Evans card statement arrived. It showed that the £12 late payment fee had been refunded as promised. However, it also showed another late payment fee had been applied. My wife telephoned Santander on the 13th of December and spoke with Shiraz. Shiraz did exactly what Nikita did, assured my wife that it was their error and the £12 would be refunded. Here a copy of that statement:

Further communication from Santander resulted in my wife asking Maddie on the 31st of December 2010 to close the account. Maddie assured my wife that the £12 late payment fee and this new amount of £4 were both Santander errors and that she would sort things out. Santander’s Andrew Hall wrote to my wife. Mr Hall is the Head of Collections Contact Centre at Santander Cards UK, he’s “a highly motivated, results focused Senior Manager with extensive Consumer Finance experience. Proven skill set in people management and process and performance improvement within Collections and Bad Debt functions”. Mr Hall, you might be highly motivated, but my wife is highly demotivated…I think you could do better, don’t you?

In between Christmas and New Year, things took a turn for the worse. Santander had the cheek to send out a Notice of Sums in Arrears letter. Of course, my wife was upset enough at the first two mistakes made by Santander, this pushed her over the edge, there were tears. How can a bank be allowed to do this? And for the measly sum of £4, created by their own error. Here’s that letter:

However, early in the New Year, we received an automated telephone call at 0820 on the 2nd of January 2011 reminding us of the “debt”. I myself spoke to some Santander guy called Kirt, who said “I can’t do nothing because of the Data Protection Act” in what I believe to be a Liverpool accent…double negatives, they suck too. So clearly Maddie hadn’t closed the account as requested a few days earlier. Kirt told me that the “telephone system” can take a few days to update itself and that we weren’t to worry about it. Incredible – the 2nd of January was a Sunday. What sort of company telephones its customers at that sort of time on a Sunday?

It seems that the Late Payment Fee is something that just gets refunded and reapplied. It won’t go away until somebody at Santander pulls their finger(s) out and accepts that there is a problem they need to sort out.

All of the telephone calls that my wife made to Santander were to their 0871 number…at a cost of 10p per minute. After a little bit of searching, it turns out that 020 8181 0000 should also work, as will 0113 280 7080. I’ll be looking to recover the cost of calls from Santander -they can’t expect us to cover the cost for their mistakes.

I was planning to switch my current account over to Santander in order to take advantage of the £100 switching fee. This made sense as my current account is with a Royal Bank of Scotland (RBS) branch in England. Santander are taking over many of the English branches of RBS – I figured I would switch, collect the £100 and be in the same boat. However, this incident has taught me a lot about Santander, they’re not a bank I want anything to do with. As such, I have instigated an intra-bank switch, from my RBS branch in England, to one north of the border here in Scotland.

What’s next? Well, I hope that this blog post kicks Santander where it hurts – their stupidity and inability to rectify a simple self-made error frankly astounds me. If we make a tiny error, perhaps by going overdrawn by a single penny, the banks are the first to hit us hard. I’ve already had a short e-mail exchange with ‘CustomerServices@santander.co.uk’, who rather amazingly said “we don’t deal with the cards”! So now I’ve included ‘complaint.info@financial-ombudsman.org.uk’ in the loop.

Santander has most likely cost Evans my wife’s custom. It might not have been much, however in today’s climate, all custom is good. It seems that if Santander are to improve, it will take the likes of Evans, etc. to tell them. However, the damage has been done…

Moral of this post: avoid Santander bank. If your RBS account is with a branch that is about to be taken over by Santander, start thinking about switching – use uSwitch to help you if necessary.

26th – 30th July 2010 – London – Professional Scrum Developer (.NET) – 50% discount

On the 26th – 30th July in Microsoft’s offices in London Adam Cogan from SSW will be presenting the first Professional Scrum Developer course in the UK. Martin Hinshelwood will be teaching this course along side Adam and it is a fantastic experience. You are split into teams and go head-to-head to deliver units of potentially shippable work in four two hour sprints.

Update 18th June 2010SSW is offering a massive 50% discount to make this 5 day course only £1,168…I have been told that this depends on availability so it may go back up.


ProfessionalScrumDeveloper_200px[3]

The Professional Scrum Developer course is the only course endorsed by both Microsoft and Ken Schwaber and they have worked together very effectively in brining this course to fruition. This course is the brain child of Richard Hundhausen, a Microsoft Regional Director, and both Adam and I attending the Trainer Prep in Sydney when he was there earlier this year. He is a fantastic trainer and no matter where you do this course you can be safe in the knowledge that he has trained and vetted all of the teachers. A tools version of Ken if you will Wink
LondonCallToAction[1]

If you are outside the UK you can find out where this course is being run near you. Make sure you have a look at the scrum guide from Scrum.org and the syllabus from Accentient.


What is the Professional Scrum Developer course all about?

imageProfessional Scrum Developer course is a unique and intensive five-day experience for software developers. The course guides teams on how to turn product requirements into potentially shippable increments of software using the Scrum framework, Visual Studio 2010, and modern software engineering practices. Attendees will work in self-organizing, self-managing teams using a common instance of Team Foundation Server 2010.

Figure: Sam and Ken discuss the PSD Course

Who should attend this course?

This course is suitable for any member of a software development team – architect, programmer, database developer, tester, etc. Entire teams are encouraged to attend and experience the course together, but individuals are welcome too.

Attendees will self-organize to form cross-functional Scrum teams. These teams require an aggregate of skills specific to the selected case study. Please see the last page of this document for specific details.

Product Owners, ScrumMasters, and other stakeholders are welcome too, but keep in mind that everyone who attends will be expected to commit to work and pull their weight on a Scrum team.

What should you know by the end of the course?

Scrum will be experienced through a combination of lecture, demonstration, discussion, and hands-on exercises. Attendees will learn how to do Scrum correctly while being coached and critiqued by the instructor, in the following topic areas:

  • Form effective teams
  • Explore and understand legacy “Brownfield” architecture
  • Define quality attributes, acceptance criteria, and “done”
  • Create automated builds
  • How to handle software hotfixes
  • Verify that bugs are identified and eliminated
  • Plan releases and sprints
  • Estimate product backlog items
  • Create and manage a sprint backlog
  • Hold an effective sprint review
  • Improve your process by using retrospectives
  • Use emergent architecture to avoid technical debt
  • Use Test Driven Development as a design tool
  • Setup and leverage continuous integration
  • Use Test Impact Analysis to decrease testing times
  • Manage SQL Server development in an Agile way
  • Use .NET and T-SQL refactoring effectively
  • Build, deploy, and test SQL Server databases
  • Create and manage test plans and cases
  • Create, run, record, and play back manual tests
  • Setup a branching strategy and branch code
  • Write more maintainable code
  • Identify and eliminate people and process dysfunctions
  • Inspect and improve your team’s software development process

What does the week look like?

This course is a mix of lecture, demonstration, group discussion, simulation, and hands-on software development. The bulk of the course will be spent working as a team on a case study application delivering increments of new functionality in mini-sprints. Here is the week at a glance:

image

Monday morning and most of the day Friday will be spent with the computers powered off, so you can focus on sharpening your game of Scrum and avoiding the common pitfalls when implementing it.

The Sprints

Timeboxing is a critical concept in Scrum as well as in this course. We expect each team and student to understand and obey all of the timeboxes. The timebox duration will always be clearly displayed during each activity. Expect the instructor to enforce it.

Each of the ½ day sprints will roughly follow this schedule:

Component Description Minutes
Instruction Presentation and demonstration of new and relevant tools & practices 60
Sprint planning meeting Product owner presents backlog; each team commits to delivering functionality 10
Sprint planning meeting Each team determines how to build the functionality 10
The Sprint The team self-organizes and self-manages to complete their tasks 120
Sprint Review meeting Each team will present their increment of functionality to the other teams ≤ 30
Sprint Retrospective A group retrospective meeting will be held to inspect and adapt 10

Each team is expected to self-organize and manage their own work during the sprint. Pairing is highly encouraged. The instructor/product owner will be available if there are questions or impediments, but will be hands-off by default. You should be prepared to communicate and work with your team members in order to achieve your sprint goal. If you have development-related questions or get stuck, your partner or team should be your first level of support.

Module 1: INTRODUCTION

This module provides a chance for the attendees to get to know the instructors as well as each other. The Professional Scrum Developer program, as well as the day by day agenda, will be explained. Finally, the Scrum team will be selected and assembled so that the forming, storming, norming, and performing can begin.

  • Trainer and student introductions
  • Professional Scrum Developer program
  • Agenda
  • Logistics
  • Team formation
  • Retrospective

Module 2: SCRUMDAMENTALS

This module provides a level-setting understanding of the Scrum framework including the roles, timeboxes, and artifacts. The team will then experience Scrum firsthand by simulating a multi-day sprint of product development, including planning, review, and retrospective meetings.

  • Scrum overview
  • Scrum roles
  • Scrum timeboxes (ceremonies)
  • Scrum artifacts
  • Simulation
  • Retrospective

It’s required that you read Ken Schwaber’s Scrum Guide in preparation for this module and course.

MODULE 3: IMPLEMENTING SCRUM IN VISUAL STUDIO 2010

This module demonstrates how to implement Scrum in Visual Studio 2010 using a Scrum process template*. The team will learn the mapping between the Scrum concepts and how they are implemented in the tool. After connecting to the shared Team Foundation Server, the team members will then return to the simulation – this time using Visual Studio to manage their product development.

  • Mapping Scrum to Visual Studio 2010
  • User Story work items
  • Task work items
  • Bug work items
  • Demonstration
  • Simulation
  • Retrospective

Module 4: THE CASE STUDY

In this module the team is introduced to their problem domain for the week. A kickoff meeting by the Product Owner (the instructor) will set the stage for the why and what that will take during the upcoming sprints. The team will then define the quality attributes of the project and their definition of “done.” The legacy application code will be downloaded, built, and explored, so that any bugs can be discovered and reported.

  • Introduction to the case study
  • Download the source code, build, and explore the application
  • Define the quality attributes for the project
  • Define “done”
  • How to file effective bugs in Visual Studio 2010
  • Retrospective

Module 5: HOTFIX

This module drops the team directly into a Brownfield (legacy) experience by forcing them to analyze the existing application’s architecture and code in order to locate and fix the Product Owner’s high-priority bug(s). The team will learn best practices around finding, testing, fixing, validating, and closing a bug.

  • How to use Architecture Explorer to visualize and explore
  • Create a unit test to validate the existence of a bug
  • Find and fix the bug
  • Validate and close the bug
  • Retrospective

Module 6: PLANNING

This short module introduces the team to release and sprint planning within Visual Studio 2010. The team will define and capture their goals as well as other important planning information.

  • Release vs. Sprint planning
  • Release planning and the Product Backlog
  • Product Backlog prioritization
  • Acceptance criteria and tests
  • Sprint planning and the Sprint Backlog
  • Creating and linking Sprint tasks
  • Retrospective

At this point the team will have the knowledge of Scrum, Visual Studio 2010, and the case study application to begin developing increments of potentially shippable functionality that meet their definition of done.

Module 7: EMERGENT ARCHITECTURE

This module introduces the architectural practices and tools a team can use to develop a valid design on which to develop new functionality. The teams will learn how Scrum supports good architecture and design practices. After the discussion, the teams will be presented with the product owner’s prioritized backlog so that they may select and commit to the functionality they can deliver in this sprint.

  • Architecture and Scrum
  • Emergent architecture
  • Principles, patterns, and practices
  • Visual Studio 2010 modeling tools
  • UML and layer diagrams
  • SPRINT 1
  • Retrospective

Module 8: TEST DRIVEN DEVELOPMENT

This module introduces Test Driven Development as a design tool and how to implement it using Visual Studio 2010. To maximize productivity and quality, a Scrum team should setup Continuous Integration to regularly build every team member’s code changes and run regression tests. Refactoring will also be defined and demonstrated in combination with Visual Studio’s Test Impact Analysis to efficiently re-run just those tests which were impacted by refactoring.

  • Continuous integration
  • Team Foundation Build
  • Test Driven Development (TDD)
  • Refactoring
  • Test Impact Analysis
  • SPRINT 2
  • Retrospective

Module 9: AGILE DATABASE DEVELOPMENT

This module lets the SQL Server database developers in on a little secret – they can be agile too. By using the database projects in Visual Studio 2010, the database developers can join the rest of the team. The students will see how to apply Agile database techniques within Visual Studio to support the SQL Server 2005/2008/2008R2 development lifecycle.

  • Agile database development
  • Visual Studio database projects
  • Importing schema and scripts
  • Building and deploying
  • Generating data
  • Unit testing
  • SPRINT 3
  • Retrospective

Module 10: SHIP IT

Teams need to know that just because they like the functionality doesn’t mean the Product Owner will. This module revisits acceptance criteria as it pertains to acceptance testing. By refining acceptance criteria into manual test steps, team members can execute the tests, recording the results and reporting bugs in a number of ways. Manual tests will be defined and executed using the Microsoft Test Manager tool. As the Sprint completes and an increment of functionality is delivered, the team will also learn why and when they should create a branch of the codeline.

  • Acceptance criteria
  • Testing in Visual Studio 2010
  • Microsoft Test Manager
  • Writing and running manual tests
  • Branching
  • SPRINT 4
  • Retrospective

Module 11: OVERCOMING DYSFUNCTION

This module introduces the many types of people, process, and tool dysfunctions that teams face in the real world. Many dysfunctions and scenarios will be identified, along with ideas and discussion for how a team might mitigate them. This module will enable you and your team to move toward independence and improve your game of Scrum when you depart class.

  • Scrum-butts and flaccid Scrum
  • Best practices working as a team
  • Team challenges
  • ScrumMaster challenges
  • Product Owner challenges
  • Stakeholder challenges
  • Course Retrospective

What will be expected of you and you team?

 
This is a unique course in that it’s technically-focused, team-based, and employs timeboxes. It demands that the members of the teams self-organize and self-manage their own work to collaboratively develop increments of software.

All attendees must commit to:

  • Pay attention to all lectures and demonstrations
  • Participate in team and group discussions
  • Work collaboratively with other team members
  • Obey the timebox for each activity
  • Commit to work and do your best to deliver

All teams should have these skills:

  • Understanding of Scrum
  • Familiarity with Visual Studio 201
  • C#, .NET 4.0 & ASP.NET 4.0 experience* 
  • SQL Server 2008 development experience
  • Software testing experience

* Check with the instructor ahead of time for the exact technologies

Self-organising teams

Another unique attribute of this course is that it’s a technical training class being delivered to teams of developers, not pairs, and not individuals. Ideally, your actual software development team will attend the training to ensure that all necessary skills are covered. However, if you wish to attend an open enrolment course alone or with just a couple of colleagues, realize that you may be placed on a team with other attendees. The instructor will do his or her best to ensure that each team is cross-functional to tackle the case study, but there are no guarantees. You may be required to try a new role, learn a new skill, or pair with somebody unfamiliar to you. This is just good Scrum!

Who should NOT take this course?

Because of the nature of this course, as explained above, certain types of people should probably not attend this course:

  • Students requiring command and control style instruction – there are no prescriptive/step-by-step (think traditional Microsoft Learning) labs in this course
  • Students who are unwilling to work within a timebox
  • Students who are unwilling to work collaboratively on a team
  • Students who don’t have any skill in any of the software development disciplines
  • Students who are unable to commit fully to their team – not only will this diminish the student’s learning experience, but it will also impact their team’s learning experience

 


LondonCallToAction[1]

If you are outside the UK you can find out where this course is being run near you. Make sure you have a look at the scrum guide from Scrum.org and the syllabus from Accentient.