Extending the DDM modules in Liferay with custom field types isn’t that easy. This blog post is the result of our attempts...
Fuckups in Mobile Development – Part 2Bart Franssen
In the first part of our blog series, we focused on the true value of an Agile Development Approach (read all about it here). In this part we will highlight 3 other commonly made fuckups in the development process and we will show you how you can avoid these.
Making big wins with minimal efforts
Do you know the feeling of seeing someone being very happy with a very small gift and being not so excited when getting a very big one? At ACA we know this feeling very well. It’s not always the biggest gift that makes people happy: With small efforts you can make big wins!
We built a B2B platform for Automative Services (division of VAB Fleet Services), where users can manage vehicles and attach pictures. After entering basic vehicle information they can attach pictures to these vehicles by traditionally taking pictures with a digital camera and transfer those images manually. You can imagine that this process can be very time consuming if you have 50 cars waiting in the queue and in case of bad pictures, the entire process has to be redone! Can you imagine the irritation of our users? To fix this problem, we built the Photo App!
The Photo App allows users to easily lookup vehicles and attach pictures. The remarkable thing is that the Photo App only focusses on one specific problem of the users, which is taking pictures in a time consuming way. Sometimetimes you don’t have to scale, with small efforts you can make big wins!
Build your app step by step
Lea App (Lexor Extension App)
Trying to sell your car on the second hand market can be the cause of a lot of hassle.
Once you’ve posted it for sale on a website, you start getting a lot of mails and calls of people asking for details, test-drives, lower prices,… a lot of hassle! Marktplaats.nl came with an idea to eliminate all of this hassle: You enter the details of your car, they distribute that description across their network of second-hand car dealers (who each bring out a bid), the highest bid gets sent back to you and if you accept that bid… your car is sold!
A great idea, but there still needs to be a reality check to see if the description entered by the seller is correct. This is where VAB Fleet Services comes into the picture. They perform an inspection for each car sold and validate its condition. Normally this would be a very paperwork intensive process which would never scale if the idea took off, so they asked us to build a mobile app to support their inspectors.
Phased project approach in this project
We used a very phased approach and started with a minimal Proof of Concept: see if we would take a picture and get it into the inspector’s laptop (using a cloud service). This worked great and we continued development until we had a first minimal version that could support a single inspection. We released it and after only 1 week of usage, we got some feedback from the inspectors. They liked the app, but couldn’t handle more than one inspection at once and they regularly had multiple cars to inspect. We decided to add the possibility of starting multiple inspections and switching between them, before releasing the next version.
Real world feedback
Multiple pictures on a single damage case, persistent state in case the device switched off unexpectedly, navigating back to screens already filled in.. and then it stopped! For the past six months the app has been in daily use and we haven’t received any further requests. The app does exactly what is needed: Nothing more, nothing less!
Did we know up front that these extra features would be needed? Of course! We also “knew” that a lot of features would be absolutely indispensable and those were never asked for! Growing your app step by step, based on real world feedback, can save you a lot of unnecessary effort.
Limit the damage
QR Linking App
When a VAB employee needs to identify vehicles and their needed services (f.e: an oil check or car wash) in their parking lot, he or she traditionally does a vehicle lookup in a big stack of papers. This can be very difficult and is time consuming. To improve this process we had the idea to build a QR linking app for identifying verhicles and their services using a QR code attached to the vehicle.
We started development and as we got closer to our first small app release, we bumped into a problem. The app itself was ready to be released, but it turned out the organization was not ready and underestimated the impact of using QR codes in their processes.
How was this possible? We thought big and acted small, but still failed to launch the app? Thinking big and acting small isnt’ a guarantee for a success, but you canLIMIT the damage by acting small, as we did in this project!
Tools to control and monitor your app
Scaling fast sounds great! Going fast is exciting, but you need to stay in control or the damage can be subsantial.
Your apps are out there, in different versions used by different people on different devices and you need to support them all. You might even feel like you need a crystal ball…
Unfortunately we don’t have any crystal balls, but we do have tools that can give you the feeling of having one!
The first tool you can use is Google Analytics. We include it in every app we release, even if we only use the most basic functionalities. Not only does it give you a great overview of who is using your app and what devices they have, it also offers you a crash report, which is very useful!
In one case, 1 of the inspectors using our LEA application experienced a crash on the same day, but for some reason never reported it to us. Luckily we were keeping an eye on our crash reports and could quickly pinpoint the problem. By the time the inspector got home in the evening, he had already received an email form us saying we noticed the problem, fixed it and where he could download the new version of the app. This sends out a very strong signal to all users that you are in control of your app.
The second tool is again related to the LEA app and came in very handy during support cases. The LEA app has to communicate with a 3rd party backend service for all its functionalities. Since we have no control over this service, we took a lesson from the NSA and put a wiretap in the middle: our own proxy server. This server passes the messages from our app to the 3rd party service without altering the content and provides us with 3 major advantages:
This is something you generally don’t want to leave to someone else. Not only do we control the transport security (SSL), but also the authentication and authorization of all communication.
When we get a support call it usually says: “The app doesn’t work” with little explanation of further information.
With all the messages logged on our proxy, we can quickly identify if the problem is with us or the 3rd party service and give very detailed descriptions if we need something fixed.
We’re not the only one using the 3rd party service and sometimes changes are made that would break our app.
Without a proxy server, you would need to get a new version of the app installed on all devices and this generally is a lengthy process and your app would be broken all that time. The use of a proxy server allows us to make a change in one single place and deploy it quickly so that our app keeps working while we work on a more permanent fix.
As you can imagine, these 2 tools were indispensable for us to stay in control of our apps while scaling fast!
Think big… dream big and have it all, but remember to act small and focus on the essentials & scale fast to your big dream. The most important thing is to act small, just ACT! It does not only focus on dividing functionalities in small pieces while developing, but it’s also getting it into the hands of your users for valuable real world feedback.
And yes, you will fuck up and there will always be fuck ups, but acting small can limit your damage and can turn those fuck ups into a learning experience…
Fransen Bart, Mobile Enterprise Applications Expert, ACA IT-Solutions
With a lifelong fascination for alternative input methods and smaller screens, the arrival of the modern touch-based smartphone was a revelation for Bart and it didn’t take him long to switch from his web-based career to this new field full of excitement and innovation. After a few false starts with various small start-ups, he joined ACA to spearhead their new dedicated mobile division into the future.
Yakup Kalin, Mobile Solution Engineer, ACA IT-Solutions
As a Mobile Solution Engineer, Yakup is involved in mobile development processes, where he delivers creative input for realizing usable & likeable mobile applications. With a huge interest in mobile technology and armed with mobile devices, Yakup develops Native, Hybrid and Responsive Web Apps. Throughout the years, Yakup gained valuable knowledge on Mobile Solutions by working on various mobile projects for clients such as VAB Fleet Services, the Flemish Government,… .