Working with remote teams
I decided to share my experience developing an Android app remotely using Agile methodology. My app is an app that provides tips, advice, and assistance on women’s health. Lunna is in beta testing now, so if you’re interested in testing it, just ask for access to this link.
I know you may be wondering “how long do I need to develop an app,” and my answer is “it depends.” And yes, it depends on a lot, it depends on the complexity of your app, the platform you will use and also the development team you have. So let’s do not think about that answer now, and let’s focus on the steps you need to take to develop an app using Agile methodologies and frameworks like Scrum and Kanban even remotely.
Agile methodologies and frameworks offer great opportunities and value for building apps in short cycles.
What is Agile?
With shorter deadlines and increasing pressure for innovation, a need arose for a new way of managing software projects. The Agile framework is a way of managing software development quite different from the methodology we are used to, like Waterfall for example. Using an empirical product planning and execution approach, iteratively and incrementally, being Agile you divide the problem into smaller portions in order to deliver those portions regularly into a cycle called Sprint that can last from 1 to 4 weeks.
The goal is to work collaboratively on a team, because of that the team needs to be closer and more integrated. If you are working with Scrum for example, there are some events that you should follow as daily meetings that are time-boxed in 15 minutes and happens every day at the same time and place, Sprint planning, Sprint retrospective, and Sprint review, and the Sprint itself which is the period that the development team will be working on development of the software.
Why do I need to be Agile?
Mobile apps are different, and Agile frameworks and methodologies offer great opportunities and value to build apps in short cycles. An app needs to be reviewed frequently to meet end-user expectations, and it requires that operations be at the top of the infrastructure and systems to support frequent interactions and constant updates.
Mobile apps are different. Agile methodologies and frameworks offer great opportunities and value for building apps in short cycles.
Using Agile methodologies and frameworks we deliver faster and more efficiently. And by delivering faster, we have more opportunity to test the product, feel the market, and also fail faster. I talk more about failures in this post.
1 — Product definition
To define a product it is necessary to place business requirements on a paper and draw wireframes based on these requirements. The result of this process should be the first mockups of your app. These mockups should have a set of app features. They don’t need to have all the features of the app in detail, you can start by listing the most important features that should be delivered first.
From there, we must have the backlog of the first Sprints, which will be the first part of the app that will be developed. For example, what I developed earlier in Lunna was the first screen of the app, which is where the user spends most of the time and can see important information about their month. I chose to develop this part first because it is the main part of the app and I also decided for that to be able to show to potential investors that specific finalized design and development.
We should have an idea of the features and user stories of each Sprint of the app. With this information, the development team (designers + developers + Scrum Master + Product Owner) will know exactly what they need to develop. As the app is constantly moving and iterating, development can begin working on the product before the product definition is finalized, as some items will be finalized before others.
2 — Research
You ALWAYS have to research, before the app development starts, and also during and after it too! After all, you need to validate your research and discover if the end users really want to use your product, how, where, and when. One of the most important steps before launching an app is testing with users. Why test? It’s ready, right? I say no, little grasshopper. Testing with users is also complex like the app development itself. An app behaves differently on different operating systems, internet speeds, and also different uses.
Critical bugs should be resolved before launch!
Allowing users to try the app before launch will ensure that the initial version of it feels familiar to users and it is close to what they expect and need. This will result in a greater chance of a successful development effort. The app should be tested with end users as well to ensure that we are delivering all the features that users need and also to understand how users will be using the app. And, critical bugs should be resolved before launch!
3 — Development
The development work is planned in Sprints. Each Sprint can last from 1 up to 4 weeks, and not more than that. Each Sprint has its own goals and who defines the amount of work that will be done is the development team.
When the team is going to develop an app, they have different challenges because each app has a unique set of complexities.
The time developing apps varies greatly. When the team is going to develop an app, they have different challenges because each app has a unique set of complexities. And it all depends on these complexities, what libraries will be used or whether everything will be built from scratch. Each Sprint includes the termination of all features planned during that period. It also has a goal that must be agreed by the team, and it needs to be reached on its termination.
4 — Quality Assurance
The Q&A should start as soon as an item or functionality is developed, for example, it isn’t enough to deliver the features proposed at Sprint. The development team must ensure the quality of what is being developed! If any problem wasn’t expected happens, the team should meet and make a decision on how to solve it.
Software to work remotely
I made a list of the software that I use in my daily life and I consider it essential, especially if you work with remote teams. Most of them are for free or have the trial period.
This situation has probably happened to you, you go to the project folder to get a file and realize that you do not have the latest version of the material, then you have to ask someone to upload the new material or send it to you by email, right?!
The cool thing about G Suite is that everything is in the cloud and you’ll see in real-time people updating spreadsheets, text files and presentations. The possibilities are endless as there are several extensions to the G Suite that includes a code editor and Gantt chart software.
- Trial: Your company can test the G Suite for free for up to 14 days.
An important tool used for communication between teams. You can create different channels for your team, like Development, Design, General, Funny Jokes. It also has a pretty handy integration with Trello, Google Hangouts, Asana, and others. For example, in my team, we use Google Hangouts integration so every standup meeting, the team is going to receive a link with the Google Hangout meeting at Slack. I also use it with Trello, every time I close a task at Trello, the team will receive a message at Slack.
Slack came out in 2014 and I wish it had been invented years ago. The software is free for smaller times and up to 5GB of space. You definitely should test it with your team!
If you also love creating Kanban boards but you work remotely, you should use Trello. You can create your Kanban board, and share it with your team where they can add new tasks, add images, leave comments and even add and remove people from tasks. It’s also free for teams, it’s worth a try! If you’re looking for more options to build a kanban board, I also recommend this post.
If you like Kanban but want to create a simpler board, or just want to create a to-do list for yourself or your team I suggest Asana. Free for teams of up to 15 people, Asana helps you organize tasks, sign tasks for your team, and also add files and comments.
The cool thing is that it automatically creates charts, so you can see your team’s progress, how many tasks have been completed, and how many tasks need to be done, cool huh?
I love the fact that Basecamp is very simple. With it, you can create different projects, and sign up tasks for each project. You can also add files, and it has a really cool tool that calls automatic check in which asks you and your team what tasks they have fulfilled.
- Trial: It is free for teachers and students, and also has the test period for 30 days.
Tool to create diagrams, flow charts, wireframes and a huge amount of graphics. Super recommend this software, you can use it on your computer and also on the phone and tablet.
- Trial: They have the 7-day trial and also the free version with feature limitation.
My other best friend is Google Hangouts. It brings conversations with photos, emoji, and even group video calls. Hangouts also perform a group video chat with up to 10 users at a time. I love to use the shared video option too!
My best and dearest friend. Sticky notes are wonderful. If you like to create physical Kanban board, use, and abuse of it. I use it quite even when I create task lists and Kanban boards on Trello, I usually write in the paper first and then move on to the software. I’d love to nailing sticky notes on the wall or in my own computer with super important information that I can’t forget!