Now that MiX Telematics has officially released our latest mobile application, MiX Fleet Mobile, we chatted to a developer to dig a little bit deeper into the interesting facets of how this product came to be and what makes it so special.
Chris van Wyk, takes the time to share his thoughts on the development of MiX Fleet Mobile App…
“First of all, I’d like to give a big shout out to the FM-Web team, who completed the project as I had been moved off to another product during the later stages of the development on the project.
The MiX Fleet Mobile App is the mobile offering product based on features from the flagship product FM-Web, our premiere web-based service for commercial fleet operators that services fleets world-wide.
With this in mind it does not take a lot of imagination to realize that this codebase has reached a substantial level of maturity and as a result has collected its fare share of legacy code.
What you must keep in mind with legacy code though is however best your intentions are, there are always areas within the system, which may be adversely affected by code changes and or additions. Thus, the development team had to approach all changes with precision and support a great deal of testing.
In addition to this, trying to introduce new approaches in development and architecture comes at a cost not everyone is comfortable with and or potentially willing to sink effort into. The approach we wanted to take going forward in terms of supporting the mobile applications on FM-Web was to introduce the mobile API as RESTFul services.
The challenge we faced was which framework to use while taking into consideration that the application stack is Microsoft based and predominantly using C#. Together with this, all existing web services were soap base and implements security and logging features specific to the solution. So if we were to introduce new services, these services would need to fit into the existing constraints of at least the security and logging features.
Having worked on a proof of concept project, introducing Ruby into the organization, the search was on to find a framework that would give us the same or similar benefits of Sinatra and Rack.
Enter NancyFX. The best way to describe NancyFX must be the following description taken from the projects website: “Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions.”
The selling point for me was the amazing balance the guys on the project achieved between the static typed and dynamic object world that exists in both the Microsoft.NET Framework 4 and the latest releases of Mono. Coupled with the implementation of pipelining and pre or post-request hooks snapping the NancyFX framework on top of the FM-Web business logic was as they say, taking “super-duper-happy-path”.
There are a number of things, which I am really excited about in terms of the final outcome of this project. The first is that there are open source projects in existence like NancyFx, which proves that the “we-did-not-build-it”, or it is not from Microsoft, mindset of the average .Net developer to be not entirely accurate. The second is that it is possible to devise simple and elegant solutions hooking into and extending systems sometimes thought of as “legacy” without rebuilding or reinventing the wheel, i.e. reusing security and logging features.
Lastly, and I would venture to say the most important in my opinion, that now having been able to introduce a RESTFul architecture into the FM-Web world and modularly exposing data as required, the possibilities for future feature rich mobile and web development is limitless and we look forward to pushing the boundaries to achieve the best development solutions possible.”
For the full press release visit http://www.mixtelematics.com/news/MiXMobileFleet.
Chris Van Wyk is a Developer at MiX Telematics in Stellenbosch, South Africa. He is currently focused on mobile development (iOS, Android, Windows Phone 7), Hypermedia driven RESTful APIs, Micro Web Frameworks and having fun with code.
Steve Jobs not only pushed himself and his ventures to the limits of development potential, he tapped into a sphere of technological ingenuity that perhaps could not have been foreseen. He changed the way we think, the way we work, the way we live. Steve Jobs has left a legacy in many the general population’s lives via the mobile and computing devices we use, but he has also made an astounding impact on the fields of Design and Development that his legacy will forever live on in the dawn of the new Digital Age that his ‘Think Different’ mantra has given rise to.
As the co-founder, chairman, and chief executive officer of Apple, co-founder of Pixar Animation studios, a member on the board of directors of the Walt Disney Company, and founder of NeXT, the late Steve Jobs paved many roads in design and development. He was an inspirational and creative powerhouse and with the introduction of everything ‘i’ or ‘mac,’ Developer, Trevor Langeveldt, notes that “Jobs ultimately revolutionised the way we see and interact with the world digitally as well as how we model our user interface and use design principles to better serve the needs of our end-users.”
Wednesday, 5 October 2011, the world lost Steve Jobs the man, but we will never lose his contributions to the way we interact with devices and technology. “MiX Telematics’ Developers and Designers have certainly been influenced by the strides in development innovation made by Apple with Jobs at the helm, especially in terms of User Experience, Mobile App Development, and even Design principles. It’s clear that we all strive more now than ever to Think Different,” notes Charl van Wyk, MiX Telematics UI specialist, who focuses on the fusion of Design and Development.
“Here at MiX Telematics, we care about User Experience and much like Steve Jobs, our developers take their work to heart. Being passionate about what you do is the key to success and we’re proud to say that passion most definitely plays a big part in how we work as a company,” says Product Manager, Tertius Wessels.
It also goes without saying that Steve Jobs’ innovations in the field have influenced all levels of a development team. Terry Buzer, Group Director responsible for Development, feels that “keeping developers motivated and inspired is a key performance objective that MiX Telematics strives to maintain and in so doing, we are able to bring the end user the very best in telematics technology design and quality.”
MiX Telematics Developer, Chris van Wyk, says, “Mobile development and for a large part, software development, are key creative outlets for me. For me to be creative, I truly need to believe in what I’m doing. I believe the natural progression from here forward will be seeing your users experience a ‘Wow, this is great’ moment when using your products.”
Thank you, Steve Jobs, for making us Think Different, reach further, and create with more confidence.
Shawn Graaff is the Online Content & Social Media Manager for MiX Telematics International. Based in South Africa, Shawn is an American dreaming in digital with a special interest in Mobile for Africa and sustainable living. Follow her tweets about Social Media Marketing, SEO, Content Strategy, and Online Community Management @ShawnGraaff.
Being passionate about testing and quality in the development process, I spend a lot of time with our QA Manager and have learned so much in the last 6 months. In any agile world, continuous introspection and improvement is a key aspect that ensures quality is maintained as we learn where we went wrong and how to do better.
I love story maps. I love that they are big and visible. That at one glance you can see what is going to be delivered in the next release. That everyone can see what is coming up next.
It worked really well in the beginning. It assisted our product owner in thinking about what he really wanted and thus empowering him to prioritise and communicate the reasoning behind that easily. Its up on the wall in the team room and everyone can see it easily.
There were some drawbacks though. As its up on the wall – its hard to move to a meeting room for grooming sessions. That also means the product owner cant use it when hes communicating to customers/stakeholders. Another problem – as the stories get groomed they split up into smaller stories and your story map grows exponentially – and the wall couldn’t be extended… The product owner and myself were the ones updating the board … and I would prefer the team more involved in this. I believe a team that owns a story map with the product owner is the ideal to strive for.
We tried the online story map which was awesome, but as expected keeping the online map and the real wall map in sync quickly became problematic. (Especially as printing out and killing forests is something I’m loathe to do). Here is another online story map tool, that I stumbled upon toolsforagile – also very nice!
A few weeks ago I read this blog post by Roman Pichler and decided to try some out-the-box thinking with regards to our release planning.
I loved the idea of boxing the themes (as opposed to columns on a story board). I also like the product and UI design parts – but would prefer them closer(?) to the theme they belong to. The constraints filled a gap that was missing for me – but again I wanted them closer to where they impacted a story. But this was enough to kick start my imagination.
A story map is a high level view of the application being developed, from a user’s perspective.
Story Mapping forms part of Release Planning, and is an excellent tool for identifying the Minimal Marketable Features (MMF) for the next Release. This is done with the Product Owner, ideally before starting the development of a new product, and then before each additional release.
To prepare for the Story Mapping session you should identify beforehand:
Declaration of the purpose of the meeting:
Reflect on the last sprint. How did you feel about certain things in the last sprint?
So, yesterday I sat with the Senior Scrum Master – or should I rather say with my Scrum Master, and went over some basic meeting rules to follow to run any review and retrospective. She explained a new method being used now in the next lot of sessions she is going to be doing for the other teams. The Product Owner can participate in the retrospective but they must not be allowed to dominate the session, cannot in any way attack the Team and the Scrum Master must interject if the Product Owner over steps the boundaries. The previous two sessions which I observed, followed a different method to the one I will use on Monday, but the same basic guidelines. There I repeated it again without explanation of what these ‘guidelines’ are.
The leader of the meeting, being a very abstract person in terms of approach to any subject, in the space of an hour taught me things that I am pleased to say will serve me well in my career in Scrum. In that session, Product Owners had brought some stories for “help and advice on” and actually take learnings from the discussion with this fairly gifted mind and go forth and conquer any business requirement thrown their way by the employment of simple guidelines. Alas, we move the great stones of the pyramids, with all our technology, slow…. even today!
Anyhow, I digress. Every time a story was read out to us that clearly needed some work, one simple response as it repeated enough times, began to resonate and strike that subconscious high-pitched note in my mind.