Blog
Talk to the global leaders in fleet management, vehicle tracking and personal safety
29/11

FM-Web meets the iPhone

by Chris Van Wyk

Since I’ve started at MiX Telematics I have become a self-confessed Apple fan boy. It all started with an iPhone and progressed to a MacBook. Nothing up to know has beaten the “unpacking” experience of each of these devices. The attention to user detail is really amazing. This post however, is not to convert people to Apple, but rather to show what can be done with some C# coding for the iPhone. Yes, it’s not a typo, C# code was used to write a basic iPhone application.

Objective-C, however much touted as user friendly by Apple, I have up to now found a cumbersome language to get into. Based on this and having followed the progress of Mono, the open source implementation of .NET languages such as C# and Visual Basic, I decided to invest some time in MonoTouch.

MonoTouch as described on the Mono website: “Create C# and .NET apps for iPhone and iPod Touch, while taking advantage of iPhone APIs, and reusing existing .NET code, libraries, and skills.” And I must admit, the last part of the above ”…reusing existing .NET code, libraries, and skill.” so far has proved to 100% on the mark.

Read more..

Published on November 29th, 2010 in Mobile, Products, Software development | 1 Comment »

22/11

Kanban – learn with games

by Sam
This was originally posted at Sam’s blog: Inevitable

I love agile games – they make learning fun and interesting. Also people tend to remember the lesson as they experienced it.

I did a kanban introduction game at work with our support team who are using Kanban and our Development team is using scrum. Most people dont know what Kanban is or why we are using it – so the aim of this session was to demystify the word kanban.

To start off with I briefly explained that Kanban meant “Visual Card”, and that it was a pull as opposed to push way of working, that it was responsive to change and based on Just In Time actions. I then went through the core concepts.

Kanban Game

Core Concepts

Read more..

Published on November 22nd, 2010 in Products, Scrum, Software development | 1 Comment »

5/11

A month into the kanban support journey

by Sam

This originally appeared on Sam’s blog, Inevitable

So its one month later… what has happened?

Adaption of board

After 1 week we started adapting the board. The first change we made was to add blocks numbered 1 to 10 in the todo column so that it was clear what was highest priority.

After 2 weeks some more board changes occured…

The second change was to move to a bigger board! We had all the issues that were being worked on pre-kanban on the board, but we excluded them from the limits on the columns. The result was a really messy board.

The third change was to introduce a “parking lot” column. Many issues were with customers or hardware, and they got “blocked” stickies but were holding up the process due to column limits.

The fourth change was to add a swimlane for “pre-kanban” issues. This way we could easily identify the issues with the current support team and those outside of the team.

All of these changes resulted in a much cleaner board, and made adhearing to (and noticing) the limits much easier. One glance at the board could now show bottlenecks easily.

Retrospective

After 3 weeks we held a retropective with a representative from each column attending. In order to get feedback from all people involved we also sent out an email asking everyone who was involved for feedback.

The questioned asked were:

General feedback – overall for the 3 weeks how did you feel about the new support process?

Select one:

Happy ………….. OK …………. Disappointed

Other comments:

What worked well:

What can be improved:

What doesn’t work:

Any suggestions:

Important to note is that everyone agreed that making issues and bottlenecks visible on a board works well – better than any previous attempts at managing support items. YAY!

Looking at the data collected we then used dot voting to highlight which problems were most important to the group and thus needed to be addressed first.

These were:

Clearing the backlog – Currently the backlog items are piling up as we are limiting how many issues the support developers can look at.

Knowledge Transfer – There are a handful of developers with loads of domain knowledge. As such they do more or less everything around those domains. We need to start the painful prcess of transferring this knowledge. Naturally as the domain expert is not doing the actual work it will be slower. The suggestion here was to try dedicated time from the experts – 2 hours a day for 3 weeks.

Support Process Flow – documented. Whilst the kanban idea was explained to the first group of developers going through it – it has not been explained to the second group, so they were a bit lost for the first day or so. Also the testers in the support team have never worked in an agile way so the stand up routine is still a bit odd to them. We agreed to do a basic diagram of how the board works and what each roles responsibility is. This way anyone can look at the diagram and quickly come to terms with the new process.

One additional small item was actioned:

Template for sticky – each sticky on the board looks slightly different – and it does get confusing. We will put up a template (start date top left, end date top right etc) for people to follow.

What have we done/noticed since?

Our standup process has changed. We were going around the group – each person saying his bit but that meant jumping around all over the board and it was very confusing. After attending a Kanban course our Support Manager made the suggestion of starting from the last column and addressing all tasks there then working our way backwards to the first column. This is much better!

Moving from right to left emphasises the PULL of kanban, we are also able to discuss blockages in any of the columns as soon as we discuss the column rather than waiting till the end of the stand up. After some internet searching I came up with a new format for our stand-ups. This is now printed up on an A3 paper and stuck up next to the board as a reminder.

Another contentious issue is when to do full solutioning, when to apply a quick fix and when to add a change required to the product backlog for the development team to do. We have decided to have this discussion after our first column (Dev Analysis) and present the choices with pro’s and con’s for the Support Manager to decide on.

To add a bit of fun to the board I created South Park characters with some space to scribble your name underneath. We have 3 of each character. So each person on support can pick one that personifies them, add their name to the bottom (it wipes off) and stick that on the tasks they are working on.

We started with 3 developers rotating through support for the duration of a sprint. The idea is to balance this evenly between all 6 development teams and rotate amoungst them so that everyone gets a turn to be in support.

Conclusion

We’ve had some good days and some bad days.  All in all, based on feedback and observations we are all getting more comfortable with the new kanban process, and starting to make it work for us.

Published on November 5th, 2010 in General, Products, Scrum, Software development | 1 Comment »

23/09

The kanban support journey

by Sam

This originally appeared on Sam’s blog, Inevitable

We are embarking on a journey… as with most journeys there is excitement, nervousness and a pinch of fear  We are going to use Kanban for our support process. I’m going to blog about the journey – each leg promises to be exciting and full of lessons

“To get through the hardest journey we need take only one step at a time, but we must keep on stepping” – Chinese Proverb

The current suppport process is not working and we need something else. Kanban was explained briefly and those present are willing to give it a go. This is were I join the journey. I have been tasked with getting the process started – explaining kanban and assisting the support team to get going.

(I have previously blogged about Kanban and I have created a presentation explaining the basics. I also use Kanban for my personal items.)

First things first  – we sat together and brain stormed over a whiteboard. “We”  included me, the Customer Support Manager and the Senior Test Engineer. We had a basic understanding of the Kanban proposal, and an idea of the first “board”.

We then came up with any problem, issue, thought that we could think of and placed them on the white board. Some of these were easy to explain or deal with – so we chatted about them and moved them off the board.

The majority needed thought and discussions with others – so for now we just “parked” them.

We then moved onto the proposed board – looked at the limits, and looked at a definition of done for each column. Whilst doing this a bunch of new issue stickies were created – and went into the parking lot.

Each of us had some work to do  and we decided to start the process in 4 days time. The developers will rotate through the support team, there will be 3 developers allocated at a time, for around 15 days (their sprint duration).

Day 1 – I created the board and had a meeting with all involved to explain what we are doing and how it will work. Our board is based on the kick-start example from Henrik Kniberg.

I gave a brief introduction on Kanban to the support team. We then played the Name Game to illustrate how limiting work in process works. No-one was opposed to the new process, but rather there were concerns about how it would affect individuals.

e.g: The 3 developers on the support team have no knowledge of Product X. Some valid points were raised:

  • they will be slow at fixing Product X bugs
  • the knowledge they gain will be lost as they only work on that product when they are in support thus only every 5 or so months
  • they are more concerned about their teams products, than other products (like Product X) which they need to support (The devs work on scrum teams which are product focussed)

We need to try the  process and see what other concerns creep out. As with any process, frequent inspection and adaption will need to happen for this to be successful.

The Customer Support Manager will add stickies for his top 10 bugs. The Senior Test Engineer will document and train the necessary people in what needs to be done to meet the “Definition of Done” criteria. And in 3 days time we will have our first stand-up…

Sam wrote this on her blog, Inevitable

Published on September 23rd, 2010 in Products, Scrum, Software development | No Comments »

17/09

Getting comfortable with Scrum

by Chris Van Wyk

I’ll be the first to admit, up to mid last week, prior to the SA Scrum Gathering on the 2nd of September; Scrum was making no sense to me. Up to then, practicing Scrum was really frustrating. I’m not saying it is going to be smooth sailing from here on forward; I am sure we will still have several obstacles to overcome.

Different skill sets, legacy systems, inter-team dependencies, getting our heads around team self-management and how all of this should fit into the bigger picture of the company. And lastly, the big question, how to keep delivering value to business amidst all of this.

The single biggest revelation I had at the Scrum Gathering, was the following: Scrum is not efficient (at least not where we are at currently), however Scrum is effective.

So what does it mean? Well, our team has most definitely dropped the amount of tangible output we delivered in our 1st sprint compared to pre scrum days. By tangible output I mean “stuff” that we can show, i.e. “click-button-show-page-capture-data” “stuff”. This really got me down, where is the business value we are supposed to be delivering was the question I had more often than not driving home and some days, driving to work?

We have now established efficiency has dropped, what has happened to our time, what are we doing to be able to justify our pay check at the end of the month? We have become more effective in terms of what we knew all along we should have been delivering on previous development iterations. Unfortunately, this is the point where this post becomes fluffy, as we now are dealing with mostly intangible output.

Let me start with something easy:

Documentation

We now have, for each piece of work, the following documentation:

  • A user story, elaborated into a functional specification
  • A number of scenarios, elaborated into use cases
  • User acceptance tests derived from our use cases

Now the other:

Testable code

Ok, so not a lot of it, but we have been able to create unit tests in our database code with proper sample data, and not just AAAAA and BBBB for data fields, but proper test data to satisfy our above scenarios, which in our environment is rather challenging.

A lot of effort wet into this, 1 because we are new to it, 2 because to test some stuff turns out to be pretty hard. This is to the nature of the environment and the project. We have however learned more of each of these aspects. Did I mention we are a brand spanking new team with sparse domain knowledge?

Pair Programming

Not in the sense that we shared a keyboard or mouse or even half a screen or desk, however we did sit together to figure out the problem and create a solution everyone in the team is able support should it be required for each piece of work we committed to.

Better Team Member Knowledge

What makes the other guy tick, what she/he is good at, what does he/she sucks at and in which areas would she/he like to gain more knowledge? Help me help you so that we can be the best team we can be.

So let us look at the value proposition again. Yes, we are not currently delivering the same amount of tangibles, but we are forming a team with the common goal of delivering value to business. We are sharing our knowledge, improving our skills and putting down a knowledge base of all work we are doing. Therfore enabling people joining and/or taking over form us, making life easier for them.

So am I converted to scrum? Time will tell. The honest truth is I can see value, but I can also see this is going to be hard. We are definitely finding ourselves about to progress through the typical stages of Tuckman’s stages of group development – Forming, Storming, Norming and Performing (Adjourning and Transforming).

We will have to take it sprint by sprint.

Some photos of the team and our environment:


Chris originally posted Getting comfortable with SCRUM” on webEffects

Published on September 17th, 2010 in Products, Scrum, Software development | No Comments »

19/08

Product Owner training

by AgileGuyZA

Ok. So now im a certified Product Owner.

The course was interesting and it’s always good to hear about other people’s pain adopting scrum and where possible giving concrete help.

It was awesome to spend the two days with people from MiX and watch them growing into their new position.

More about the training

MiX Telematics attended the Certified Scrum Product Owner (CSPO) training course at the BMW Pavilion in Cape Town led by Peter Hundermark  from Scrum Sense.

It was an engaging two days with MiX being represented by Francois de Wet, Zoe Zenkins, Evangelos Gikas, Charles Tasker, Catherine Lewis, Tony Franco, and Izak Nel. During the course attendees became familiar with the role of a Product Owner and the best practises within Scrum.

Published on August 19th, 2010 in General, Products, Scrum, Software development | 2 Comments »

29/07

TDD from the start

by AgileGuyZA

tddSteps

The steps of test first design (TFD) are overviewed in the UML activity diagram of Figure 1.

  • The first step is to quickly add a test, basically just enough code to fail.
  • Next you run your tests, often the complete test suite, although for sake of speed you may decide to run only a subset, to ensure that the new test does in fact fail.
  • You then update your functional code to make it pass the new tests.
  • The fourth step is to run your tests again. If they fail you need to update your functional code and retest.

Once the tests pass the next step is to start over. You may first need to refactor any duplication out of your design as needed, turning TFD into TDD.

All credit for the post to Scott W. Ambler

Published on July 29th, 2010 in Software development | No Comments »

28/06

Building the perfect house with Scrum

by AgileGuyZA
  1. You know where you want to build your house
  2. You know what type of rooms you want and you have an idea of what furnishing and fittings need to be in the rooms
  3. You are the customer (product owner) and you deal with the workers (Scrum team) directly
  4. You have a list of rooms and features you want (backlog and stories)
  5. The workers tell you how many bricks, windows, fixtures, electrics and plumbing (velocity) they can do in 3 weeks (a sprint)
  6. You decide what rooms on the list you want done first and present them to the builders (Sprint Planning 1)
  7. The builders agree to doing this, this then becomes their blueprint for their next 3 weeks (Sprint Backlog)
  8. They work out how best to give you what you want, and create all the necessary plans and drawings needed (Sprint Planning 2)
  9. During the 3 weeks you meet and talk with the workers everyday
  10. At the end of the 3 weeks they give you a room with a floor a roof walls plumbing electrical that you can live in
  11. The builders are paid and you have a liveable room with all the features and fitting you wanted
  12. At this point you decide what the next room is you want and you go through the same process
  13. If after five sprints you run out of money, you have five full rooms complete
Published on June 28th, 2010 in General, Products, Software development | No Comments »