Blog Archives | Mood Up team - software house
android 03

What is Jetpack Compose and why do we need it?

Jetpack compose is a modern Android UI toolkit introduced by Google. It simplifies the app development process and speeds it up. With Jetpack Compose, you can write less code compared to the current view building approach – which also means less potential bugs. There is one more great thing about it – it uses Kotlin. If you have been using React or Flutter, you will probably be familiar with the concept and find many similarities.


How does it work?
 

A main building block of Compose is the Composable function. It emits a part of the user interface. Building with Compose is about nesting the Composable functions in each other.

Zrzut ekranu 2020 12 12 o 20.06.13
This example shows a simple usage of Compose. As you can see, four Composable functions are used: Column– a built-in Composable, which renders its children in the column order, and Text, which displays a given text on the screen.

 

The declarative approach

Jetpack Compose is built upon a different programming paradigm. It uses a declarative paradigm. To put it shortly, it means that you have to change your way of thinking from: “How to do something” to “What goal I want to achieve”. In a declarative way of programming, you try to describe an expected result instead of describing every step to achieve the goal. In the previous example we simply said “I want to have a column with three texts inside” – and that is all. We don’t need to write any extra code that tells the app how to deal with the items inside the column.

In the current imperative approach, things are a bit more complicated. To render a list of elements, RecyclerView is used. It is a component that helps efficiently display large sets of data. The problem is that each RecyclerView needs an adapter, each item on the list needs a ViewHolder, and so on. An adapter is a place where programmers have to describe how RecyclerView is going to render each element. And if we want to render different types of data, it can be a little messy. For instance, if you want to display text, image, and your custom extended view, you have to write a logic to tell the RecyclerView how to do that. As you can see, it’s beginning to look a little complicated and it’s the exact opposite of the Jetpack Compose and the declarative approach. After all, we only want to create a list with some elements inside. With Compose, it is simple as:

 

jetpack2

 

Jetpack Compose ❤️ Kotlin 

One of the greatest advantages of Jetpack Compose is that it uses Kotlin. What does it mean for you? Well, for example, you can use all Kotlin structures directly in your view code. You can use If statements to choose what should be rendered, and you can use loops to display a view multiple times. You can also use functional methods like filter, map, and many others.

 

image1 1


As the picture above shows: it is really simple to choose what should be displayed, depending on the data set state. If it is empty, show a text saying “No data to display”, if it is not, map the data set elements to Composables and display those in a column.

 

The state

Updating a view is a crucial task of every single application. It’s hard to imagine the app which shows you the same data all the time. To update a view in Compose, we need to rebuild Composable functions with different sets of arguments.

This process is called recomposition. The question is “How does a Composable function know when to rebuild itself?”. The answer is – because it can have a state

The state is a value, or multiple values, assigned to a Composable function. Whenever the value is changed, it triggers a recomposition process and our composable function will be rebuilt with a new state value.

 

jetpack4

 

In this example code, we can see one state value – counter. The value of the counter is displayed using the Text Composable. Every time the state is changed, this composable is rebuilt with a new value assigned to the counter variable. In Button’s onClick method, the counter state value, which performs the decomposition process, is incremented, and a new value is displayed with Text.

 

jetpackgif

 

Pagination with Compose

Let’s take a look at a real example that shows how Compose can speed up our work and make it much easier. We are going to compare two solutions for one problem – pagination. We are going to use the current view building solution and Jetpack Compose. 

 

What does pagination mean?  

Pagination is a process of dividing a big data set into smaller chunks. It is useful when we don’t want to serve all data at the same time. It could seriously harm our app performance. The Facebook app is a perfect example – usually, when using the Facebook app, you are scrolling your wall and reading new information. Have you ever reached the end of it? Probably not. It seems endless, which means that there is a huge amount of data to display there. Imagine what would happen if we got all that data at once – it would be an overkill for our device. This shows that your Facebook wall uses pagination. The data is fetched in smaller chunks and displayed on the screen. When you are about to reach the end of the current chunk, a new one is obtained from the backend – and so on.

I want to show you how easy it is to implement pagination when using Compose, compared to the current approach. First of all, let’s see what we need to support pagination when using the current view building methods:

  • RecyclerView – responsible for displaying the data
  • Adapter – displaying logic
  • ViewHolders – keeping views references not to use findViewById() each time to obtain them. It would be really costly.

Usually, we want to somehow indicate that data is being fetched. For instance, we might want to show a progress bar as the last element of the list. With the current approach, it is a slightly complicated task. You have to put a new element into your data set and force the RecyclerView to render it as a progress bar.  There are many ways to achieve that. Usually, you end up with a lot of new code. Each new view type makes your adapter more complicated. With Compose, implementing pagination is really simple – it only takes a few lines of code! 

Let’s have a look:

jetpack5

 

We can see a ComicsResultSection composable here, which is responsible for displaying our data. The data set that should be displayed is passed as an argument – data. By using a LazyColumnForIndexed Composable, we can present our data as a list. LazyColumnForIndexed is an equivalent of RecyclerView –it renders only the data that is visible on the screen. Additionally, LazyColumnForIndexed gives us information about the currently rendered objects and their indexes. By using the index, we can simply check if the currently rendered object is the last in our dataset. If so, we can simply trigger the data fetch method and display a progress bar as the last element of our list. And this is it. No adapters and complicated logic necessary – we simply say what we want to see on the screen.

 

Summary 

Jetpack Compose is a promising and powerful modern UI toolkit that you definitely should keep an eye on. If used correctly, it can speed up the development process and reduce the size of the app. Moreover, with Compose you write less code – which, potentially, means fewer bugs. Happy coding 🙂

If you want to learn more, see the official Compose website:
https://developer.android.com/jetpack/compose

 

 

 

 

corona 01

7 things companies can do for their employees during the pandemic

[Polish version]

There is no doubt that the year 2020 has been a challenging one. Even if companies and their employees were not affected by the coronavirus directly, the constant changes and the uncertainty of the situation has been a strain on both mental and physical health. With all that going on, taking care of workplace morale and employees’ wellbeing has become more pressing than ever. Wondering how to do it right? Do not worry – for those who wish to earn the employer of the year title but are not sure where to start, we have prepared a list of seven proven solutions tested by MoodUp Team.

 

Remote work

Social distancing is said to be the best way of preventing infections. It’s why home office currently seems to be the safest option. Allowing employees to work from home is then recommended for every employer who cares about their health and safety. But there is more to ‘allowing remote work’ than just granting official permission. It also means providing employees with the right hardware and software that will ensure smooth communication and workflow. And let us not forget about working stations – in MoodUp, we want our employees to enjoy an ergonomic workplace even at the comfort of their homes. In our case, that means delivering their favorite and comfortable office chairs directly to their doorstep.

 

Office safety

There are some situations when working remotely is just not an option – IT administrators know that all too well. But in fact all employees have to visit their office sometimes, for example to have their hardware repaired or hold an on-site meeting with a client. And since having people in the office cannot always be avoided, it is the employer’s role to make sure that everyone can work in safe conditions. That means keeping the two-meter distance between the workstations , making sure that all surfaces are disinfected regularly, and providing employees with the right equipment, such as hand sanitizer. Reminders about safety precautions placed in the strategic areas of the office are a nice touch, too.

 

Transportation

In case there is an urgent need to visit the office, employees have to face a new problem – how to arrive there without risking an infection. Some decide to use public transportation – unfortunately, those vehicles are where many people are gathered in a relatively small area. In the current times, that seems like a health hazard – one that can and should be avoided.

We have come up with a solution. MoodUp joined the Uber for business and Bolt Business platforms and granted each employee a monthly spending limit. To make sure that our people are safe outside their working hours as well, we have separate budgets for work-related travels and their private activities. Just be warned – side effects of this solution might include employees coming to the office on time twice as often.

 

Proper healthcare

One of the most sought-after benefits offered by companies is access to private healthcare or life insurance – and during the pandemic, it has become even more crucial. We have been offering that benefit for a while now, but in MoodUp, we like to go the extra mile. That includes providing employees with antibody tests so that they can check if they had contact with the COVID-19 virus in the past months despite not showing any symptoms. We have also purchased several pulse oximeters that help monitor employees’ condition by checking the oxygen saturation level in their blood as well as oxygen concentrators for emergencies.

 

photo 02
Oxygen concentrators are ready to use

 

Taking precautions

Preventing infection starts with a healthy lifestyle. That is where employers have a chance to get creative – there are as many incentives as there are companies. We try to approach the matter from several angles. The first is promoting exercising and staying active, and it has been a big part of MoodUp’s working culture from the very beginning. We regularly rent a gym to have a game of volleyball, and just last month our employees started attending free yoga classes together. Once a week, we also offer free massages to help employees lessen the strain on their spines caused by desk work.

Another action we take to ensure our employees stay healthy is boosting their immune system – quite literally. Lately everyone in MoodUp has received a gift box that included healthy snacks, natural raspberry juice, fresh ginger and some delicious honey. It also featured a MoodUp facemask and a bottle of hand sanitizer for that extra protection.

 

photo 01
“Health box” gifted to every Mood Up employee

 

Financial security 

But what happens if an employee becomes infected anyway? In Poland, regular employees are compensated for the time they spend on sick leave – however, this is not true for all countries. What is more, some people are self-employed and prefer the B2B type of contract – and that is where the matter of compensation becomes complicated. That is why every caring employer should make sure their employees can sleep soundly, knowing that they will not lose their source of income if they happen to fall sick. 

We’ve got that covered. In MoodUp, if an employee tests positive for coronavirus, they are guaranteed to receive a major part of their salary even if they are unable to work – regardless of their type of contact. And if they decide they are still in good enough condition to work remotely, they receive as much as 150% of their salary to cover any other expenses. We are planning to throw in a small bonus too. Those unable to leave their home will get some extra funds that they can spend on the Uber Eats platform.

 

Staying in touch

It is important to remember that the pandemic is a strain on both mental and physical health. Good employers take that into account – and although face-to-face meetings are not recommended anymore, they make sure that the employees do not lose contact with their coworkers. Why not order everyone a pizza and enjoy it together at a Zoom meeting or host an online game tournament? The possibilities for virtual meetups are nearly endless.

 

Going the extra mile

Are all these solutions worth it? Definitely. Employees who feel secure about their job are guaranteed to perform better than those who worry about the pandemic affecting their careers or income. It can also be a huge boost to the workplace atmosphere or relations, which impact on the projects is often immeasurable.

What does your company do to ensure the employees’ wellbeing during the pandemic?

 

corona 02



7 rzeczy, które firmy mogą zrobić dla pracowników w trakcie pandemii

 

Chyba nie ma nikogo, kto mógłby powiedzieć, że rok 2020 był udanym zwieńczeniem tej dekady. Nawet u osób, które nie odczuły skutków wirusa, ciągłe zmiany oraz niepewność tego, co wydarzy się jutro, mogły negatywnie odbić się na zdrowiu i psychice. W tej sytuacji dbanie o dobre samopoczucie pracowników staje się ważniejsze niż kiedykolwiek. Jeśli więc zastanawiasz się, jak podnieść morale w zespole, mamy dobrą wiadomość. Dla wszystkich, którzy chcieliby zdobyć tytuł Szefa Roku, przygotowaliśmy listę 7 sprawdzonych rozwiązań, przetestowanych na zespole MoodUp Team.

 

Praca zdalna

Ponoć najlepszym sposobem zapobiegania zakażeniom jest dystans społeczny – co oznacza, że obecnie najbezpieczniej jest pracować w trybie home office. Każdy pracodawca, któremu leży na sercu bezpieczeństwo i zdrowie pracowników, powinien więc umożliwić im przejście na pracę zdalną. Warto jednak pamiętać, że pod tym pojęciem kryje się więcej niż tylko wydanie oficjalnego pozwolenia. Wiąże się z tym także zapewnienie odpowiedniego sprzętu czy oprogramowania, które umożliwia pracę w nowych warunkach i płynną komunikację w zespole. Nie zapominajmy też o stanowiskach pracy – w MoodUpie zależy nam, żeby pracownicy mogli cieszyć się ergonomicznymi stacjami roboczymi także w domach. Dlatego na ich prośbę dowozimy im ich wygodne, biurowe krzesła – aż pod same drzwi.

 

Bezpieczeństwo w biurze

W niektórych przypadkach praca zdalna nie jest możliwa – wiedzą o tym dobrze na przykład administratorzy sieci. Ale również pozostali pracownicy czasem po prostu muszą wyjść z domu, na przykład wymienić sprzęt lub spotkać się z klientem. A skoro biura nie da się całkowicie zamknąć, rolą pracodawcy jest upewnić się, że wszyscy mogą pracować w bezpiecznych warunkach. Oznacza to na przykład zapewnienie dwumetrowych odstępów pomiędzy stanowiskami pracy i dezynfekcji wszystkich newralgicznych powierzchni, oraz dostępu do środków ochronnych, takich jak płyn do dezynfekcji rąk. Miłym gestem będzie także rozwieszenie plakatów czy przypomnień o zaleceniach sanitarnych – można je pobrać bezpośrednio ze strony WHO.

 

Transport

Jeśli wizyta w biurze okazuje się konieczna, pracownicy muszą zmierzyć się z nowym problemem – jak dostać się na miejsce nie ryzykując zakażenia. Niektórzy wybierają komunikację miejską. Niestety, często oznacza to dłuższe przebywanie w towarzystwie wielu osób stłoczonych na stosunkowo małej powierzchni. Może to stanowić zagrożenie dla zdrowia – którego wcale nie jest trudno uniknąć.

Bo w MoodUp mamy rozwiązanie i na to. Postanowiliśmy dołączyć do platformy Uber dla biznesu oraz Bolt Business i przyznaliśmy każdemu z pracowników comiesięczne środki na przejazdy. Aby zapewnić bezpieczeństwo także poza godzinami pracy, mamy osobny budżet na transport do i z biura oraz na przejazdy prywatne. Uwaga jednak – skutkiem ubocznym mogą być pracownicy, którzy dużo częściej niż zwykle stawiają się punktualnie na spotkaniach.

 

Opieka zdrowotna

Już od dawna jednym z najbardziej pożądanych benefitów pracowniczych jest prywatna opieka zdrowotna lub ubezpieczenie – a w trakcie pandemii ta tendencja tylko się nasila. Nasi pracownicy korzystają z tych benefitów już od dawna, ale w MoodUp lubimy zawsze pójść o krok dalej. W tym przypadku zamówiliśmy dla naszych pracowników testy na przeciwciała, żeby mogli sprawdzić, czy w ostatnich miesiącach mieli kontakt z wirusem, nawet jeśli nie wykazywali żadnych objawów. Kupiliśmy też zestaw pulsoksymetrów, które pomagają monitorować poziom saturacji tlenu we krwi, oraz kilka koncentratorów tlenu na wypadek sytuacji wyjątkowych.

 

Lepiej zapobiegać

Zapobieganie zakażeniom zaczyna się od zdrowego trybu życia. Tutaj pracodawcy naprawdę mają pole do popisu – pomysłów na różne inicjatywy EB-owe jest tyle, ile istnieje firm. My próbujemy podejść do tematu od dwóch stron. Pierwszą z nich jest promowanie aktywności fizycznej – coś, co od dawna jest ważną częścią naszej kultury pracy. Regularnie wynajmujemy salę do  siatkówki, a od niedawna nasi pracownicy mogą brać udział w cotygodniowej jodze. Raz w tygodniu mogą też skorzystać z darmowego masażu i ulżyć nieco swoim kręgosłupom po całym dniu spędzonym przed ekranem.

Drugim sposobem na dbanie o zdrowie naszych pracowników jest wzmacnianie ich układu odpornościowego – i to całkiem dosłownie. W tym miesiącu wszyscy w MoodUp otrzymali prezent zawierający zdrowe przekąski, naturalny sok z malin, świeży imbir oraz słoik pysznego miodu. Dorzuciliśmy też MoodUpową maseczkę oraz płyn do dezynfekcji rąk dla dodatkowej ochrony.

 

Poduszka finansowa

Co jednak, jeśli pracownik i tak zostanie zakażony? W Polsce osoby zatrudnione na umowę o pracę mogą otrzymać chorobowe, jednak nie w każdym kraju działa podobny system. Co więcej, niektórzy preferują samozatrudnienie i współpracę na podstawie umowy B2B – wtedy kwestia wynagrodzenia w przypadku choroby zaczyna się komplikować. Właśnie dlatego każdy pracodawca powinien zadbać, żeby jego pracownicy nie musieli się martwić, że w razie zakażenia stracą źródło dochodu.

Zadbaliśmy również i to. W MoodUp Team pracownicy, którzy otrzymają dodatni wynik testu na koronawirusa i nie są zdolni do pracy, niezależnie od typu umowy, mają zagwarantowaną wypłatę znacznej części swojej pensji. Jeśli jednak stwierdzą, że pomimo wyniku dodatniego są w stanie pracować zdalnie, mogą liczyć na aż 150% wynagrodzenia. Planujemy też mały bonus – osoby, które nie mogą opuszczać domu, mogą liczyć na dodatkowe środki do wykorzystania na Uber Eats.

 

Bliski zdalny kontakt

Warto pamiętać, że pandemia może odbić się negatywnie nie tylko na zdrowiu, ale także na psychice pracowników. Dobry pracodawca bierze to pod uwagę. Chociaż obecnie nie zaleca się grupowych spotkań twarzą w twarz, to nie powód, żeby zrezygnować z biurowej integracji. Dlaczego nie zamówić dla każdego pizzy i nie zjeść jej razem na wielkim Zoomowym lunchu? Albo rozegrać firmowego turnieju planszówek online? Możliwości integracji zdalnej są niemal nieograniczone.

corona 03

O krok dalej

Czy warto inwestować w powyższe rozwiązania? Zdecydowanie. Osoby, które czują się stabilnie w swojej pracy, osiągają dużo lepsze wyniki niż ci, którzy nieustannie walczą ze stresem i zastanawiają się, jak pandemia wpłynie na ich finanse lub karierę. Inicjatywy te mogą mieć także pozytywny wpływ na atmosferę w firmie i relacje w zespołach. To te czynniki często decydują o tym, czy projekt zakończy się sukcesem.

A co robi Twoja firma, by zadbać o kondycję i samopoczucie pracowników w trakcie pandemii?

QA 02

11 qualities of a great QA tester


In this day and age, hardly anyone needs proof that software testing is crucial to its success. If you are still unconvinced, however, here is an example: in 2015, a military airbus A400M had a fatal crash that was later discovered to have been caused by a programming fault. Could it have been prevented with more extensive testing? The experts seem to think so.

Although not all bugs have such tragic consequences, trying to save money on testing often results in the maintenance costs skyrocketing later on. And it seems that more and more software development companies – in Poland and abroad – are aware of that, as the demand for both manual and automation QA testers is growing steadily. So much, that according to the 2019 research by MarketsandMarkets, in the next five years the global automation testing market is expected to double its value, showing an 18% annual growth.

 

01 chart 1

source:marketsandmarkets.com


Finances are one thing, but there seems to be more to testing than that. In 2018, a QA analyst was voted the second happiest profession according to the Careerbliss ranking. And since the job of a tester seems to be satisfying, well-paid, and in demand, it’s no wonder that more and more people are considering it as a career choice. But with that inevitably comes a question – what do I need to be a successful QA tester?

As our software house in Poznań hires some truly experienced and passionate QA specialists, we asked them what traits and skills they find the most important in their daily work. With their help, we have prepared a list of 11 qualities that every tester should possess  – read it and find out if you have what it takes.

  • Curiosity

The question that lies at the heart of QA testing is “What happens if…?”. What happens if I put numerals in the “First name” field or if I press Back right after sending my form? A good QA tester cannot just assume that a feature works as intended, as that is the first step to miss a potential problem. They should be able to look at software from many different angles and test scenarios that no one else would even think of.

  • Strong communication skills

Both testers’ and developers’ time is precious – it would be a waste to spend it on endless back-and-forth communication. That is why QA specialists need to be able to report their findings and give feedback in a clear and understandable manner. They should also know how to choose the right language and tone of voice depending on their reader – so that both technical and non-technical people can understand them. After all, if a tester cannot write down steps to replicate a bug, a developer will not be able to fix it.

  • Quality-oriented approach

Some say that a tester’s job is all about trying to break the software. While that approach is not entirely wrong, there is much more to testing than trying to find faults in the work of developers. A dedicated QA specialist brings a quality-obsessed mindset to work and remembers that their ultimate goal is to refine the software into a product of the highest standard.

  • Prioritizing

A great software tester is aware of the ever-approaching deadlines and has no trouble deciding which tasks they should complete first. They can quickly identify the most commonly used areas and features of the software and use that knowledge to decide on the essential tests. They should also be able to execute them according to their priority level. And let’s not forget all the project-related documentation, artifacts, and reports – a QA specialist needs to have the organization skills to deliver them on time.

 

QA 01

  • Attention to detail

Not all bugs are obvious, and sometimes the smallest errors can have massive consequences. Example? In 1998 a NASA’s orbit probe worth over 600 million dollars disintegrated in space because of… wrong time units in the ground computer’s software. That’s why a QA tester should be thorough enough to catch even the tiniest problems – even if they are hidden where nobody else would look. Double- or even triple-checking everything is a necessary habit to learn.

  • End-user perspective

Understanding your customer is crucial, and not just for product owners or designers. As a QA tester, you often have to ask yourself: Who is going to be using this software? Why? How old are they? Are they technical or non-technical people? Only adapting the end-user perspective will allow you to predict how the final product might be used and test these scenarios for any potential problems.

  • Technical knowledge and skills

While some might think this should only apply to automation testers, we believe otherwise. Although technical expertise and coding skills are essential when you have to decide which tests should be automated (and execute them), there are many other situations where specialized knowledge comes in handy. For example, it might help you decide which testing tools should be used for the particular application. Understanding the code can also make it easier to identify a bug or to better understand the limitations of the software.

  • Lifelong-learner mindset

The whole IT sector is constantly changing, and quality assurance is no exception here. New technologies, automation tools, or scripting languages emerge right as you are reading this article, and a QA tester needs to be able to keep up with them. They should always be on a lookout for a new book, online tutorial, QA conference, or a blog entry that will help them hone their skills and improve their knowledge.

  • Team player attitude

Cooperation always yields the best results – and software development is no exception. Good testers remember that they share a common goal with developers – even if they are a constant source of bugs! – and that goal is to deliver the best product possible. They can appreciate and support their team and are willing to learn from them – but they are also not afraid to ask questions or challenge the solutions of others.

  • Analytical thinking

In the current information overflow era, this is a skill everyone should possess – but it is particularly useful for testers. It can help them comprehend the customer’s expectations and feedback and use it to define the right testing strategy. It’s also necessary for root cause analysis, requirement analysis, or for understanding the data collected from tests and analyzing it for specific behavior of the software.

  • Patience and perseverance

Nobody likes dealing with bugs – but that’s what a large part of a QA tester’s work is all about. They need to be constantly vigilant and ready to come up with new approaches and fresh angles on the application. Under such constant pressure, it might be easy to lose focus, get frustrated, or run out of creative juices – but the best testers need to be prepared to push through those obstacles and emerge victorious.

Do you feel that you have what it takes to make it in the QA world, or does the list seem intimidating? Even if it does, don’t worry – most of these skills can be learned with enough practice and diligence. What is important to remember is that testing is not only about hard skills – it requires just as much technical knowledge as it does curiosity and creativity. Fortunately, according to our QA specialists, the job can be as rewarding as it is challenging.

video call people phone tips communication

6 do’s and don’ts of video calls


Can you imagine a day of work without video conferences? Neither can we. They are convenient, easy to set up, and they help companies save time and money. And with the increased remote working time and the travel limitations caused by the global pandemics, there seems to be no better way to stay in touch with clients and team members.

Video calls are here to stay

The numbers show that even those reluctant towards video calls are warming up to the idea. Since the beginning of 2020, the number of video calls has skyrocketed, with some major players on the video conference software scene noting an increase in users as big as 2000%. That’s over 2 million downloads a day.

It is also clear that customers are eager to look for custom solutions that work best for their businesses. Statistics from a software review site TrustRadius show that in April 2020 the interest in video conference applications was up to eight times greater than in January of the same year. The time customers spent evaluating different options was also about three times longer as compared to before the pandemic.

 

screen shot 2020 05 08 at 12.17.02 pm 1024x552

Source:TrustRadius

How to stay professional during video calls

Despite the rising interest in web conference software, video calls can still be uncharted territory for some people. And while each company has its own communication standards, following some universal rules can ensure that a meeting goes smoothly and without distractions. Here are six etiquette tips that will help you leave a great impression during your video calls.

1. DO – Being on time

Everybody has experienced a situation when a meeting could not begin for several minutes because of one late joiner. Video conferences are no different. It’s not uncommon to start a lunch break or get engaged in your next pressing task just to suddenly realize that you were supposed to log into that meeting fifteen minutes ago. 

The easiest solution is to set up a reminder, by using a calendar or email app, or even a phone. However, if you cannot help joining a few minutes late or you won’t make it to the meeting at all, make sure to notify the host or a team member as soon as possible. This will help them save time they would otherwise have to spend on small talk. And remember – every five minutes wasted in a meeting of ten people amounts to fifty minutes of your company’s working time.

2. DON’T – Not setting up your space

Although working from home grants much personal freedom, company meetings are the perfect occasion to showcase your professional attitude. How to do that? Make sure that you are dressed for the audience– and while that doesn’t need to mean wearing a full shirt and collar set, pyjamas are definitely out of question. The rule of thumb is to make sure your look reflects what you would usually wear at the office. It’s also important to clean up your surroundings before the call. Dirty mugs or children’s toys lying around are not going to leave the best impression.

However, if there is nothing you can do about the state of your home office, consider blurring your background or using a virtual one. Just make sure it’s appropriate to the occasion – you don’t necessarily want to negotiate a contract with a client from the inside of an X-wing.

03 03

3. DO – Checking your equipment

Nothing slows a conference call down quite like its participants adjusting their audio or video settings for several minutes. That is why you should always check your equipment ahead of time. Call your teammates or use the testing feature of your video call application to make sure that your microphone picks up audio and the camera works as intended. Remember to make sure that your internet connection is stable– if not, consider switching to a different network, turning off your VPN, or using a wired connection.

Don’t forget about the software as well. It’s not unusual to attempt starting a call just to find out that your application needs an update. Try joining the meeting several minutes earlierso that you have time to fix any potential issues.

The right application is all the more important if you are a host of the meeting.  According to the 2019 Impact of Video Conferencing reportby lifesize, over 41% of respondents pointed at the overly difficult downloading or joining process as the main detractor to their call experience. Solution? An entirely web-based video call platformlike Vicodo. Once you schedule a meeting, Vicodo sends your customers a convenient invitation link via email and text message that they can open in any browser. No more struggling with heavy executable files or forgotten passwords.

4. DON’T – Not using the mute button

Even if you don’t work from a local coffee house, there is a chance that your remote workplaceisn’t perfectly quiet. There might be trash collection happening outside the window, or perhaps your dog refuses to stop barking. A better quality microphone might help with muting out some of the background noise, but even the best hardware won’t help if you suddenly need to cough or take a sip of water.

All of these might pose a distraction to the other participants. That is why we recommend muting your microphone whenever you’re not talking. This will help everyone focus on what the speaker is saying. Be careful not to keep it muted at all times, though – you don’t want to deliver a five minutes speech just to notice that you had been the only person who could hear it.

5. DO – Keeping your camera on

This is, without a doubt, the most controversial point on the list. While audio-only participation can be a blessing for some people, here at Mood Up Team we strongly recommend keeping the camera on throughout the whole meeting. Why? Here are our reasons:

  • It shows your engagement– your teammates or clients can see that you are paying attention instead of absently browsing your phone.
  • It builds relations. In a conversation, facial expressions and gestures are everything. Seeing them in real time not only makes you feel closer to your fellow participants, but it can also prevent you from being misunderstood.
  • It helps you feel connected. It’s natural to feel isolated or detached after a prolonged period of remote working. Seeing the faces of your coworkers helps you remember that they are more than just usernames on a screen.
  • It can be a conversation starter. It is not every day you get a glimpse into your coworkers’ private lives. Who knows, you might spot a cat demanding attention or a funny poster on the wall.01 01

6. DON’T – Getting distracted

Once you are done speaking or the current point on the agenda is not relevant to you, it might be tempting to get on with your other tasks. Try to avoid that – replying to emails, checking slack, or browsing your phone can wait. Being attentive and listening to your coworkers is guaranteed to leave a much better impression.

If you really need to reply to a message or search for a file, make sure to communicate that to the other participants to avoid long periods of silence. And if you want to show that extra attention, here’s a tip – remember to look straight into the camera. Your teammates will get the impression you’re keeping eye contact with them and will know you are listening attentively.

Doing it right

In the current challenging times, video conferences are invaluable means of communication and collaboration. As more and more companies are transitioning to remote working, the demand for upkeeping an online meetings etiquette will increase – and with our list, you’re already ahead. By following these tips and preparing ahead of time, you can make sure that your next video calls are much more smooth and efficient.

 

home office girl sitting on the sofa

6 Tips How To Make Your Home Office Efficient

Times have been shifting and with changing times the tech and the needs of people have taken a turn too. Now this change is not just confined to our personal lives where we have become highly dependent on our phones and tabs for meeting our every small need. It has spread its wings in the professional sphere also. Along with the Word and the Google documents that have replaced the paperwork in offices, the office culture is also being fast replaced by work from home concept.

Since our world has been struck down by a lethal virus, both the value and demand for work from home have recorded an increase. This is because in the times of Corona, going to the office is being recognized as highly dangerous. Covid-19 can be easily contracted by coming into contact with an infected surface and hence. The governments around the world are recommending people to stay at home and to opt for remote working. It is being said that doing so can help in containing the spread of the Covid-19 virus.

home office 03 1

 

Is working from home feasible?

In the digital age, the employees don’t need to assemble in a traditional, centralized workplace to do the “office work.” Today, with the help of digital tech you can efficiently complete the projects and even conduct meetings without being in the same room, or even in the same city or country. So, rather than working in a cubicle the employees now have the option of sitting and working from their homes or their favorite coffee shops. The only 2 requirements for remote working are a laptop and a good internet connection. And if you have them both, then you are all set. 

Now as to the question of if or not remote working is practical, let’s quickly check some facts.

  • Easy working conditions

Remote working translates into easy working conditions. So, consider if you have some issue because of which you cannot go to your office, then under normal circumstances, this would mean a leave, but with remote work, you can literally work from a park or even from a hospital. This is beneficial for both the employer and the employee as it would ensure that the work gets completed easily without dragging the deadlines.

  • It facilitates more work 

77% of the workers report more work productivity when they are working remotely. This is because in remote working conditions the normal distractions and unnecessary office hurdles are not in between you and your work when you are working from someplace else. Hence, it means more work in less time. Again something that the employers will appreciate heartily.

  • Less wasted time

When you opt for remote working, it also translates into less wasted time for the employees as now they don’t need to spend hours stuck in traffic. People don’t need to wake up 2 hours before their office time simply to look presentable and to reach office on time. They can literally just wake up, take a quick bath, settle down in their PJs, and fire up their systems to start work! This routine hardly takes 15 minutes. 

  • Automatization of companies

As per the present trend, automatization is the need of the hour. The less you start to rely on things that can ditch you at the end moment, and the more you become dependent on technology and machinery for carrying out your work, the greater will be your chances of success. And remote working or work from home is one step towards the automatization of a company. 

Hence, it can be concluded that even though work from home is a still-developing field, yet this option is a feasible one, especially when you look at it in the context of the present scenario of Covid-19.

How can you improve your remote working efficiency?

Now that we have discussed the feasibility of work from home option, let us now have a look at tips to improve your efficiency while remote working from home.

  1. Use video chat platforms like Vidoco

One of the disadvantages of remote working is that people do not get the opportunity to see their co-workers or employers face to face. Many times this leads to miscommunication. Now, if you want to correct this error, then one way of doing that would be to use video calling platforms like Zoom or Vidoco. Like zoom, which is an easy and reliable platform for video communications, Vidoco is also a feasible option for video calls.

With Vidoco, the user is granted the option of using a video calling tool without installing it on their phones or computers. Rather you can just access it on your browser. Plus, with Vidoco, the call receiver does not need to worry about registration because here one-sided registration is also enough. Other benefits of using this tool include the options of recording a conversation so that you can revisit it any time you like and the choice of sending an invite through an email or SMS to the receiver which is both an easy and practical solution.

3 1

  1. Share official documents

When you are in office, it is quite easy for your co-workers, employers, or employees to knock on your office door to ask for that file or document that you were working on yesterday. But when you are working remotely this can act as a hindrance to the work progress as your colleague may have to wait to get a document from you simply because your working timings do not match.

Hence, if you are not already doing it, then starting today onwards, get into the habit of working on Google Docs, Box, or Dropbox to share files. Having scattered files on Email, Word, or personal hard drive is not recommended. 

  1. Be pro about time management

Many employers worry if their employees are actually working during the office hours or are they skipping office work for managing their laundry tasks or for binge-watching Netflix while they are working remotely. Well, to be honest, the concern is genuine. So, what is the way around it?

Well, according to us, to deal with such issues the employee needs to be firm about deadlines and protecting time. So, consider if you are working on a project and you have set a deadline for the employees for 23, then be firm at 23. You can even send them a reminder email at 21 to ensure that they finish work in time.

  1. Have a workplace at home

While working from home, a lot of employees complain about motivation. According to a survey, 2/3rd of the people who work from home reported, they don’t feel inspired to leave their beds or to power up their laptops to get into the ‘work mode’. This has been known as a major deter in work efficiency.

Now, one good way to deal with this is to assign yourself a workspace. This is because when you work from your bed or couch, the leisurely feels do not leave your body completely. This hinders your work. Hence, getting yourself a dedicated room or surface -a specific place for work like a table or a coffee shop- that consistently remains your workspace is a good idea. It will boost your morale and help you in getting into the right frame of mind.

  1. Emphasize over communication

When working in a remote team, it happens so often that one person assumes something while that is not what the other person meant. This results in miscommunications, and it can affect your work negatively. Hence, in order to ensure that nothing of this sort happens, emphasize over-communicating, and leave nothing to assumption. 

Make sure to clarify all the doubts and lay down the expectations very clearly. Use video chatting platforms like Vidoco while communicating with your team member or your head so you can always go back to it, and have a look at the recorded conversation to clear any lingering doubts. If you still have some doubts left, then don’t hesitate to drop a mail. Remember, it is better to communicate than to work wrong.

  1. Get regular feedback

Even when you are working in the same space, it is often difficult for employees to report any problem that they might have with their colleagues or boss. It is quite hard to stand up to your superior to tell him that something is not working right. Hence, it falls upon the employer to make sure that the employees can reach him easily.

When you are working remotely you can do this by asking your employees for feedback. So, check-in on your colleagues regularly, ask them if things are working smoothly or if they would like to change something. You can either do this by dropping in their inbox or it can be managed over a phone call or over our personal favourite video call!

Conclusion 

Thus, we can see how working from home is a booming field that is assisting industries and companies in running smoothly. Using this culture the companies can tap into human resources from anywhere in the world and make maximum profits. However, it also necessitates mention that remote working has its own set of challenges. But if you plan futuristically and use your resources like the Vidoco video calling platforms smartly, then you will easily and effectively overcome the hurdles!

Man phone illustration

6 questions startup founders should ask themselves before developing an app

 

App development is all the rage these days and you might be seriously considering developing one for yourself. What you have to keep in mind, however, is that undertaking such a project requires the collaboration of a wide range of skills and can be costly for a startup. Why we say as such is the development of an app does not stop at the end of its technical development and needs to be marketed and maintained. 

Do not lose heart, as developing an app can, in fact, help you achieve your business goals, provided it is done right. How do you do it right? 

Answering the questions below might be a good start. 

1. Do I really need an app?

You might consider this strange coming from us since our main bread and butter is in app development. We are, however, also a client-first company, realise that startups are usually bootstrapped and have no hesitation in shooting down grandiose ideas that might just end up sucking money with no discernible return on investment. 

So some of the questions you need to ask yourself to answer the question on whether you need an app are 

  • Is there a gap in the market?
  • Is there a healthy return on investment in this gap?
  • Are there any direct and indirect competition? 
  • Are you committed to this or jumping on the app-building bandwagon

2. Who is my customer?

An app made for everyone isn’t going to be used by anyone. 

It’s important that you identify the end-users of your app as it is to their needs your app should be catering to. This information is pivotal in creating user personas that help the design team understand the user demographics, behaviors, motivators, goals and pain points. 

If you’re not too sure on the above information on your end-users, it’s worthwhile to invest some time and resources to do so, as this information in pivotal in communicating your idea to your app development partner. 

3. How do I plan on monetising it?

App development can be a costly investment and one in which you should be earning a good return on investment. Give some thought as to how you plan on recouping your costs with the below questions. 

  • Will the app be free to download, paid or freemium?
  • If it’s free, what strategies will you be using to earn money?
  • If it’s paid, what is the price point you will set it at?
  • If it’s freemium, which features are free and which are paid?

Inapp_revenue_drivers

Sourced from Clearbridge

4. Who’s going to develop my app?

The right answer here isn’t freelancers as a great app is a sum of many skills brought together. 

Developing an app first needs designers who are proficient in User Interfaces (UI) and  User Experiences (UX). These designs must be created using user personas and tested before being passed onto the development team who then begin work on the coding. The code developed must then be passed on the Quality Assurance (QA) team who will test it for bugs and proper functionality. 

App development is a complex process which is why we recommend you to give some careful consideration before picking one. A couple of things you might want to look at when doing so is

  • Experience – have they developed similar to yours?
  • Reviews from previous clients – look beyond the reviews on their website and on websites such as Clutch. We also urge you to reach out to their previous clients to get a first hand account of how their partnership with the said app developer was. 
  • Software development model- is the software house working on the waterfall or agile methodology?
  • Pricing model – will the software house be charging you on fixed or on an agile contract?
  • Communication model- how often can you expect updates and/or replies? What are the tools used for communicating with clients?

5. What’s my plan for marketing?

The greatest app in the world can remain unused if no one knows about it. 

Your marketing does not need to have an ad budget with many zeros behind it, but a sizable amount experimenting to understand what works and what doesn’t. Make a plan on who your customers are, where they are and what they do to better understand what you can do to get their attention. Below are a few things you might want to focus on when releasing your app to the app store. 

  • App screenshots to showcase your app in the App/Play Store 
  • App description 
  • App Store Optimisation (ASO)
  • Search Engine Optimisation (SEO)
  • Social Media Marketing 

Don’t have the necessary know-how? Look for help from an external boutique agency so as to maximise the potential of your marketing budget. 

App_marketing_best_practices

Sourced from Apptentive

6. How am I going to fund it?

As hard as it is, we must talk about the means through which you will be funding the development of your app. Giving this some serious thought from the get-go itself is important as the cost of research, design, development, testing, launch, marketing and many other expenses related to producing an app can take a sizable chunk of any start-up budget. With that being said there are several means through which you can raise capital for your app

  • Friends and family- the easiest mean of raising some capital is through those who know and have trust in your vision. Just remember to treat them as investors who trusted you and take good care of the money they entrusted you with. 
  • Partners- reaching out and locking in several partners who possess different skills is a great idea to raise funds and make use of their technical expertise. 
  • Crowdfunding- with a plethora of crowdfunding websites to pick from, there is simply no excuse for not giving crowdfunding a go if you have very limited budgets. Crowdfunding your ideas can also serve a fantastic means of validating your idea as an idea that many are willing to back via investments is one that will get traction once it’s released. 
  • Funding contests- with many organizations, companies, or even startup incubators hosting contests for those who are looking to fund their ideas, a great pitch can take you a long way. These contests are extremely competitive, so make sure you do your research, craft an engaging pitch and practice as much as possible. 
  • Angel investors- a very attractive option for some startups as angel investors bring the required financing as well their business acumen to help run the project. Do, however, remember that Angel investors can only be bought in if you are willing to hand over a portion of the equity of the project to match it.

Conclusion

We realise that wrapping your head around all the steps and processes needed to bring an app to life can be difficult. All the more so as an incorrectly developed app can fast become a liability, sucking your funds dry in comparison to the asset you expected it to be. It’s for this reason that we recommend you to hire a software consultancy company that can help narrow the idea and provide an end to end service for startups such as yourself. 

iphone money mobile app

5 top ways a free mobile app can earn money

 

One of the most considerations when building an app is its monetisation strategy, as app development is no cheap undertaking and the costs need to be recouped by those who invested in it. The best way to to do so is to make sure the app you develop is one is available to as many users as possible, increasing your monetisation chances. Don’t believe me? Just take a look at the ratio of free apps when compared to those that are free!

Free_and_paid_apps

Sourced from  Statista

It’s clear that opting to make your app downloadable for free will make it attractive for a large demographic to whom you can market, convince and provide your app. But once this is done, how exactly will you be monetising the app? Well, we have 5 key tried and tested methods through which you can use to earn revenue from your free app. 

1. In-App purchases

Used by most app makers these days, in-app purchases are essentially a strategy of attracting a user to an app before pitching extra services that are only accessible for a set fee. Earning revenue via this method is rather easy if your app is a game as the players can be encouraged to buy token in exchange for bonuses. You can do the same with non-game apps by offering an ad-free premium version of your app. Such a strategy can be a sizable revenue generator for both game and non-game apps as the stats from  Business of Apps (2019)

In-app purchases (50%), paid downloads (50%), and in-app advertising (49%) were the most common actually used app monetisation strategies for non-game apps

For games, only in-app advertising (81%) edged out out in-app purchases (79%)

2. Sponsorships 

Done right, sponsorships are a very lucrative method of monetising your app and can bring a steady stream of income. The trick is to build an app for a niche audience who would be interesting to a potential sponsor, who can then model the app with their branding, for a fee. Do, however, remember that such sponsorship opportunities are only good if your app caters to a niche demographic that is sizable. 

3. Advertising 

Mobile_app_ad_types

Sourced from techpatio

One of the most common and best means to monetise an app is through advertisements you users might find relevant. Setting up such advertisements is a relatively easy task as there many third-party networks to assist with this. The type of ads that you can run include, but are not limited to:

  • Banner ads– the most common ads format you might have often come across, banner ads pictorial and often found at the top or bottom of a mobile app. Such ads goal is to remain in the users’ sight at all times so as to increase the chances of clicks on the ad. Some banner ads, however, might get blocked by adblockers if your users have invested in one, thereby throttling your advertising efforts. 
  • Native ads– heralded as the answer to adblockers, native ads are ads that are more ingrained to the app and its content. Such ads cannot be blocked and tend to be more appealing and less intrusive than banner ads. 
  • In-app video– a fantastic means of getting marketing messages across, videos on average receive more engagement than the typical ads, making it more attractive to advertisers. 
  • Interstitials– closely related to pop-ups, these ads are displayed to users during transitions in the app. Such ads are less intrusive and offer decent interaction with the users in your app. 

The important thing to remember is that advertising is not the only strategy you should be depending on for monetizing your app, as it takes a substantial amount of regular users to create sizable income. 

4. Referral Marketing 

Referral marketing is a strategy through which you can monetise a free app by displaying ads for other apps and/or services. The revenue generated is dependent on several metrics and can be a very good source of income if done right. 

  • Cost per view (CPV) – this revenue model is based on the number of views on an ad, whether it be an image or a video. 
  • Cost per click (CPC) – a revenue model on which the number of clicks on the ads displayed, decide the revenue generated. 
  • Cost per install (CPI) – equivalent to the cost of acquisition (CPA) of an app, the CPI is a revenue model based on the number of installs that result from a particular referral ad. 

5. E-mail Marketing

As old as it might be, email marketing is still a very powerful method of reaching out to customers who are actively interested in your products and those related to it. To do this, you can collect user emails via popups that offer rewards in exchange or a Facebook SDK that allows users to log in using their Facebook profiles. Once collected, these email addresses can be used to reach out with updates on new features on your app, offers, news and anything that might bring users back to your app and increase its monetisation opportunities. 

In any case, do make sure that the emails you collect are done with full transparency on how they will be used. Such personal data should be collected and used with due diligence as failing to do so can have you incurring huge fines under regulations such as the  General Data Protection Policy  (GDPR) of Europe.

Global_app_revenue

Sourced from gamesindustry

Conclusion

Building an app is a serious financial undertaking and we understand that recovering these costs as soon as possible is a key consideration for you. These 5 monetisation strategies, however, can go along way towards helping you obtain a good return on investment, provided you pick the right one that is suitable for your app, its users and expectations. Remember that you can opt for either one or more strategies concurrently, provided you keep the user experience top of mind. 

Searching seo web development

Does your app need a dedicated landing page? 

 

Imagine that you are creating an app choke-full of recipes for cooking great Italian cuisine. It’s a great idea as there is definitely a demand for such an app. But how will you create buzz around this? How will you convince your audience to download the app? 

A landing page, simply put is the homepage of your app and serves as a central hub for all information on your app. The content of such a landing page depends largely on the stage at which the app development is at and is a fantastic method of building a community around the app even before it is launched. It is also the end page customers will be arriving to as a result of your marketing activities for the app and will prompt those leads to click on your call to action to download the app one its launched. 

What elements should a landing page contain?

There is no hard or fast rule on the content that should be inserted in a landing page, but below are a few elements we think is important for any user to gauge an apps suitability. Note that the order of such elements can differ as per the product that is under development and the end-users it is aimed at. 

  1. The headline – this has to be simple, concise and resonate with the needs your app will solve. This is where you must highlight your unique selling proposition.
  2. The hero shot – humans respond well to visuals and less to text, which is why your landing page should display images of your app and the context of use.
  3. The benefits – the users who were attracted by your headline and the imagery needs further convincing and should be met with further information on your app and the features it offers.
  4. Proof – most app users are followers and look for reassurance from previous users on how they found the app before downloading it. Inserting some reviews from how users have found your app can provide some compelling social proof to download your app for those who visit your landing page.
  5. The call to action (CTA) – the most important of all the elements, the CTA is the text or button that leads the user to a certain action such as downloading the app, subscribing to an email newsletter or taking a survey. The click made on this CTA is the end goal of the rest of the elements of the landing page and is a good measure of success.

Invision_landing_page

An example of a great landing page from Invision

Why should your app have a landing page?

  1. It helps to showcase your app –  a dedicated landing page is a fantastic platform to showcase the story behind the app’s creation and build awareness about it. Such a platform where you can elaborate on the app is very important as the app marketplace today is very crowded and needs to be attracted to this landing page via search engine optimisations, public relations, social media marketing and other marketing means before being prompted to take the call to action. 
  2. It demonstrates the app’s functions – the App/Play Store provides very little space for providing information about an app and isn’t enough space to convince a user to make the tap on the download button. A landing page dedicated to the app, however, provides this space and can be utilized to show pictures of the apps working. We at Mood Up recommend supplementing these pictures with videos as well since they are a quick and easy method of receiving new information.
  3. It serves as a hub of information – the landing page you created is a great portal of communication to serve information on where the app is, whether it be in the design, development or deployment. Such a platform will serve as the central hub of information for your end-users and drum up excitement as the app launch date is getting closer.
  4. You can recruit beta testers – a landing page lets you reach out to individuals who have shown interest in the app and recruit them as beta testers prior to its deployment to the general public. Such beta testers will prove invaluable in the development of the app as they can be very helpful in usability testing (usually an expensive process) to ensure that the app is kept user-centric.
  5. Helps to refine marketing messages – having a landing page for your app would allow you to test and refine your marketing messages and even the app microcopy. Doing so using AB testing is very important as the messages and overall content that you use should match and resonate with the end-users you are targeting.
  6. Lends credibility – a dedicated landing page for an app lends credibility to the app and is a huge persuading factor for a user who might be torn between downloading your app and not downloading it. Think about it, would you download an app you haven’t heard about if there is no website or mention of it upon a quick Google search?

What not to include in a landing page

Chase_landing_page

An example of a not so great landing page from Chase

  1. Too many details – your app landing page’s primary purpose is to inform, convince and persuade your visitors to take a certain action, whether it be downloading the app, taking a survey or subscribing to an email newsletter. Having too much information on a landing page that is meant to guide a visitor to a certain outcome is distracting and can have you losing visitors who would otherwise convert. 
  2. Lengthy videos – videos are a great resource for any app landing page, provided they are not too long and does not put the viewer to sleep. Make sure your video leaps straight to the action and is optimised so that slow internet connections will not be an impediment to watching it. 
  3. Links, links and more links – the more outbound links you have on a landing page, the more opportunities you give your hard-earned visitors to escape the landing page. Some links are important, but make sure not to confuse the visitor as the only purpose of a landing page is to guide the user to a specific action. 
  4. Cumbersome forms – landing pages as we mentioned previously is very useful for collecting email subscribers that can be communicated to. Do, however, remember that such forms have to be simple and only gather purpose-specific data that is required. Remember, you don’t want to frustrate your visitors, so make sure to run some usability tests on the forms.
  5. Unnecessary elements – most companies tend to create their landing pages to match their website elements, and this is a disastrous tactic as it provides the users with many avenues to explore and not move towards the desired action of the landing page. 

Conclusion

A landing page for an app as you can see is a boon and not burden as some make it out to be. Having such a landing page will lend you credibility, create a space for showcasing the app and can be useful for soliciting feedback on the app from those who visit it. Do, however, remember to pay careful attention to the development of such a landing page with A/B and usability testing to reap its full benefits. 

Bug fixing and finding

What metrics can you use to verify the quality of software?

 

Software quality is a way to describe how accurately the product fits the project objectives, client’s needs and general requirements. Usually, the completion of all the functional requirements is the bare minimum for a product to be considered as done. The code of these functional requirements must then verified via the inspection for bugs. The manner in which the developers organise their work and use to check the code is important here as it helps in understanding the quality of the code, monitor project status and creating quality models that can be used as a benchmark for future code. 

Equally important as the testing of the code is the evaluation of non-functional requirements such as the UX , UI and many other categories. Doing so is vital as no amount of bug testing by the internal team can replace the feedback from a client who has just downloaded the app. One must, however, remember that extrinsic factors such as timelines in which the product was delivered, the degree of satisfaction from the client, users and the team play a role in measuring software quality as well. 

Why is measuring software quality important?

Ever heard of the phrase “If you can’t measure it, you can’t improve it.”? Well, this is very applicable in software development where the focus is on continuous development and the delivery of a world-class product. 

  1. Helps to reduce development costs – Measuring the quality of the software is a great way of receiving objective data on the software the team is creating, work of the QA team etc. Doing so from even the very early stages of the project is important for maintaining quality throughout the software development life cycle and provides the team with feedback on what they need to improve on. `Such monitoring and optimizations helps to reduce development costs to the client.
  2. Helps track team effectiveness – knowing how much time is taken to fix a bug can give an indication of the team’s effectiveness and help the client decide on which bugs needs to be fixed if the team is to meet a set deadline. 
  3. Aids in planning future functionalities – Gathering the data on software quality and the development process helps with planning future deadlines, estimating how many hours need to be devoted to implementing a functionality and how much would it cost.
  4. Increase client confidence – a culture of quality assurance creates confidence about a developers skills in the minds of the customer and even the end-users. This is one reason why we have no qualms about downloading apps from well-known brands such as Google and Facebook, when compared against more obscure ones.

cost_to_fix_bugs

Bugs can be expensive. Image sourced from deepsource.io

8 metrics to verify software quality

The metric you use to measure the quality of software depends on the software and its expected outcome, as there are too many to choose from. Such metrics in my opinion should be chosen carefully as per attribute you want tested and cover basics such as time spent on the project, defects of software, the size of the product and effort put into the project by the team. 

These are some of the most popular measures of software quality you can track on your project for basic insights:

  1. Code churn— a very popular metric that measures the amount of code that is deleted, added or edited in the repository over time. What is important to remember here is to interpret the data correctly as a big code churn value can be expected, in a new feature. The same in older code, however, can be a hint of trouble as the developers are then focusing too much fixing technical debt instead of working on new functionalities. cost_of_bad_code

    Image sourced from Pullrequest

  2. Lines of code (LOC)– this metric as the name suggests refers to the lines of code in a functionality and is a good indicator of how complex/efficient the code is. It can also be used as a company restriction for how many lines of code can maximally be written for a functionality to make sure it’s not overly complicated.  Generally, counting lines of code as a measure of programmer productivity is not a good practice as it might just be seen as a reason to write unnecessarily complicated code.
  3. Number of bugs or defects per KLOC (1000 lines of code)– also called defect density, KLOC helps predict the number of defects that may arise based on previously collected data. Tracking this metric is important as a high number of critical bugs per KLOC may be a signal to focus on tests and slow down on implementing new features.
  4. Lead time– an indicator of the time it takes an idea to go from being an idea, to development and deployment. It takes into account every step of the software development life cycle such as design, development, testing design, testing and is a good measure of how a project is progressing. This data can then be used to help plan, estimate releases and future work. 
  5. Burndown chart–  a chart through which you can track the amount of work that is incomplete with the time it should be completed in. Set on a horizontal axis, the burndown chart measures the work that is already done (bug fixes for example), new work that will appear in the meantime (newly discovered bugs for example) and the rate at which the bugs are fixed. Such charts in our experience help to plan the end date of a project with better accuracy and monitor the efficiency of the team. Burndown_chart

    Image sourced from Atlassian

  6. Release confidence– software quality can be measured beyond quantitative methods and take qualitative feedback such as the confidence in which the developers have in their work.  Doing so is easy with a board where developers can mark product features that they feel can be shipped soon with a high degree of confidence. 
  7. % crash free user – monitoring the crash rate of an app upon its release is important to ensure the app is functioning as it should. The crash rate should ideally be under 1% as anything larger than might mean trouble, and should be looked into, rectified and pushed out via an update.
  8. Customer satisfaction– one of the easiest and the best means through which you receive customer feedback on an app is its reviews on the App/Play Store. Qualitative feedback such as this should be gathered, sliced, diced, analysed and investigated as they can yield some very good feedback about the app and its functionalities. Pushing updates as per such feedback will help you being seen as an organisation that listens to its users and increase product uptake.

Conclusion

With a variety of metrics to measure software quality, it can be difficult to pick one that is the right one, which is why we recommend using a range of them to understand the full picture. Just remember, the metrics which you opt for in measuring the quality of software should reflect what is important for the project – for example, if a deadline is approaching, focus on monitoring the burndown chart or lead time to get a hold of whether this deadline is feasible. If providing the most reliable product is what matters most, crash rate and user reviews are a better fit for your needs.

mobile app design and development

What’s a User Persona and what should you avoid when creating them?

 

User Personas according to their creator Alan Cooper are “hypothetical archetypes of the actual users. Although they are imaginary, they are defined with significant rigor and precision.” Another fantastic definition I came across was from UXPlanet where persona was defined as “a simple tool to create your product with a specific target user in mind rather than a generic one. It’s a representation of the real target audience data, gathered in previous research such as user interview.” A more simple definition is offered by Interaction Designwho cites personas as “fictional characters, which you create based upon your research in order to represent the different user types that might use your service, product, site, or brand in a similar way.

How important are user personas in the product design?

User Personas are so important that I don’t recommend starting any design project without it. They serve a variety of uses in the success of any digital product and I have outlined 5 of them below.

  1. Provide a face to the end-users-empathy plays a large role in the design and putting a face and a name to the end-user helps in creating user-centric designs.
  2. Helps to stay clear of design bias- we are all humans and its very natural to fall back to designs that we are favorable towards and not of those who the product is being designed for. Personas serve as a constant reminder of who the end-users are and of the functionalities that should be included in the final design.
  3. An easier narrative for stakeholders-personas are simple and easy to understand which is why they are useful for explaining the end-users goals of the product to the client, stakeholders or other internal teams such as developers and QA.
  4. Helps with prioritizing the requirements-product design and development is a time-consuming affair in which most clients prefer to launch as soon as possible. Having user personas help with identifying the requirements that need to be provided in the early stages.
  5. Faster design iterations– when the team shares and agrees on the end-users, it creates a sense of unity and cohesiveness, increasing the velocity of the design process.

Here is how I created my first persona 

I was once approached by a client who was looking to create an app that can help people discover events near them. The idea sounded great, there was a real demand for such a product and plenty of design inspirations from globally successful apps. My next step, therefore, was to have a sit down with the client on the types of end-users they were looking at and how to prepare for an interview.

One of the targets the client would like to engage with were students. After the selection and recruitment process, the next step was to conduct a semi-structured interview in order to find details such as:

  • Who they are (profile); 
  • What they do, when and where (context); 
  • Why they do it (needs, goals, tasks) ; 
  • How they do it (experience); 
  • What they like or dislike (frustrations)

This is a snapshot of the user persona I have created after several interviews with students. 

User_persona_kacper_kowalski

Source –Kacper Kowalski on Behance

What do you think? Sounds pretty simple right? 

Not quite, as the creation of the user personas is a very data-driven process that must be approached distinctly. I have described 7 common mistakes that I have dealt with during my first approach.

1.  Botching the data collection

The respondent does not seem to be a good fit. Sourced from Sketchport

The user personas are created of the conversations/interviews with the end-users and of internal stuff that they interact with. This data collection needs to be conducted strategically to increase the chances of creating a user persona that is as close to the individuals that were interviewed. A couple of tips I recommend here is 

  • Create a set of questions you’d like to ask. Remember that the conversation should be semi-structured to allow for the conversation to go off-script if it’s needed. Such conversations in my experience have yielded the best insights for creating user personas.
  • Do a check-in with yourself to ensure you are asking the questions to get the answers you might be seeking. Remember not to manipulate or guide the respondents to hear answers that might match any existing notions or biases you might already possess.
  • Take notes and/or record the interview to ensure no information is lost
  • Do the interview yourself as hiring someone who has very little idea of why particular information will be useful is a waste of resources.
  • Stick to the time allocated. 15 minutes on average is enough time to ensure you receive the information you might be seeking. This, however, is not set in stone and can be lengthened depending on the quality of the information you are receiving. 

2. Creating too many personas

User Personas ux research personas ux design

How many are too many? Picture sourced from  Lorenzo Zecchin – Dribbble

A user persona’s core purpose is to narrow and give a good idea of the end-users for the team who are working on its design and development. This understanding of the end-users is what molds the app’s functionality, look and feel. 2-3 different personas types should be just enough.  

It makes sense to take the needs and pain points of an individual such as Maria who is looking to spend some extra time out with her friends since she does not like taking part in activities by herself.   

3. Ignoring the negative personas

Negative_personas

Know the wrong type to isolate the right type. Sourced from  Audience Ops

Negative personas as you might have guessed are those that must not be considered as the final target audience at all. Creating such a persona and segregating the needs of those who will not use our product provides a clearer focus on the needs of those we should cater to. This gives the team a sense of clarity and keeps the design and development neatly aligned with the user personas. 

4. Placing personal bias over research

on research

Don’t be like this guy. Just don’t. Sourced from  chainsawsuit

There is no space for personal bias in the creation of data-backed user personas as any wrong assumptions can give rise to a product that your end-users will not be attracted to.User personas as I keep on harping is a semi-fictional representation of the majority of the end-users of any digital product. I used the word semi-fictional there as the personas we create are based on the understanding of user data, behaviors and demographics gathered from real individuals. Such research allows us to discover and ensure that the real needs and pain points of our end-users are on top of mind during all the stages of the product design.

5. Not looking for updated data

Your user personas, like your users, should not stay the same. Sourced from Lucidchart

Human needs and pain points are what forms the cornerstone of user personas. What is important to remember, however, is that what the end-users need and get frustrated by today will not remain constant and can change over time. The user personas you create therefore need to be updated over time. 

It might be tempting to stick with the same user personas, but updated insights into your end-users are vital when releasing updated versions of your product.

6. Thinking user personas = demographics 

Psychographic segmentation digital marketing strategy customer segmentation Demographic segmentation

See the difference? Sourced from  Hurree

Demographic information is important, but it is not the only thing that should be inserted in your user personas. What makes a user persona powerful is the psychographic information that was discovered during the conversations with the end-users, sales teams and anyone who interacts with the end-users. Make sure to research into questions such as what the end-user is doing, their average day, challenges, hobbies and any other information which would be useful.

7. Creating personas and not using them

putting personas to work

Put them up where you can see them. Sourced from –  UXbooth

This is a cardinal sin in my opinion and there is nothing worse than creating a persona that gathers dust (the personas made on assumptions and not data-backed research comes close). Remember that creating user personas involve a sizable amount of work and can go a long way towards the success of your product. Keeping these user personas at the forefront of everything related to the product is therefore useful and helps keep the product user-focused. 

Having trouble remembering the personas? A handy trick I’ve found useful is to print them and stick them up on the walls and/or wherever I and the team will be working on. Just make sure these don’t get mixed with the negative personas!

Conclusion

I am as you might have guessed a big fan of user personas as I’ve seen how they shape the product creation. The right user persona can change the trajectory of a product from beginning to end and give rise to a product the actual users will love. I’ve also heard horror stories from other designers on how products earmarked as successes flopped due to bad data collection and interpretation. 

Creating user personas isn’t easy, but it is definitely a worthwhile investment, provided you do it right. I hope this piece of writing helps you do exactly that.

Header image credits- Wikipedia

Bug testing illustration 1

Why is Mobile Application Testing Important?

 

With over 2 million apps on Google’s Play Store, and 1.84 million on Apple’s App store (statista, 2019) the battle for a piece of the $92.1 billion consumer spend (Businessofapps, 2018) will not be abetting anytime soon. This open for all app ecosystem has given the power to the users, letting them decide where their loyalties lie (a notoriously fickle thing) and spend money. 

The real question then is how do create the right conditions for a user to stay with you? The answer lies in how user experience focused the app is, the functionalities it offers and the flawlessness in which it operates. Think of questions such as does your mobile app work across different operating system versions? How does your app render on different devices, with different screen sizes and resolutions? Does the app match the usability expectations an end-user might have?

If it sounds like a tall order (and it is), you’re in the wrong business and will be part of the stats in the image below. Apps that are functional as they are aesthetic is now the norm and is why we at Mood Up put an unrelenting focus on testing each app we deploy for our clients. 

Mobile app uninstall rates
Data source –emarketer.com 

What are the real effects of mobile app testing?

Themobile app users of today are spoilt for choice and highly intolerant of any performance issues. Fail to ensure this and the user you just acquired after a sizable amount of marketing spend will uninstall and give you a negative rating in the same stride. It is to prevent such performance issues from materialising after the deployment of the product that QA engineers perform many tests while the product is in development. 

At its most basic form, the job of QA is to prevent the malfunction of the app that was completed as per the requirements. Such testing, however, is not a linear journey as the portion of the app that received the green light last week might not function today on account of an update from this week.The job of a QA team, therefore, is to stress the app and attempt to break it at every point in development so that it will not do so once it’s released to the users

The QA team utilizes many forms of testing to figure out the working of an app before forcing it to its limits. It’s their job to not only find issues in the code but also certain things that do not add value to the end-user. Some of the key factors to consider in mobile application testing includes

1. Selection of mobile devices – every app should have a certain target demographic and is why we sit down with our clients and ask some hard questions. The identification of these personas, preferences and usage patterns then allow us to understand the most suitable devices for testing via websites such as deviceatlas.

2. Network – testing the application under varying network conditions, to make them functional across challenging network scenarios. This is important when developing apps for nations that have varying degrees of internet connectivity.

3. Manual or automated – app testing can be done manually or via automation. Manual tests are performed by a Quality Assurance (QA) specialist to discover bugs in software under development. Such testing involves the checking of all essential features and generating test reports without the assistance of any automation software testing tools.

Automated tests in comparison are when testers write code/test scripts to automate test execution. These rely on a pre-scripted test which runs automatically and compares actual results with the expected results. Such an approach to testing as you can imagine can create cost savings and help deploy an app faster. 

4. Performance – Automated testing can be implemented to check the performance of an application and verify its behaviour by simulating mobile networks, usage behaviour, and testing user load by using as many concurrent users as required.

What are the tests we run to before deploying an app?

1. Usability testing – concerned with the design intuitiveness of the product and tested with users who have no prior exposure to it. Such testing is paramount to the success of an end product as a fully functioning app that creates confusion amongst its users will not last for long.

2. Security Testing – refers to the tests done to ensure the security of the app against given requirements. Doing so is pivotal in light of the spate of recent data breaches and regulations such as the General Data Protection Regulations (GDPR).

BA Data Breach Fine 1
Not the reason you want to be in The Economist

3. Functional/compatibility testing – performed to ensure the app functions as it is expected to. The QA team, therefore, pores over each of the requirements expected of the app and creates a script for how it should perform. The actual performance of the app is then compared against the script and any unusual results are highlighted with the developers who will then work on a fix. Such functional tests are usually automated as doing this manually across many physical devices is a very complex and exhaustive process.

4. Localisation testing – tests the apps ability to integrate with the local culture, making sure the local language, time zones and calendars are all available and functional. Doing so is vital to the popularity of your app as the modification of content to suit the users’ needs will increase its usage compared to an app that does otherwise.

Don’t believe us? Take a look at the diversity of languages in countries with the most app downloads.

Country level app download growth
Sourced from AppAnniesState of Mobile 2019report

5. Performance Testing – carried out to put the app through a battery of tests that will test the performance in varied conditions such as poor network connections (2G,3G,4G), low battery power and reduced memory.

6. Interrupt Testing – performed to observe how the app functions when it is interrupted during usage. The interruptions we test for include incoming/outgoing phone calls, messages, putting the phone on charge or removing it and drops in the network. A good app should be able to withstand all of these by putting itself into an idle state and allowing the user to continue from where they left off.

What’s the secret to making sure an app is bug free?

Agood workflow between developers and app testers we feel is the most pivotal component of any app testing. This covers components such as the manner through which the testers highlight bugs in the code (screenshots or a video) to communication mediums (Trello, Slack, Github or a face to face meeting), ensuring the end software is one that meets all client requirements and functions consistently. 

Remember to quiz your software house on its quality assurance for digital products. A good software house should have set procedures and work processes in place to ensure its customers receive nothing but the best. 

macbook with Slack sticker 1

8 Slack etiquette tips you should know about

 

There was once a time when e-mails were considered the go-to tool for internal and external communication. Then came Slack, who carved itself a place as the preferred tool for internal communication, leaving emails for communicating with those outside the organisation. 

Slack for its part is a very useful tool for opening up communication and creating transparency throughout an organisation. It’s core features that facilitate instant communication, however, can be over/misused, leaving fellow coworkers very much frustrated. It is for this reason that we created a poll on Slack (the irony!) to evaluate the pet peeves of the Mood Up team. Heres what we found out. 

1. Posting irrelevant content on channels

Slack is a fantastic tool for segregating workplace communication, provided this communication happens on the channels they are reserved for. Such channels are created specifically to address certain areas of activities and should strictly be used for said purpose, as not doing so can create confusion amongst your coworkers. It will also be near impossible to find attachments or past conversations if they are posted on the wrong channels. 

Take a look at the below channels. One is where we book times for playing Bomberman and the other is for letting the management know of what we need from the supermarket.

Now imagine if I asked for more milk in the games channel!

Screenshot 2019 09 17 at 10.30.28

2. Slack bombing

Slack as I keep on repeating is heaven-sent for workplace communication. But there is such a thing as messaging etiquette and bombarding your coworker with numerous messages when you could have simply written it in one go is quite frankly irritating. Remember that their notifications will be pinging constantly when such messages are sent and might disrupt them from a very important task.

Save the Slack bombarding messaging tactic for when something is actually urgent.

Screenshot 2019 09 17 at 10.41.26

3. Messages outside work hours

Messages and emails outside work hours have been a thorny issue for many and this hasn’t changed with Slack. Keep the work communication on Slack during work hours and respect your coworkers time. 

Have a message that you have to send tonight, as you might forget tomorrow? Write the message but do not send it. These messages will be displayed with a pencil in the following morning (as I’ve shown below) allowing you to send them off with a press of a button.

Screenshot 2019 09 17 at 10.51.40

4. Not using threads

Slack has a very nifty feature which allows for the creation of a thread on any message sent on the channels and private messages. This is very helpful to keep all conversations related to a specific topic as with forums.

Not using these threads would make keeping track of conversations difficult and make coworkers meander needlessly. 

Take a look at Piotr’s request for some assistance that was answered immediately by the rest of the team, in one thread. 

Screenshot 2019 09 19 at 14.58.42

5. Using public channels for private chats

Public channels are for public use and not meant for discussing matters that could have been done so in a private chat. Remember, no one likes seeing communication that does not involve them as its a distraction.

6. Using company-wide mentions liberally

Sharing pictures of cute doggos is great for relieving stress. Just make sure that you use mentions such as @Channel and @Here sparingly since those alert all your co-workers and not everyone would like to be interrupted during their work to see a picture of a cute pupper you discovered on the internet.  

adorable animal breed 1108099

7. Leaving messages in the air 

Mentions should be used sparingly, but also when you need them. Not doing so when needed is akin to throwing questions or comments in the air and will give you no answers. See below example 

Screenshot 2019 09 17 at 11.39.54

Sending a message such as this where I need Bart’s help is not useful as he would not receive my request for help. Mentioning Bart on my question, however, will ensure that he is notified. 

Screenshot 2019 09 17 at 11.40.12

8. Not acknowledging messages 

Slack loved by many due to its ability to allow instant communication between coworkers. The coworkers, therefore, need do their part and acknowledge any messages received as failing to do so can have the other party waiting for a reply (as with an email, ugh). 

Remember that acknowledging a message doesn’t always have to be via a very wordy sentence. I use ✅ to acknowledge the receipt of a message, 👀 to show that I will think about it and 🚫 to say no. 

To conclude

Slack is a wonderful tool for workplace communication, provided you don’t use it akin to a social media channel. Follow these tips, establish certain communication standards with the team and you will notice an incredible jump in your productivity and overall liability at work.

Do you have any Slack etiquette tips to add? Let us know in the comments below! 

Header image source- Giorgio Minguzzi