This is the final part of our series about the five elements of software engineering for mobile. Part one was about the main differences and challenges of software engineering for mobile vs “conventional” software engineering, part two was about making the right technical platform choices, part three was about getting the UX right, part four was about choosing the right methodologies, and part five was about enriching the app functionality by integrating with Internet-based APIs.
This blog post series is based on a keynote talk to computing students at the Imperial College during the kick-off event for their summer group projects, aimed at the development of an innovative web or mobile-based app. The talk should help the students getting a more holistic view about software engineering for mobile and highlight the following five key elements:
- Make the right technical platform choice for your context (Part 2)
- Get the UX right (Part 3)
- Choose the right methodologies in the areas of building a business, customer development and product development (Part 4)
- Enrich the functionality of your app by integrating Internet-based APIs (Part 5)
- Leverage the power of tools (rather than reinventing the wheel) (this part)
In this part I cover the fifth element “Leverage the power of tools” in more detail. This is the final part of our series; at the bottom of this post I also embed the slide deck.
Key element 5:
Leverage the power of tools (or – don’t reinvent the wheel)
There is already a plethora of tools out there that make the lives of mobile app developers much easier. So, rather than thinking about developing a certain helper, service or tool from scratch, I strongly recommend taking a look at what’s already available beyond the popular IDEs. In fact, Vision Mobile found that on average developers who use tools make more money.
On my slides I listed several popular tools, classified into backend services or storage, monetization, feature testing, prototyping, usability testing, performance/crash reporting, and user support.
Also, 3scale recently launched APItools. The main features of this tool are:
- Managing and monitoring several APIs from different providers
- The ability to modify Web API requests and responses (to an extent where developers can actually add features or logic to an original API)
- Getting consistent API documentation of all used APIs in one place
A good overview of over 530 tools can be found on the App Developer Atlas site by Vision Mobile, where the tools are classified according to six top-level categories.
Take-aways from the whole blog post series
The objective of the talk and this blog post series was to summarize the five key elements of software engineering for mobile. This covers a wider range of topics beyond just technical. Here is a summary of the key take-aways:
- It is important to understand and embrace the fact that mobile is different. In fact, it should not be regarded as an extension to traditional software engineering, and it is not sufficient to simply mirror what we know from software for desktops. (Part 1, Part 2)
- The user experience (UX) for mobile is much more than just the (graphical) user interface. We have a lot richer means available for letting a user interact (input and output) with mobile software. (Part 3)
- Future users of an app should be included in the development process as often and as soon as possible. (Part 4)
- Focus on the essential features first, implement them quickly, test it on the market or with users, then refine and iterate often. Add further features with every iteration. (Part 4)
- Web APIs open up the possibility of enriching apps with a wide range of additional features – such as social networking, maps, or commerce. These can increase the attractiveness of an app to help set it apart from fierce competition. (Part 5)
- Using tools is very effective. Don’t reinvent the wheel – a lot of tools are already available. (Part 6)
“Mobile” is growing and can provide very attractive opportunities to create a business or extend an existing business.