If you’re an IoT company, you know better than anyone just how difficult choosing the right development partner can be.
And finding a software development company which understands the complex integrations you need and the real-life constraints you’ll face is like finding a needle in a haystack.
Luckily, you’re in the right place.
Here, we’ll walk you through our software development process, step by step, and show you why DECODE should be your next and best IoT app development partner.
Bet that caught your attention, right?
Let’s dive in!
Product discovery & design
Product discovery might just be the most important stage of this whole process.
Here, we’ll research your users and market to fully validate your idea and find the best strategy for your app’s development.
Then, we’ll immediately move on to the design phase – after discovery, we’ll have user flows and wireframes ready so our designers will start work immediately.
Let’s take a look at our process in more detail:
Process
Kickoff – Here, we’ll get to know you by interviewing key stakeholders from your company.
We’ll ask you questions like:
Who is your target audience?
What are your business goals?
Which problems does your app solve?
What are your audience’s common pain points?
What are your app’s priority features?
Do you have defined buyer personas?
This way, we’ll better understand your app’s product-market fit and that will inform how we approach development.
Research – We’ll take the info you’ve given us and expand on it by doing our own original research.
This includes:
User research
Competitive analysis and market positioning
Exploratory domain research
Data gathering workshops
Solution architecture research
Discovery workshops – Once we have enough information, we’ll dig even deeper.
We’ll work together with you to nail down your ideal user personas and the core features you want
Here’s what we’ll be doing at the workshops:
Scoping and planning product volume
The context and use cases
User personas
User journey mapping
MVP feature discussion and prioritization
Process mapping
Sketching user flows
Wireframing
Functionality and UX proposal – Here, we’ll go over everything from the previous product discovery phases – the research, assets, and materials.
Our conclusions, findings, and deliverables will help us find the best technical and UX solutions for your app.
Mockups – We’ll use your brand guidelines to create non-interactive screens so that we can all visualize what the final product will look like.
UX/UI design – Here’s where our design team takes center stage and does their magic.
The design will be informed by industry best practices and consistent with your style and brand.
We’ll make all the screens we agreed upon earlier, with all the UI elements, states, and animated transitions in place.
Your involvement
Workshops and interviews – To get the best results, you’ll need to be available both for the kickoff interviews and discovery workshops.
Of course, we’re flexible and we’ll work around your schedule to make this happen.
Roles involved
Product manager – They’re the link between you and our development and design teams. They also lead the discovery workshops and make sure the entire discovery process goes smoothly.
Their main goal is taking all the market and user research we did and turning it into feature ideas for your app.
UX/UI designer – This is where our design team shines and creates a stunning design for your app.
Here’s what they do:
Creating user journeys
User flows
User personas
Wireframing
Prototyping
Create a design system
Creating the final UX/UI design
Solution architect – As experts in all things software with years of experience, all ideas will go through them to check if they can actually be made.
Their job is translating your business requirements into feasible technical solutions, so they’ll also choose the tech stack our team will use to build your app.
Here are their main responsibilities:
Proposing software components
Proposing third-party services
Proposing scalability solutions
Thinking about new features and future growth
Deliverables
Product scope
Feature prioritization
Design plan
User journeys
Software architecture proposal
Design system
User journeys
User flows
Wireframes
UX/UI design
Want to know more about product discovery? We have plenty of articles on that topic.
Now we’re getting to our bread and butter. Software development. It’s what we do best.
At DECODE, we use the Scrum agile methodology – it’s proven the most effective for us and our clients.
Important note: Quality assurance (QA) is a crucial part of development, so our QA engineers are an integral part of our software development team.
Let’s take a closer look at our process:
Scrum agile methodology
Backlog – Before we start the project, we make sure all team members are on the same page.
Here, we break down complex features into manageable tasks that are shared across the team.
Sprint planning – Once we’ve organized the backlog, we start planning our sprints and decide which tasks will be done during each sprint.
Our sprints usually take 2 weeks, but we can adjust them depending on project size and complexity.
Development – This is where the actual work begins.
Agility and continuous delivery are cornerstones of our development philosophy, so we aim to automate everything.
Also, we start doing QA in tandem with development – we’ll need a physical example of your IoT device to test and ensure it connects with the app we’re building.
Sprint refinement – Circumstances often change mid-sprint and we need to adapt on the fly.
Maybe something new needs to be added to the sprint or some tasks need to be moved to the next sprint – that’s where sprint refinement comes in.
Sprint review – At the end of each sprint we take a look at what was done, which tasks overflow to the next sprint, and decide if we need to make any adjustments.
Sprint retrospective – For efficiency’s sake, we often merge this meeting with the sprint review.
But, the point of a retrospective is to take a look at ourselves and see where we can do better – Do we need to improve our processes? Do we need new tools?
This way, we constantly improve and get things done better and faster.
Your involvement
Meetings – We prefer daily meetings with our clients so we’re always on the same page.
One of our principles is that it’s better to overcommunicate than undercommunicate.
Subject matter expertise – Whether you’re in the fitness or HVAC industry, we’ll need one of your experts to guide our team with their expert knowledge.
Roles involved
We always carefully compose our teams so they have the right amount of seniority and expertise to match your project’s complexity.
Software engineers – They’re the stars of the show in this phase. Their job is developing and releasing product increments in the agreed upon periods.
QA engineers – Their job is ensuring that your product consistently meets high quality standards. Here’s what they do:
Preventing issues
Creating test plans
Executing tests
Identifying and reporting issues
Managing bugs
Automating tests
Project manager/Scrum master – Manages the backlog and writes user stories and acceptance criteria. Also, they’re responsible for prioritizing tasks and planning sprints.
Deliverables
Functioning MVP
Source code
CI/CD automation scripts
Test automation scripts
Documentation: user, software, test, code
Want to know more about developing an MVP? We have plenty of article on that topic
Creating an MVP is just the start – you need to build on it.
You turn a good product into a great one by listening to your users, analyzing the feedback they give you, and solving their problems with new features.
Here’s how we do it:
Process
Analytics tools implementation – Here, we’ll use all the tools at our disposal and implement them in your product to analyze how your users actually use your app.
Some of the tools we use are:
Mixpanel
Google Analytics
Hotjar
Canny
Heap
Analyzing user feedback
Once we have enough data, we’ll be able to analyze and prioritize user feedback.
For example, if users rarely use a feature we implemented in the MVP, we might remove it altogether.
But, user feedback will also give us insight into which features users love, which they might like to see next, and where we need to make improvements.
Implementing new versions – After we’ve analyzed the feedback, we’ll start a quick iteration cycle to improve your app and constantly create new features.
We’ll repeat these cycles for as long as you’ll use our services.
Maintenance – Among other things, this includes updating dependencies and checking if new OS versions break any features.
We’ll also be ready to fix any bugs or issues with your app if they happen.
Roles involved
Everyone involved in previous phases will also be involved here
So, that means:
Product manager
Software development team
UX/UI designers
Deliverables
Analytics tools implementation
User feedback analysis
New features
Why you should work with DECODE
So, let’s get straight to the point – why should you work with DECODE?
The answer is simple – we understand every step of the IoT development process and have the expertise you need from a development partner.
And that’s no exaggeration. Our engineers understand:
Low-level protocols
How to handle data on the bit/byte level
Software and hardware constraints for IoT devices with a 4G/5G chipset
IoT platforms and how to integrate your device with them
How to efficiently transfer data to reduce battery consumption
How to implement BLE connections
We specialize in building companion apps and custom back-end IoT platforms from scratch.
And we’re not just saying that. Here’s just a few of the IoT apps we’ve built for clients over the years:
Ante is a true expert. Another graduate from the Faculty of Electrical Engineering and Computing, he’s been a DECODEr from the very beginning. Ante is an experienced software engineer with an admirably wide knowledge of tech. But his superpower lies in iOS development, having gained valuable experience on projects in the fintech and telco industries.
Ante is a man of many hobbies, but his top three are fishing, hunting, and again, fishing. He is also the state champ in curling, and represents Croatia on the national team. Impressive, right?