MarketingBY RabIT software engineering · June 25, 2019

DesignRush.com, a B2B marketplace connecting brands with agencies, determined the top mobile app development companies of 2019, in the state of California. These companies were judged to have a high success rate and quality standards when it comes to developing custom mobile applications for both Android and iOS.

We too are recognized as a top California Mobile App Development Company on DesignRush.

Huge thanks to the DesignRush team for this opportunity. Our team is always humbled when their work gets recognized by the IT community. We will continue to try our hardest to grow as people and professionals.

Our aim is to make people’s dreams a reality through technology. It’s been a challenging road so far, but we got to work with amazing individuals, and loved every second of it.

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

Startup & MVPBY RabIT software engineering · June 24, 2019

Intro

Many of us dream about becoming self-made successes, entrepreneurs who can finally free themselves from their 9-5 jobs and turn their dreams into a reality. Today, the internet is littered with success stories about people who have already made it big and became millionaires, hundred millionaires, billionaires even.

The path to achieving breakout success sounds simple when you hear the story of someone who already has it all figured out. However, finding the right way is much harder if you are starting from scratch. A startling amount of entrepreneurs never achieve their ultimate goals. According to statistics, only 50% of new businesses make it until their 10th anniversary.

To improve the odds of success, more and more entrepreneurial journeys start out with a simple MVP.

What does MVP mean?

The term was introduced as one of the core principles of the lean startup methodology.

An MVP is the initial version of your product that only has the core features that are essential to solving an existing problem for your prospective customers. Minimum Viable Products help you gather important feedback and estimate market interest from the earliest stages of your business. More complex features are only added in later iterations, based on the received user feedback and the development of market demand.

An MVP can be a simple web or mobile application, website or a single landing page.

MVP benefits

An MVP enables you to:

  • test a product hypothesis with minimal resources
  • accelerate learning in your organization
  • reduce necessary development hours
  • reach your actual market as soon as possible
  • decrease the risks of investment
  • establish your brand to users quickly

Researching and verifying the MVP idea

Verifying the business idea itself is a crucial step that absolutely must come before you rush into any kind of development project. You can significantly decrease the risk of investment by double checking if there is enough interest on the market for your solution.

Not even a company like Google could get away with selling a product that had no clear product-market fit (ehm… Google Glass).

Your new product or service has to offer a much needed solution for a need (or problem) that is being underserved by competitors or not served at all by anyone. You also have to make sure that the problem is pressing enough to justify the price of your solution in the eyes of potential customers.

A good cautionary tale here could be Juicero, Silicon Valley’s smart juicer that squeezes disposable packets of liquified fruits, vegetables, and other ingredients into cups. Even with 4 funding rounds and close to $120 million of total funding, they couldn’t justify the $400 price tag for a web-connected device the basically empties a drink from a bag. The company went bottoms up less than 4 years after its founding.

Know what it costs to deliver your product (materials, rent, salaries, etc.) and to acquire customers who will pay to use that product (CAC – customer acquisition cost). All these costs have to be included in your pricing as well. While breaking even helps you consistently pay the bills, it won’t be enough to become a top player in your industry. Be sure that your costs are still reasonable to customers even after adding your profit margin.

*Startup profit statistics image*

This initial verification usually isn’t enough to prove that your business will be sustainable on the long run. That part will be up to your actual MVP.

You can get really creative with your idea verification methods. Use every tool at your disposal to measure the buzz around your idea. Here are some examples that are accessible to everyone for little or no expense:

– Google search
– Google Trends
– Landing pages
– Explainer videos
– User testing

Start by identifying your key customer profile and creating buyer personas. This should help you visualize your ideal client base and customize your marketing messaging to better fit their specific needs. Do your best to reach out to as many people who fit this profile as you can.

How to develop your MVP?

Developing a fully functioning MVP that delivers real value to its users is a complex process that may vary depending on your industry, product type, user base and so on. For the sake of clarity, we will break the MVP development process down to the following steps:

I. Setting a hypothesis

Hypothesis-based decision making helps you avoid basing your product idea on false assumptions and prejudices.

While it might seem like a billion-dollar idea to produce a smart salt shaker with Bluetooth technology, it can’t hurt to double check first. Just to be sure.

Using this method to come up with a business idea should guarantee that it will be based on real-life demand. A good hypothesis must be:
– easily testable,
– clear and measurable,
– either clearly true or false.

The most simplified template for such a hypothesis would look something like this:

If [cause], then [effect], because [reason].

Example: If we develop an app for broadcasting nostalgic content for people born before 1970, then we can get 50,000 people to sign up for a free trial by the end of 2020, because research data shows us that 80s and 90s nostalgia is very captivating to our target audience.

Once you have gathered sufficient evidence proving that your hypothesis is true, you can start planning product development with much greater certainty.

II. Selecting technologies

You can build a minimum viable product with any modern-day programming language. However, it is crucial that you decide from the start whether or not you are planning to develop an MVP, or a full-fledged software product. If you choose the MVP route, you should go with technologies that are highly flexible and scalable.

Due to the evolving nature of an early MVP, developers need to be able to easily make changes to the source code at all times. By choosing modern and frequently updated tech in the planning stage, you can make your team’s life much easier when it comes to implementing these changes.

You should always choose the technology your team is most comfortable with. If you are open for suggestions though, here are a few pointers:

Micro-service architectures carry great benefits for MVP development. These micro-services are comprised of small modules that communicate with each other, and sometimes with the user as well. By using modular builds we are able to decompose an application into different smaller services. This makes the application easier to understand, develop, test and become more resilient to changes in the architecture itself.

Thanks to the independently functioning modules, multiple autonomous teams can work on development at the same time. This alone can help speed up the project significantly.

However, if you are developing a really minimalistic MVP with a small team, and scalability is not a top priority yet, we would rather recommend using monolithic architecture. Its main benefits are faster development and lower hardware requirements. Also, the developed application will be self-contained and independent from other computing applications. Later on, if scalability becomes important and more developers join the team, it should be separated into micro-services though.

A lot of developers would disagree with using monolithic architecture for MVP development today. It may be falling out of popularity, but we believe there are still cases where it’s the right call. Instead of selecting the most popular option, this decision should be made according to product strategy and technical requirements.

Language-wise we ourselves prefer to use Java, since that is what our team has the most experience with. We have also started using Go (or Golang) recently, thanks to its speed and ability to produce small, static binaries. These really come in handy if you are working with micro-services.

Regardless of the selected technologies, you can build a top-quality MVP if you invest the time and energy into planning your project properly. You can only make your development team’s life easier if you choose a modern and frequently updated language.

One of the most common pitfalls of this process is not having a clear vision of a specific end goal and focus on the most critical features.

III. Product feature development

Choosing these key features may sound easy enough, but is not always so straightforward. This is why you needed to do all that research first, and verify your concept before moving on to product development.

If you already have a good understanding about your market, the development process itself should look something like this:

  1. Define product requirements
  2. Plan and assign development tasks
  3. Feature development and testing
  4. Live release
  5. Product evolution (repeat 1-4)

Try to look at product development as a cycle instead of a linear process. In this example, the live release doesn’t happen when development is finished, it happens when the MVP functions on a satisfactory level. Your product still needs to evolve through future iterations. Current features will have to be tweaked or scrapped if necessary, new features might have to be added, etc. In some cases, development may continue throughout the entire product life cycle.

Have you heard about the location-based iPhone app called Burbn? It allowed its users to check in at particular locations, plan future check-ins, earn points for hanging out with friends, and post pictures of these meet-ups.

The app wasn’t doing too well after its initial release. After analyzing their users’ activity more closely, the creators found out that people were mostly using Burbn to share photos. They weren’t using the check-in features at all. The app was just too complicated, and came with a lot of features that users found unnecessary. The team finally decided to act on their data, focus on the photo-sharing feature and throw out everything else. This app is called Instagram today.

This is a good example for why it is essential to involve real users in the development process from the early stages.

Our team places a great emphasis on product evolution as well. Here is what the development cycle usually looks like for us (following previous planning):

*development cycle whiteboard*

IV. Testing

Continuous testing is one of the key principles of validated learning, which is used to mitigate the considerable risk of launching a new product. There are over 30,000 new consumer products released each year, and 95% fail, according to Harvard Business School professor Clayton Christensen.

We recommend that, apart from testing software functionality, you should also start usability testing as early as possible. This is important because even a perfectly functioning product can be misinterpreted by users due to confusing layouts, unclear documentation or faulty user interface design.

Normally, software doesn’t get released until it is complete and working just as intended. Although an MVP is intentionally released in an incomplete state, it is still expected to work flawlessly in the hands of users. It basically has to be much lighter than a complete software, but still has to seem just as stable. This requires continuous feature testing in every development phase.

The development team must include testing during and between sprints (iteration periods in continuous Agile software development cycles). Sprint length and frequency usually varies depending on client needs. For some clients we test each development task individually, others only require testing at the end of a sprint. We always use the same platform for this purpose that we use for development as well.

Minimum viable products are beneficial long-term, in part because the high user expectations result in a high-quality product that is thoroughly tested down to the smallest detail.

V. Collecting data and analyzing a hypothesis

The point of creating an MVP is to collect user feedback, analyze this data and finally act on it through future product iterations. As your prototype becomes stable enough to be put into the hands of real users, you must also have the necessary data collection channels and tools in place.

To identify your key audience and focus on their needs as accurately as possible, you will need to measure their demographic (age, gender, location, etc.) and behavioral data (device usage, interests, preferences and such).

Remember that all data collection practices on your website and applications must be done with consent from the user.

The most widely-used data collection methods are:

1. Third party data collection services already available on the market

There are a number of ready-to-use tools out there such as Google Analytics, Crazy Egg, Hotjar, Optimizely and others, which can help you collect useful behavioral data about your website and apps.

Unfortunately, these tools may have some drawbacks for clients in EU countries. GDPR regulation now limits what types of data can be collected and under what circumstances. This means that you probably won’t be able to use them to their full potential.

You can also gather useful data from the App Store or Play Store if you are planning to release a mobile app.

2. Built-in custom data collection features

With integrated monitoring features you can measure and analyze almost any element of your product at this stage. You can keep track of which software features people are using, where and when they are using them.

We usually recommend to our clients to build a reporting page where they can organize all relevant data and visualize it so it can be presented to the whole team.

Again, it is crucial to remember to disclose all information about your data collection and management practices in your privacy policy. Also make sure that your methodologies are in line with GDPR regulation for EU countries.

3. Surveys that ask users for in-depth feedback directly

E-mail and pop-up surveys are still one of the most useful ways to collect information about user satisfaction and recommendations. You can use them to get answers you can’t find by just monitoring behavior. Be careful not to annoy your users with too many such requests and ruin their user experience though.

VI. Launch

Your MVP is ready for launch when all the minimum requirements are fully developed. The product must be of satisfactory quality and without any critical usability errors by this point. You should know whether or not this is true from the results of previous testing.

Product testing and evolution doesn’t stop after the MVP phase either. It is up to your product team now to listen to your customers, find ways to deliver even more value to them and integrate the necessary changes through future development iterations.

Remember, if you get your finger off the pulse of the market, you can quickly lose touch with your customers’ needs and allow competitors to swoop in.

Keep in mind, that developing a flawlessly working app with beautiful design does not automatically make it successful. You also need a strategy to acquire and continuously grow your initial user base. This topic deserves a whole article of its own.

Be sure to remember that a half-completed app with a steadily growing user base is always more valuable than a 100% finished application that nobody uses.

Summary

Developing a successful minimum viable product requires careful planning from the early stages, and close monitoring throughout the development process.

While there can be a lot of money involved later on, getting rich fast must not be the only motivation for developing your MVP. If your new product truly helps people improve their lives, or the way they work, your chances at success are already much higher.

Be careful not to rush into development with only an idea. Do your best to back it up first through market research and concept testing.

Once you’ve decided that you want to develop an MVP version, stick to this decision throughout the development phases. Pay close attention to how your customers use the product or service, and plan each following evolution stage accordingly.

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

WebBY RabIT software engineering · March 08, 2019

There is a wide selection of cloud solutions available for businesses and individuals worldwide. Choosing the right solution may prove difficult if you aren’t familiar with frequently used cloud services such as IaaS, PaaS, SaaS and others.

This is why we are dedicating this article to clarifying the meaning, benefits, risks and common use cases for these popular cloud services.

 

What is IaaS?

Infrastructure as a service provides consumers with access to fundamental computing resources like processing, virtualization, storage and networks. IaaS solutions allow you to deploy and run arbitrary software such as operating systems and applications. The cloud service provider (CSP) controls and manages the underlying cloud infrastructure, but you have control over operating systems, storage and deployed applications.

 

Practical use and benefits of IaaS

Using IaaS solutions allows you to:

  • Avoid the high costs of buying hardware and setting up a new server infrastructure on your physical location
  • Access your files and data with higher security
  • Save several days or even weeks worth of time spent on setup and installation
  • Scale your computing resources up or down quickly, to meet your changing business needs

 

Potential risks involved with IaaS:

  • It can be more difficult to guarantee compliance with data management regulation. You must clearly establish accountability and control over sensitive information in your systems from day one.
  • Potential data loss is another risk when you choose to rely on a cloud service provider. It is essential to have a reliable disaster recovery plan in place to minimize the damage in case of an incident.
  • With the flexibility and accessibility of the cloud also comes reliance on the CSP. If your IaaS provider’s system goes down, so will yours. It is essential to check if they have a comprehensive recovery plan and policy in place before making your decision.

 

Dilbert by Scott Adams

 

IaaS Examples

Google Cloud Platform, Amazon Web Services, IBM Cloud, HP Public Cloud, Cisco Metapod, DigitalOcean, Linode, Rackspace

 

Who is IaaS for?

IaaS is a flexible solution that can be utilized by everyone who wants to manage software without having to worry about hardware. It is also a great choice for organizations that only need computing power on the short term, or for certain operations that require high capacity computing resources (e.g.: large batch processing).

 

Potential users of IaaS solutions:

  • Startups that are delivering a proof of concept, or require fast scaling within a short period of time.
  • SMBs that need a fast start and scaling without investing in too many resources in hardware.
  • IaaS is an ideal solution for Agile teams as well. It provides them with high flexibility while decreasing their reliance on corporate bureaucracy.
  • Also a viable solution for side/personal projects. Low-cost starter packages of CSPs allow anyone to set up an infrastructure quickly, without having to invest in physical systems.

 

What is PaaS?

Platform as a service provides a cloud platform allowing customers to develop, run and manage applications. As a customer, you only control the applications and data on the platform, while the cloud service provider manages operating systems, middleware, virtualization, servers, storage and networking.

 

Practical use and benefits of PaaS

Using PaaS solutions allows you to:

  • Reduce the costs involved with software development and deployment
  • Avoid the need of setting up additional server and storage space that would lie dormant once the development process is complete
  • Reduce the costs of managing software updates and maintenance
  • Achieve a faster time to market, greater speed and agility throughout the development process

 

Potential risks involved with PaaS

Same as with IaaS, you will also be susceptible to server malfunctions or compliance issues if you choose a dodgy PaaS provider. To be safe, double check accountability, control and disaster recovery principles and guidelines. Another potential issue worth mentioning is that these solutions require a very stable connection, and enough bandwidth to run smoothly at all times.

 

PaaS Examples

Heroku, Microsoft Azure, Google App Engine, AWS Elastic Beanstalk, OpenShift, Force.com, Apache Stratos

 

Who is PaaS for?

Teams that need extra computing power without wanting to worry about operating systems, server administration, and associated costs (energy, acquisition, maintenance, human resources etc.). Organizations that experience frequent spikes in computing requirements, don’t have the resources or don’t want to manage IT infrastructure internally.

 

Potential users of PaaS solutions:

  • Development teams who need a highly scalable and flexible platform to manage their applications and data during projects.
  • High-growth businesses that would likely experience a higher ROI from scaling a virtual platform, compared to developing their own physical systems.

 

What is SaaS?

Software as a Service solutions are ready-made software products built on the cloud, and made available for customer’s use on a subscription basis. You can most often run this type of software as a web application without installing anything on your local devices. Everything, including applications and data, is stored and managed on the cloud. Chances are, you have already used multiple such software products. SaaS solutions are mostly available to use for a monthly or yearly fee, and they often have a more basic free-to-use option as well.

 

Practical use and benefits of SaaS

Using SaaS solutions allows you to:

  • Integrate new software solutions into your business processes quickly, without losing time and money on installation
  • Access applications and data from any location, at any time, on multiple devices
  • Let the software provider deal with hardware and software updates, removing this responsibility and workload from yourself
  • Scale your selected application by simply upgrading your subscription as your business grows, or more users need to access the software

 

Potential risks involved with SaaS

The lowest cost among other cloud solutions comes with the highest level of reliance on the software provider. Everything, including applications and user data is managed by the CSP, which can easily lead to privacy and data security compliance issues. Also, you often have to sacrifice customization for high accessibility, if you decide to use a ready-made solution. This can result in you subscribing to a software product that doesn’t serve your business as well as an in-house solution could.

 

SaaS Examples

Office 365, Semrush, Asana, Salesforce, Planning Pod, Dropbox

 

Who are SaaS solutions for?

Depending on their specific needs, anyone can benefit from the right SaaS. There is a wide range of applications available out there that provide solutions for businesses and individuals alike. SaaS are ideal for organizations that don’t want to invest into building their own in-house software solutions. They are also handy for individuals or freelancers who don’t have access to as many resources as enterprises.

 

IaaS, PaaS, SaaS – A Simple Comparison

Your choice of cloud services should coincide with your organizational needs and overall business plan. The core benefit of using any cloud solutions is the ability to digitize and scale your business in a much more time- and cost-efficient manner.

 

iaas paas saas comparison infographic

IaaS vs PaaS vs SaaS

 

Read more about why you absolutely should digitize your business processes here:
7 Reasons Why You Need to Start Business Digitization Right Now

 

When should you run your server internally (on-premises)?

Having your servers set up internally can also carry significant benefits for your organization.

Most notably, you can guarantee a higher level of security and resilience compared to having external storage. Holding internal systems behind firewalls and backed up as part of a standard set of security procedures makes your data inherently more secure against external attacks.

Also, without using outsourced suppliers, you can guarantee GDPR compliance with much less difficulty.

Consider internal, external and even hybrid hosting options in accordance with your unique organizational needs. It is generally advised to host your software and data internally if you only use it internally. If you have to share your data with external parties (partners, customers, etc.), it’s typically best to host it externally.

Choose the hybrid option if you need to use data in-house and with outside parties as well. The latter is the case for most organizations today. Hybrid hosting guarantees them the optimal combination of security and collaboration.

 

Summary

Today’s IaaS, PaaS, SaaS solutions (and their different combinations) help you digitize and scale your operations faster than ever before. This also means that things can take a downturn just as fast.

Taking your business to the cloud requires careful planning, research and coordination. It is important to be familiar with CSP policies and procedures in  order to make use of their benefits and minimize potential risks.

We hope that this article managed to help you see the world of cloud services more clearly. Happy cloud diving!

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

SoftwareBY RabIT software engineering · January 29, 2019

Mobile technology is still heavily on the rise. According to Statista, there are 4.57 billion mobile users in the world in 2018. This number is expected to reach 4.68 billion in 2019. Most of the world’s population can be reached through mobile applications.

Choosing the right technologies is one of the most crucial decisions you have to make when entering the mobile app market. There are new solutions appearing constantly which make this decision more difficult.

This is why we decided to focus this article on helping you find out which platforms, frameworks and languages will work the best for your business in 2019.

 

If you are still on the fence about building digital solutions for your business, I recommend you read one of our earlier articles:

7 Reasons Why You Need to Start Business Digitization Right Now

 

When choosing your tech stack, first you have to consider your overall business strategy. Do you want to reach potential users on the Android or iOS platform? Perhaps you want to reach both with a single application. Once you have this figured out, you have to decide whether to build a native, hybrid or progressive web application.

 

Here is a quick breakdown to help you choose the mobile technology that fits your business the most:

 

Native Apps

Native applications are developed specifically for a single mobile platform. Today, the only relevant platforms to choose from are Android and iOS. Depending on which one you choose to focus on, you will need to compile your tech stack accordingly.

 

Android – Java and Kotlin

Most Android applications are built using Java. After all, it is still the most widely used language on the planet. The classic way of writing native Android apps is to use Java and the Android SDK.

Java’s popularity for Android is mainly a result of its rich set of core features, redundancy, high security, speed and scalability. However, since mid-2017, there seems to be a trend that shows Kotlin finally replacing Java as the go-to language for Android app development.

Since Google endorsed Kotlin as an official language for building Android apps last year, it has been rapidly gaining in popularity. According to GitHub, Kotlin is the fastest growing language in 2018. Its number of contributors has more than doubled since last year.

 

mobile technology

Source: octoverse.github.com

 

Kotlin is wildly popular mainly because it makes coding much more concise, and is 100% interoperable with Java and Android. Writing code in Kotlin requires approximately 40% less lines of code compared to Java.

The language is big, complex and new, so it might take time for people to learn. Although, it is reportedly much easier for developers who already know Java, and there is also a rapidly growing support community today. You definitely won’t have any trouble finding Kotlin experts in the years to come.

 

iOS – Objective-C and Swift

Objective-C is a superset of the C programming language, and is utilized by a high number of mobile developers building apps for OS X and iOS. It is a very mature and tested mobile technology that survived many generations of developers since its first release in the early 1980s.

Thanks to its stability and maturity, Objective-C manages to stay relevant today. There are a lot of well-documented third party frameworks out there, and very strong community support. It is also highly compatible with C and C++ programming languages.

There was obviously room for innovation, though. In 2014, Apple released Swift to provide new developers with an alternative that is easier to learn and to understand. The code length in Swift is significantly reduced, which makes development with it much faster compared to its older counterpart.

Apps developed in Swift are also considered to be safer and less prone to bugs and crashes than the ones developed in Objective-C. While Objective-C is still in the lead when it comes to community support and documentation, Swift is rapidly gaining in popularity.

Stack Overflow conducts a survey with its developer community each year. This is how the popularity of Objective-C and Swift changed with the community over the past 5 years:

 

mobile technology

Source: https://insights.stackoverflow.com

 

We can see that the number of Objective-C developers started to stagnate after 2016 with only a minor increase this year compared to 2017. On the other hand, it is expected that the Swift community will continue to grow rapidly over the coming years.

Here is how native mobile technologies cluster together according to over 100,000 developers surveyed by Stack Overflow this year:

 

mobile technology

Source: https://insights.stackoverflow.com/survey/2018/

 

Advantages of Native Apps

  • Native apps are faster and more responsive than hybrid apps
  • They can run offline depending on functionality
  • Developers can better utilize device functionality like camera, microphone, swipe gestures, etc.
  • They are more interactive and run much smoother, creating a better overall user experience

Some Disadvantages

  • More expensive and slower development compared to hybrid apps
  • Harder to scale and maintain on each platform separately

 

Hybrid Apps

We are talking about a hybrid app, when it includes both native and web elements. Creating a hybrid application is similar as building a web app. They are built using web technologies like HTML, CSS and JavaScript.

More and more people are choosing to build hybrid mobile apps over native ones. The growing demand resulted in the evolution of a number of hybrid frameworks like Ionic, Cordova, Xamarin or React Native.

The Ionic framework and Cordova both use HTML, CSS and JavaScript. Ionic builds on top of Cordova. This mobile technology basically provides a set of front-end components that allow you to write HTML5 apps that look like native apps. Ionic also allows for up to 98% code reuse. These technologies already have a large community following.

Xamarin uses C# and .NET. Xamarin.Android and Xamarin.iOS are used for providing platform-specific behaviour, while Xamarin.Forms is responsible for code sharing. It allows for the reuse of 96% of the written code. Xamarin also has a large community following.

React Native uses JavaScript and React.JS, and has a rapidly growing community. React Native heavily builds on JavaScript, and is backed by Facebook. A huge benefit is that it allows for writing modules in Objective-C, Swift or Java languages if needed. Up to 70% of React Native code is reusable, which helps speed up development for multiple platforms.

React is a great choice if your app needs to handle heavy operations like image editing or video processing. High accessibility and its ability to build high-performance UI solutions fast helped it become the most sought-after hybrid mobile technology of 2018.

 

mobile technology

Source: Google Trends

 

Advantages of Hybrid Apps

  • More cost-efficient than native app development
  • Shorter time-to-market
  • Most of the code is reusable for multiple platforms (write once, use anywhere)
  • Because there is only one code base, it is much easier to scale and maintain a hybrid app

Some Disadvantages

  • Hybrid apps can have stability issues across different devices
  • Inconsistent performance on different platforms, which can negatively impact user experience

 

Progressive Web Apps

Progressive web apps (or PWA) are the perfect cross between native mobile apps and websites. PWAs are web applications that load like websites, but can offer functionalities traditionally available only to native apps. They can be loaded with the push of a button from the user’s mobile home page, without having to go through the whole app installation process beforehand.

Service workers are used to provide the best of both web and mobile native worlds. These service workers lie between the network and device to supply the content. Among many other properties, they are capable of utilizing cache mechanisms efficiently. This allows PWAs to work in offline mode as well.

This relatively new mobile technology allows you to provide a swift and smooth mobile native experience to your customers without intrusive app installation pop-ups. Your team can build them using a basic web stack (JavaScript, HTML & CSS).

World-leading companies from all industries are reportedly already experiencing higher web traffic, customer engagement, and conversion rates thanks to PWAs.

 

mobile technology

Source: https://www.pwastats.com/

 

Advantages of Progressive Web Apps

  • PWAs provide a smooth experience at high performance, without relying on web connectivity.
  • They are also able to deliver real-time updates and push notifications, which was a feature reserved only for native apps in the past
  • They use 10-1000x less storage space compared to native apps
  • Fast and cost-efficient development

Some Disadvantages

  • PWAs don’t have access to all mobile hardware functions such as fingerprint scanning, advanced camera controls, Bluethooth, etc.
  • Running robust web apps on a smartphone uses up battery charge fast

 

Final Summary

Thanks to the popularity of mobile platforms, today there is a mobile technology for everyone.

It is up to you to assess the needs of your organization and make your choice according to your strategic vision and goals. If done correctly, your new mobile application can become as important of an asset to your business as a brick-and-mortar store.

We hope this article helped you figure out which technologies will be the best fit for your business.

 

If you need additional information to help you select your ideal mobile technology, feel free to ask your questions through our website, or ask for a free consultation.

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

MarketingBY RabIT software engineering · November 30, 2018

The World Robotics Olympiad International 2018 Final was successfully organized in Chiang Mai, Thailand on 16-18 November with 8 Hungarian teams and 8 Hungarian referees. The Hungarian Delegation had more than 60 members including teammates, team leaders, referees, parents, supporters and representatives from the next International Final’s organizers: Edutus University, Mayor’s Office of the City of Győr, Széchenyi István University and the Hungarian Government.

 

26.280 teams from more than 70 countries participated in World Robot Olympiad Association’s global competition in robotics this year. In the International Final 482 teams compared their knowledge from 63 different countries. The Hungarian teams ran in the following categories: Regular, Open, Advanced Robotics Challenge, Football and WeDo.

The HT RoboTeam kids: Máté Sándor (age 9) and Péter Sándor (age 10) ran in the Regular category where they had to complete 4 rounds in a track with their self-built and self-programmed robot. They reached as many as 232 points out of the maximum 240 points thanks to their last perfect round.

 

“We are really proud of them because they completed their target, a flawless run.” – said Viktor Sándor, HT RoboTeam coach.

Because of their performance, they were awarded a special prize by the judges. In the WeDo category, a pilot race was organized, so the results were not ranked. Instead, the best performing teams all received special prizes.

Here is a video of their final perfect run:

 

In the closing ceremony, representatives of Thailand handed the WRO flag (representing the hosting of the next Final) to the representatives of Hungary: Szilveszter Bus (Hungarian Ambassador of Bangkok), Dr. Lajos Csörgits (Vice Notary of the City of Győr) and Zoltán Szögi (National Organizer, CEO at Edutus). The ambassador held a speech to the participants and we could watch the WOW’s image films about Hungary and Győr, since the next International Final will be held in Hungary in 2019.

Members of the HT RoboTeam say they gained a lot of nice experiences and made many friends with other teams from abroad. As one of the team’s sponsors, the RabIT software engineering team congratulates the boys and the whole team for their outstanding performance.

Special thanks to the team coaches: Ágnes Borsi, Katalin Bártfai and Viktor Sándor for their invaluable work in nurturing young talent and providing the opportunity for Hungarian kids to start mastering fields in STEM sciences from a very young age. We will be following and can’t wait to cheer for them at next year’s WRO Finals.

 

 

 

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

IT ProcessBY RabIT software engineering · November 27, 2018

Companies invest a considerable amount in projects to upgrade systems, to develop new applications, or to roll out strategic initiatives. However, sometimes the development teams dedicated to these projects fail to deliver the desired results, especially if it is an offshore development team.

There are a ton of reasons why a project suffers, including poor planning and execution, and lack of coordination. You can avoid the failure of a project by hiring a competent project manager. He or she will enable you to reap the promised benefits of the project.

 

What is the role of a project manager in dedicated teams?

If you have hired an offshore development team, successful collaboration between it and your onshore team is crucial for achieving success in projects. For that, you need proper planning, clearly defined goals, and effective communication. The project managers make sure that all the requirements are met. They have the skillset to plan, organize, execute, and bring the project to a close.

 

project manager
Photo by Startup Stock Photos from Pexels

 

The project managers also play a vital role in improving the performance of the team. They make sure that everyone understands their roles and responsibilities, and the goals of the project. Not only that, but they also regularly monitor and assess the team’s project performance.

There is no one right project management methodology for all projects. Plenty of options are there to pick from, and the project manager selects the approach based on the project’s requirements and scope so that it does not fail to deliver the expected benefits. And, as the onus of the project’s success is on the project manager, you are free to focus on other aspects of your business.

Let’s take a look at how a project manager ensures that the projects are completed on time and on budget. They:

  • Create a clear vision.
  • Provide a framework for the project-related tasks.
  • Identify resources needed to achieve project goals.
  • Set milestones, gauges progress, and ensures they are achieved.
  • Coordinate activities between different team members — offshore team and onshore team; and mediate if there is a conflict.
  • Motivate team members.
  • Identify potential risks that are present throughout the project’s lifetime, assess them, and proactively respond.
  • Keep work on the track.
project manager
Photo by Pixabay from Pexels

 

Project Management Tips for Startups

As the business environment is changing fast and there is high uncertainty, a startup can no longer take its time to complete a project. But it has limited resources, and its employees handle more than one responsibility. So, how does it defy the odds and become a successful organization? Project management can make a big difference and help startups to manage projects effectively.

Here are some suggestions for selecting tools and methodologies.

Project Management Methodology: For startups, an adaptive project framework can be the best approach as it continuously adapts to the changing circumstances of the project. It allows you to change the project’s scope. Moreover, as the project progresses in iterative stages, the team can evaluate the previous performance at the end of every stage. Based on the evaluation, the team can improve their performance.

Voice Communication Tools: Startups rely on excellent teamwork, and for that effective communication is essential. With voice communication platforms such as Skype and Google Hangouts, which offer audio and video group calls, team members can easily plan, communicate and work as a cohesive group.

Chat & Messaging Apps: Slack, Microsoft Teams and Facebook Workplace, the group chat tools, enable startup teams to collaborate successfully. Whatsapp, the cross-platform messaging and VoIP service, also lets the team members to plan, organize, and share work updates.

Task management: Leveraging task management software such as Asana, JIRA, and Confluence, the startup’s team members can manage, organize, and track the progress of project-related tasks.

At RabIT, our project coordinators handle communication and administrative tasks between development team members and our clients. Our lead engineering manager is also involved in each project to provide constant technical support. Since we primarily work on project basis, it is extremely important to us to constantly optimize and improve these processes, and we are happy to share them with others as well.

If you have any more questions about your own project or regarding project management best practices, feel free to ask them via email at info@rabit.hu or through our company website.

 

More useful Agile project management advice and resources:

Overcoming Communication and Cultural Challenges

Overcoming Challenges During the Work Process

Overcoming Challenges with Day-to-Day Operations

Overcoming Challenges from a Lack of Experience

 

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

SoftwareBY RabIT software engineering · October 31, 2018

Code review is a process by which developers review each other’s source code. Peer code review not only makes a better code but also makes better teams.

The two roles present in a peer code review are –

  • The author: A person who is responsible for developing the code being reviewed.
  • The reviewer: He is the person who is responsible for examining the code.

 

Commonly used forms of peer code review

 

Over-the-shoulder code review

In this type of review, the author writes a code and calls the reviewer over to have a look at it.

Benefits

  • Easy to implement
  • Fast to finish

 

Email pass-around reviews

Most open-source projects prefer this form of code review. Here, the author emails complete files to reviewers. Reviewers then examine the files and suggest changes.

Benefits

  • Works with remote software developers
  • Easy to implement
  • Easy to involve other people
  • Doesn’t disturb reviewers
peer code review
Photo by Pixabay from Pexels

 

Pair-programming (review)

In this form of code review, two developers write code together at the same workstation.

Benefits

  • Effective at promoting knowledge-transfer and spotting bugs.
  • The reviewer is very close to the code and can provide a detailed review.
    peer code review
    Photo by Christina Morillo from Pexels

 

Tool-assisted code review

Reviewers and authors use specialized tools designed for code review. The tools are used in all aspects of the peer code review: collecting metrics, transmitting and displaying files, commentary, collecting files etc.

Benefits

  • Automated file gathering
  • Workflow enforcement
  • Automated metrics collection

 

Why do you need to devote time for code reviews?

peer code review
Photo by rawpixel on Unsplash


Higher Code Quality

While QA testing is absolutely essential to improve the performance of your final product, code reviews are just as important. Code reviews guarantee a higher quality source code. Not only do they improve software performance, they also allow you to expand your product and add new features much more easily in the future.

Higher code quality also leads to less time spent in handling technical debt and resolving errors. Technical debt, also known as code debt, is the expense a software company pays out due to poor development processes within its existing codebase. These debts should be resolved as quickly as possible.

Codacy conducted research and found that software developers spend about 26% of their time working on technical debt and on fixing bugs. According to the same research, code reviews have the greatest impact on the quality of the code, followed by coding style and standards and testing.

Reduced Costs

The earlier a bug is spotted the less it will cost to resolve it. Discovering and resolving errors at the early stage of development is relatively less costly as compared to the expensive process of bug fixing happening at the advanced stages of software development. An external reviewer can quickly and easily spot mistakes made by software developers.

Improved development processes

In addition to fixing bugs and improving software quality, code review improves your software development processes and the team as a whole.

Training new, less experienced developers

Code review helps development teams train new developers and familiarize co-workers with other modules. The process of code review encourages the sharing of ideas across the team and provides an opportunity for new developers to acquire skills and improve their code’s performance. These younger developers also get an opportunity to sharpen their skills and become experts in their field. The reviewers also get to learn new ideas and techniques from the code they are reviewing.

Better Estimates

Code review helps in sharing of knowledge between the reviewer and the author. The reviewer is quite familiar with the known issues in the code base and the complexity of the project. Therefore, the development team members get to know the product in detail and the software developers learn to make better estimates of the future work from the reviewer.

Consistent Coding Style

Code review enforces a consistent coding style throughout a software project. This makes the code readable by developers who might have joined the project at any given time during software development.

If you feel like there is room for improvement when it comes to the quality of your source code and coding practices, don’t hesitate to reach out to us through our website, or at info@rabit.hu. You can also ask all your questions in a free consultation.

If you would like to learn and grow together with our community, don’t forget to join our group on Facebook.

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

Dedicated TeamBY RabIT software engineering · October 10, 2018

With the rapid development of communication and project management technologies, the popularity of remote business cooperation is also on the rise throughout the globe. Today, you can outsource business processes easier than ever before. Be it offshoring or nearshoring you are after, there is a plethora of new tools and platforms that you use to set up a working partnership within just days. This can work really well for more simple business processes like copywriting or graphic design projects. However, when it comes to complex work processes, there is a need for deeper involvement from both parties. This is where outsharing comes in.

Outsharing stresses on working partnerships and encourages collaboration. An outsharing partner thoroughly examines your business case, reads beyond the specification lines and suggests optimization solutions. They focus on value whether it’s designing and creating new functionality, optimizing the processes, or improving the user experience.

Over the past few years, outsharing has been gaining in popularity. Many companies consider outsharing to be the next level of outsourcing software development. It is believed that in the coming years outsharing will replace outsourcing.

outsharing
Photo by Pixabay from pexels.com

 

Reasons for outsourcing

Outsourcing can provide solutions to software companies and businesses anywhere in the world. Depending on where you live, you can save about 70% on hourly rates by outsourcing software development to development shops or freelancers. When you outsource your work, you don’t need to go through long and costly hiring processes.

You only need to look out for the quality of the companies’ previous work. You get access to talented and skilled labor at a low cost during outsourcing. That’s why businesses and companies consider outsourcing development in the first place.

Outsourcing partners hire talented people in their team who know how to manage different business situations. They understand how a company’s goal can be attained. External service providers are fully aware of the latest technology of the industry and are capable of providing their clients with the best services at a much faster rate.

Most importantly, outsourcing allows you to focus on the core of your business processes or invest in research or marketing.

Risks associated with outsourcing

No doubt, there are numerous benefits of outsourcing internal business processes to professional outsourcing companies. However, it has its own set of flaws. There are many risks associated with outsourcing, such as potential cybersecurity attacks, poor communication, lack of cross-cultural awareness, misuse of sensitive corporate information, insufficient product quality, and management difficulties due to a lack of centralization.

Most businesses fear a lack of direction and authority when an outsourcing company is doing their work. Company personnel loses control over their own process and technologies when certain services are outsourced. The consequences can be fatal or serious. Contractual disputes can occur or the quality may suffer.

Many outsourcing companies do not bother to understand their client’s product vision and strategies. Their involvement in the product development is limited to delivering the code that matches the list of specifications. Many of these clients don’t get the product they envisioned and the quality they deserve.

Keep in mind that it is very important to choose the right outsourcing partner. Engaging with the wrong outside service provider could cost your business in terms of performance, productivity, employee morale, and financial outlay.

Read more about the most common reasons why outsourced software projects fail.

outsharing
Photo by rawpixel.com from pexels.com

 

What exactly is outsharing and is it better than outsourcing?

Outsharing means having an equal remote partner, who is completely involved in realizing the client’s product vision and helping them reach their strategic goals. Outsharing partners not only deliver code but also function as a remote Chief Technology Officer.

They offer well-reasoned and valid opinions about your product roadmap and enlighten you on how to reach your goals and objectives in the most effective manner. Outsharing partners will also tell you about new technologies that are worth adopting for your company. They also have the soft skills to build strong relationships with their clients.

Outsharing partners need to share the same product vision, and truly understand each other’s organization. Both parties need to invest time and effort and communicate openly. Keep in mind that open communication is essential to remote business success. You should encourage your outsourcing partners to share their concerns and ideas, both negative and positive. This will give them the sense that they are valued. Ineffective communication, on the other hand, can easily lead to project failure.

Outsharing is necessary to develop and create complex technology solutions and products that make life better and easier. It is for companies that want constructive expert input and deeper involvement from their outsourcing partner.

To sum it up

If you have concerns about the risks that are associated with traditional outsourcing, outsharing could be your solution. Think about your outside IT service provider more like a strategic business partner. By gaining full access to their unique perspective and technological expertise, you can gain even more value than you would from an in-house IT department. The principles of outsharing help you gain more and more value over the long term instead of focusing on the completion of single projects.

If any of this sounds appealing to you, we would love to talk more about the topic. Visit our website and feel free to drop us an email with your questions. Thank you for reading!

 

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

WebBY RabIT software engineering · September 18, 2018

Usability testing involves observing and recording the behavior of test subjects who are assigned to complete a set of tasks on your app, website, or other software product. The testing helps you to know whether your site works and how to improve it.

There are some elements involved in the usability testing process. These are:

Participant: The participant will perform the activities for which you want to test your software.
Usability tester:  The job of the usability tester is to explain the participants their role and the tasks they have to complete during the test, and pay them when they finish their task.
Shared screen:  Screen sharing software can make the test much more effective. You can easily include the product team into the usability test without stressing the participant. Further, executives will get to know how users see the product or company website.
Recording software: With recording software, you can record the test and analyze it later. It allows the usability tester to focus more on the testing process.
Pre-written usability testing script: It helps you walk the participants through the test smoothly.

Make the usability test process as time- and cost-efficient as you can by planning each step of the process in detail. Keep in mind that a detailed script will help the tester to effectively explain the tasks and process to the participant. Most importantly, users should know that they are not being tested, you are testing the software.

The usability tester should not influence the user’s actions in any way. They have to solve their problems and find the solutions on their own. The main work of the usability tester is to provide information about the tasks and the usability testing process. He or she should encourage the participants to actively share their opinions and thoughts. Participants need to be vocal about their thoughts.

Know that the participants may feel frustrated when they are not able to find the solutions right away. When the users reach a level of frustration where they want to leave your website and search elsewhere for solutions, your site fails the test.

Have a meeting with the responsible team after the usability test. Based on the results of the usability test, choose the top three problems that need to be addressed. You need to resolve these issues this month and after one month, repeat the complete process.

usability testing
Photo by pixabay.com from Pexels

 

Is there a difference between usability testing and user testing?

Sometimes, usability testing is confused with user testing. Usability testing and user testing are two different approaches to reaching different goals. User testing involves interviewing your target audience to determine market demand for your service or product.

Usability testing is also different from focus group testing. In focus group testing, you learn about the experiences and opinions of a group of users regarding your website or product.

Usability testing, on the other hand, is more about seeing if users can understand or use your website or product with common sense. You can choose anyone to be a test subject who views your website with a fresh eye and provide useful information about ease of use. Beginning usability testing with your family members and friends is a good way to get a new and fresh perspective.

Tools for Usability Testing

Usability testing tools are essential to the success of your website. Here are some tools that can help you conduct usability tests.

Optimizely

This A/B testing platform allows users to track visits as well as conversions. Optimizely offers many features such as visitor segmentation, mobile website testing, multivariate testing, and cross-browser testing. The basic plan is free of cost. However, if you want some extra features, you need to pay for them.

usability testing
Photo from optimizely.com

 

Crazy Egg

You can use the tool for 30 days as a free trial, and after that, you have to pay $9 per month. Crazy Egg offers a number of features such as heatmap, scrollmap, confetti, and overlay.

The Heatmap allows you to see where each visitor has clicked on your website. With Scrollmap, you will get to know how far down on the web page a user has scrolled. The Confetti gives you valuable insights regarding visitor sources, search terms etc. The Overlay helps you to know the number of clicks each element on your web page is getting.

usability testing
Photo from crazyegg.com

 

Five Second Test

UsabilityHub operates this tool. Five Second Test captures a visitor’s first impression of the site. You can run a test in seconds. The process is easy and includes

1. Uploading a mock-up of the web page or uploading a screenshot with a question about the design or functionality included.

2. Five seconds are given to testers to view the web page. After that, they are required to answer the question given.

3. The responses of the testers are then compared.

The paid plans cost about $20 per month.

usability testing
Photo from fivesecondtest.com

 

It is never too early to start usability testing in a software project. Be it your new website, blog, mobile app, or custom software, it is always recommended to collect first-hand information about the way the end user sees your platforms as soon as possible.

Other ways to collect early user feedback for your product: Which Type of MVP is Right For Your Business

 

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

WebBY RabIT software engineering · September 11, 2018

Minimum Viable Products (MVPs) help you gather important feedback and estimate market interest. The MVP is the initial version of your product that only has the core features that are essential to solving an existing problem for your prospective customers. This first version needs very little investment of resources into product development. MVPs can be immensely useful if you want to validate your product on the market as early as possible.

A few weeks ago, we talked about ways to validate your business idea, and why it is important to do so.

This model has contributed to the development of various tools and methods that can function as MVPs. Examining the pros and cons of each solution for your business will help you select the right type of MVP.

MVP
Photo by rawpixel.com from Pexels

 

Landing Page

A landing page can help you acquire early followers, tell people about your product idea and even collect revenue for future product development. You can tell about your project in detail, present its advantages and ask people to support your project. If they like your product idea, they might become your first subscribers.

You can also get users’ feedback with the help of a landing page. This will help you to know your target audience and their opinion. You may also get suggestions that will help you make your product better.

Pros

  • Can be set up cheaply and quickly
  • Can easily be matched with online ads
  • Can be tested and optimized easily

Cons

  • The conversion rate is low (about 1-3% of people sign up)
  • Hard to fit all vital information into one page
  • Cheap looking landing pages can hurt your brand

 

Explainer Video

Explainer videos explain what your product does, and why people should purchase it. It is a good option for making a presentation about your service or product to users without even creating it.

Pros

  • Explains your product in a simple and easy way
  • People are more interested in watching a short video than reading
  • You can share the video on social media
  • Good for branding

Cons

  • You may have to spend a lot of money to make an explainer video
  • You need to devote a significant amount of time to get the message right
  • You may find difficulty in explaining a complex product or service in a few minutes

 

Concierge MVP

With a concierge MVP, you will have to perform each and every function of your service or product manually. To resolve the problems of each customer, you will have to work with them directly. By completing each step of customer orders yourself and collecting direct feedback, you can determine how your end product should look like.

Pros

  • You do not have to spend time and money on development
  • You can communicate face-to-face with real customers
  • You can collect information with the help of a few subscribers

Cons

  • You have to spend a lot of time and effort to manually finish the service
  • Good salesmanship is required to persuade people to try your new solution
  • This only helps optimize the core service, UI/UX optimization comes later

 

Wizard of Oz MVP

Wizard of Oz MVP creates an illusion of a fully functional product, but secretly depends on manpower to deliver the solution. On the front end, you deliver the impression of a completely functional product; however, on the back end of the product, you have to execute all orders manually.

With this approach, you can quickly create effective prototypes. You can also test the market response to your service or product without really creating anything.

Pros

  • You can set it up cheaply and quickly
  • You can use online advertising and social media to generate interest

Cons

  • You have to spend a lot of time and effort to manually finish the service
  • People can feel cheated if they come to know that there is no real product

 

Piecemeal MVP

With a piecemeal MVP, you can deliver the new service or product by using already existing solutions. The utility of existing products is combined to deliver additional value to the initial customers.

Pros

  • You don’t have to invest much money
  • You need not spend time on MVP development

Cons

  • You may find difficulty in coordinating many products
  • You may have to spend money on subscription fees

 

Single-Feature MVP

To create this type of product, you need to determine what should be the core functionality. Understand that while you are creating a single-feature product, that one feature has to work extremely well.

Pros

  • Focused on solving one specific problem for a specific audience
  • You can get your product to market fast with relatively low costs
  • You can expand it later without much difficulty

Cons

  • You have to invest some money into development
  • You may struggle to determine which feature you should focus on

 

Choose the solution that best fits your available resources (personnel, money, time). Take into account the requirements and characteristics of delivering your solution, and select the type of MVP that suits them the most.

The minimalist nature of your initial offering should not bother you. Don’t rush into launching a polished product that nobody wants.

 

If you need help planning and launching your MVP, feel free to tell us something about your project at info@rabit.hu, or sign up for a free consultation. We can help you test your concept and turn it into a profitable software product fast. In a few weeks, you can already launch the initial product version on the market and start collecting valuable customer feedback.

software development consultation

RabIT software engineering

RabIT is a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.