Wednesday 28 January 2015

Versioning for a reason

Please do not push an un-versioned release to your test environment only to recompile and push a versioned dll to your Production environment. If the version numbers do not match then you should not presume that the application code will behave in the same way. If your QA and Testers have signed off version 0.0.0.0 of the application (which could be absolutely anything) How can your product manager confidently allow version 1.0.0.0 or 1.3.11.2 to be released.

So we know that version numbers important, but for whom?

Software version numbers are there for the management of the software through all of the processes that follow the code being written. We need to know what code is being tested, we need to know what code the user has signed off, and we need to know what features are being delivered to the end user. The only person that doesn't need to know about the version number is the user themselves.

How do we keep our version number unique?

The version number of a .Net assembly is made up of 4 sets of numbers (Primary, Secondary, Tertiary and Quaternary). We *could* just use four sets of random numbers, alternatively we could make this version number into something more meaningful.


We could use the Primary number to represent the primary functionality offered by the product. When there is a significant upgrade to the functionality, perhaps the number could increment based in the completion of an epic story. Given this, the product manager is able to understand what his product is offering based on this number.

We could use the Secondary number to represent incremental updates to the existing functionality. These would be enhancements to existing functions of the system, perhaps indicating project milestones or story completion.

We could use the Tertiary and Quaternary numbers as an incrementing 'unique' aspect to the full version number. I have previously used these to signify the time from the start of a Product's development. Currently I am using the Tertiary number to represent the days since development began and the Quaternary number to state the build number for that given day.


What have we got?

We've now got a version number that is not just unique, and therefore traceable through all stages of our development and deployment processes. But one that also contains meaning for everyone involved in the process of delivering the software to the end user.

Wednesday 21 January 2015

Festival of the Spoken Nerd


Last year I went to the theatre to see Festival of the Spoken Nerd. It was a really fun show, full of tweeting, geekery, Science, Music and Jokes. If you get the chance, try and watch one of their shows, they will be trying out new material in February and March.

Spoiler Alert
Last years 'Full Frontal Nerdity' tour described The Mould Effect by Steve Mould



There was also smoke ring William Tell moments and a nice talk about RGB.
Inspired by this, here is an RGB excel image of my project team. 
My TeamZoom in for the RGB values,  and out for the low resolution image to appear.

Sunday 18 January 2015

The Utility Belt

Every month I give a presentation to my company's development team. For Decembers presentation, I asked for the group to have a think about the tools and utilities that make their (development) life easier. I gave each developer up to 5 minutes (per tool) to present to the team, focussing on "what is it, where is it, why they have found it useful".

This session was aimed to help increase awareness of some of their great finds and to encourage their adoption. I presented two tools (orca and wilogutl) from the Windows Installer SDK and a one page stocking filler. The presentation went really well, achieved its objectives and received some great feedback. A nice by-product of this session was that it helps build confidence across the entire group.

Extract From Presentation

As long as your company policy and the product licence allows it. Please share your love of the utilities that make your life easier with your co-workers. If they are good for us, they may be good for them too and ultimately make your department more productive.

Remember, Batman doesn't need super powers, but he does rely on some great tools in his utility belt.

Wednesday 14 January 2015

Find of the Day

The other day I found this ALM book underneath a colleagues monitor.

Whilst it's a great way to raise the height of a monitor screen, it makes for an even better read. If you are keen to find out more information on ALM for VS 2010 I would highly recommend this book.

Recently I attended one of Microsoft's one day ALM courses. It was encouraging to engage with other people at different stages of Maturity on the Continuous Delivery Matrix (more on this in a later post).

You can find these courses on the microsoft events site, book a day off work and attend one.

http://events.msdn.microsoft.com/

If you're quick then you might be able attend the event on the 28th January 2015 "ALM With Visual Studio & TFS 2013" at London Whitechapel.

Monday 12 January 2015

Why have a blog

I decided to have a little think about this when I saw the latest stats for my blog posts. I was a little concerned I was getting relatively few views on my content.

These stats made me think about why I was blogging, and I realised that for me the blog is a form of expression, it's a place where I can record some observations, share information with others and project an identity.

Observations

You should always reflect on your recently completed work. By understanding the pain points of recent projects, we have an opportunity to build on our successes and learn from any failings. The blog is a great way to document some of what you have observed through this process.

Sharing

You can't force people to be interested in the things that interest you. But the chances are, if they're reading your posts, then they are part of the same sphere of people and may have overlapping interests. So when you find a stash of online books or come across an interesting article, don't keep it to yourself, broadcast it.

Projection

In a global company, we can be seen more by our persona than our real self. Therefore, regardless of how great you may think you are in real life, the perception of you as an individual may be "one of the drones in sector 7G". Your blog allows people to understand who you are, and what interests you.

Wednesday 7 January 2015

Meetings: Where Work Goes to Die

For no reason at all, I was reminded of one of Jeff Atwood's blog posts the other day Meetings: Where Work Goes to Die


Basically it suggests that, although communication is what we need to succeed, we need to make sure that time spent in meetings is time well spent.

Here are a few of his methods to keep a meeting succinct.

  • No meeting should ever be more than an hour, under penalty of death.
  • Every meeting should have a clearly defined mission statement. (Agenda/Goals)
  • Do your homework before the meeting.
  • Make it optional.
  • Summarize to-dos at the end of the meeting.
If meetings are part of your life, please watch the following video, as recommended by @Toopots 





Sunday 4 January 2015

Implementing a KanBan board

Sometimes you find yourself in a situation where the ideal tool for doing a job is unavailable. If you are working with TFS 2010 in an Agile team, then you may find yourself in this situation; you want for the means to visualize the ALM progress of tasks, but there's no integrated KanBan board. Here are a few solutions you could take:

Post-It notes and Whiteboards

A cheap but viable option, the big downside is that it is not an integrated solution. Either you will have to declare that the post-its themselves represent the definitive 'scope of work' or you will need to create a manual step of updating the tasks in TFS with the progress of tickets on the board.

 

Upgrade to TFS 2012+

From the 2012 release onwards we saw some great new features in TFS's Application Lifecycle Management including the introduction of KanBan visualisation. Users (including the Project Manager) can access the TFS web task viewer, and even access stats and reports about the state of the project, including the points burn down, build success over time, number of bugs and items in the product and the sprint backlog. A big bonus here is that the task board can be directly updated by the user (as easily as moving a physical ticket).


 

VisualWIP

You could introduce a third Party TFS data visualisation tool (or roll your own). We've used VisualWIP [http://visualwip.codeplex.com/] to enable us to configure a report to pull from a set of TFS queries. At the start of our projects we created a set of TFS Work Item Queries to represent each column of data that we want the report to the display. As tickets get created and their state changes the tickets location on the report updates to reflect the current state of tickets in TFS.


We had previously used the Post-It note option, to help people get up to speed with the concepts of sprints and continuous delivery. Once people became engaged with the task boards (it is easier to get initial engagement with something more tactile than a monitor), we looked to migrate the ticket management to TFS. As we did not have the option of upgrading to TFS 2012+ we chose the most integrated solution possible to us. We now display our KanBan on a reporting monitor where our project team works, enabling everyone to be aware of the flow of tasks through the team from sprint backlog to feature completion. We also have a screen for build notifications but that's a whole new blog post.