Documents in Software Development Outsourcing You Absolutely Have to Know About#Dedicated teams
So, you decided to outsource software development. Congrats! But how can you make sure your product is protected? And how do you establish the terms of the partnership? The short answer is with the help of documents like NDA, MSA, SOW, and DPA. Taking your time to prepare these documents will help you establish the required terms, specify the responsibilities, the rights, and other collaboration terms.
Key Documents in Software Development Outsourcing
Let’s take a look at the basic documents for software development outsourcing. We will also define the key terms that can often be confusing or misleading. This will help you arrange a business relationship that is safe for both parties.
Non-Disclosure Agreement (NDA)
One of the primary documents at the initial stage is a Non-Disclosure Agreement or NDA. This agreement is signed if two companies (or a company and an individual) are going to exchange sensitive information. An NDA is signed to protect this information from being disclosed.
An NDA should contain the following:
- A clear definition of confidential information. All materials have to be determined as confidential or non-confidential. Information like processes and procedures, development strategies, passwords, customer databases, architecture, prototypes, source code are usually confidential.
- Confidentiality term. Make sure to determine the time frame for keeping information confidential. The period has to be long enough to keep your business safe but not too long not to scare away the other party. The confidentiality term usually varies from one to three years in the software development and outsourcing business.
- The disclosures/representatives clause. You should explicitly state with whom the confidential information can be shared. Are these people employees, business partners, freelancers? Don’t forget to include them in the NDA.
- The use of confidential information. It’s important to indicate how sensitive information can be used.
- Legal obligations to disclose. Any NDA is written to protect information disclosure. However, sometimes, it is required for legal proceedings or, in other cases, determined by the valid legislation.
- The return or destruction of confidential information. This section determines what each party should do with sensitive information after the collaboration is over. Consider all information bearers: USB storage devices, CDs, copies, hard drives, servers, and so on.
- The remedies clause. It indicates how a party that breaches the NDA should compensate for the disclosure of sensitive information.
Master Service Agreement (MSA)
A Master Service Agreement is signed if a company is going to work with a client repeatedly. This agreement allows to reduce legal expenses and facilitate the provision of services. Make sure to include the following clauses:
- Provision of services. The order of providing services.
- Acceptance and payment for services. The fees, taxes, timesheets, and other things related to the procedure or services acceptance and payments.
- Term and termination. The time frame during which the MSA is valid and the conditions when it can be terminated.
- Intellectual property rights and ownership: What intellectual property is and how it can be managed.
- Confidentiality. What confidential information is and how to handle it.
- Liability, warranties, representations. Party warranties, liability field, and representations (persons involved in the project: employees, partners who will be participating, etc.).
- Indemnification. The parties agree on how they are going to indemnify any harm if caused to each other.
- Notices. How the MSA will be delivered and which delivery notifications you are going to receive.
- Miscellaneous. Disputes and their resolution, data protection, governing law, benefit, assignment, amendments (indicate that there should be no amendments or modifications without being signed by the mentioned party), the severability clause (if any provision of the agreement is unenforceable, it doesn’t cancel the enforceability of other provisions of the agreement).
Statement of Work (SOW)
A Statement of Work is one of the most crucial documents in the software development business. This is where parties identify the details connected with the project, describe project stages, the features, acceptance criteria, risks, and so on.
In the SOW, you should provide a CI/CD pipeline diagram, the schedule of development procedures (visits, communication within the project, approval, objection, reporting procedures and order, deploying, and closing the project). A Statement of Work should additionally include details like the list of devices, screen resolutions, browsers, and their versions used for testing purposes.
In a special attachment to the Statement of Work, you can indicate information related to payment and payment models. Here, mention whether it is a fixed-price project or the company will pay for the time and materials applied. It’s also important to indicate the force majeure conditions, major risks, and their influence on the implementation of the current task or scope (not the entire project).
DPA (Data Processing/Confidentiality Agreement)
DPA, or Data Processing Agreement, is intended to regulate data processing by the parties as well as the relationship between the parties. It is an agreement between the data controller and the data processor. In the case of outsourcing, the contractor is the data processor, and the client is the data controller.
During software development, the vendor has access to the databases with customer data, processes, and stores it. That’s why it’s essential to agree on how this data is going to be stored, processed, protected.
Many companies ignore this document, but this is not our case. At Relevant Software, we have developed our own Data Processing Agreement template according to GDPR.
Details to Pay Attention to When Signing a Contract
The final and most crucial negotiation stage is the signing of the MSA and the SOW. These documents finalize the things that haven’t been settled for now. Let’s take a look at the typical contracts signed by vendors and the details you should pay attention to.
This kind of contract is the best option for smaller projects. With it, the requirements are strictly defined. Fixed-price contracts work perfectly when the client needs to develop a solution but doesn’t have the capacity or in-house resources. The vendor guarantees to deliver a particular solution based on the client’s expectations within a set budget and is entirely responsible for the project results.
This contract type is not flexible, so it’s not frequently signed when it comes to software development. But if you are going to sign this kind of contract, determine every project detail. Make sure you agree on the pricing, the deadlines, the budget, and everything else that might be important.
The Dedicated Development Team Model
This is an optimal solution for a long-term project where the client hires a team of developers, pays a monthly fee, and manages the team.
Being an extensively flexible model, it allows adapting to changes rapidly. And based on our experience, we can assure you that the dedicated development team contract is the most efficient for software development projects.
The Time and Materials Model (T&M)
The time and materials contract requires payment based on an hourly rate. This contract is signed when the client needs a specialist to work on a project for a particular time. This contract type guarantees the transparency and the cost-efficiency of any project.
Clauses of Outsourcing Contracts You Can’t Ignore
Payment is a critical notion that has to be discussed at the very start of the negotiation. You have to be very clear about how much, when, and in what way the billing and the payments are processed. If a retainer is needed, it should also be indicated in the agreement.
In many cases, if a payment isn’t made on time, the vendor might stop providing services. It is inconvenient for both parties and can be avoided if all the details are defined clearly.
Liability & Warranties
Liability clauses are of particular importance in any IT outsourcing contract because they determine the extent to which both parties bear the responsibility. Make sure you check the liability cap: with it, parties mutually limit the liability of each other to some extent.
The liability cap helps to manage risks and control the financial exposure of a business.
The warranty clause is usually provided in a fixed-price contract. Within this clause, the vendor guarantees that products will be delivered within the deadline, and based on the client’s requirements.
A notice period is the time frame given to make changes in the development team. Notice periods influence the project’s smoothness and the quality of its implementation.
There are two main kinds of notices:
- The first one is connected with scaling the development team up and down. In this case, the notice period might vary from one to three months.
- The second one is connected with the termination of the contract. This notice is crucial for a vendor to organize all the processes efficiently. Usually, it varies from one to five months for shorter contracts and from six to 12 months for longer contracts.
Confidentiality and Data Protection
In the contract, you should determine the data protection matters within the enterprise. Software outsourcing companies usually have high standards for the protection of sensitive data. Security control and policies have to be established and followed. The company should perform regular audits to make sure that all the procedures comply with the accepted standards.
Intellectual Property Rights
The contract should clearly state that the client is the owner of all the intellectual property that has been created during the project. If the payment has been delayed or wasn’t made, the vendor has the right to use any intellectual property that was not paid for.
In this clause, you should define the fees the client pays if they hire the vendor’s specialists. The same applies if the vendor’s employees are hired by a third party.
A vendor spends a lot of resources to find, recruit, train a specialist. That’s why, if the specialist goes off to another company, the vendor should be compensated for it.
Another option is to agree on the conditions of how this collaboration will evolve.
In software development outsourcing services, the client and the vendor are located in different countries. So, it’s important to determine and agree upon the jurisdiction location in advance.
Finding an excellent software development vendor is hard. But considering all the collaboration details and arranging them into an exhaustive agreement that satisfies all parties is even harder. If a contract is poorly written, it might lead to a number of misunderstandings and issues that might influence the collaboration.
Take your time to prepare the documents. Make sure that your contract satisfies both parties, there’s an NDA, an SOW, and a DPA. They provide assurance in the vendor and guarantee that the product will be delivered on time according to the requirements. And if anything goes wrong, the parties will know what to expect and how to resolve the dispute.
Here at Relevant Software, we have the templates for all these documents. All our clients have to do is enter their contact details, and the documents are ready to be signed.
Statement of Work (SOW) in Software Development: Everything To Know#Dedicated teams
Let’s imagine that you finally picked a qualified outsourcing company with a dedicated team of software developers. You might be sure that the vendor you’ve chosen is reliable. Still, wouldn’t you want to make sure that a company you’re hiring has an understanding of your expectations before they start working on your project? If your answer is “yes” or “absolutely,” then keep reading to find out how to secure a successful collaboration and why Statement of Work (SOW) in software development plays such a crucial role.
What exactly is SOW, and why is it necessary for productive partnerships with IT-firms? Basically, it’s a document that clarifies every aspect of your contract with another company, including schedules, terms, work standards, payment method, as well as acceptance criteria for deliveries. As a matter of fact, a high-quality SOW should cover every critical point of the work. So, what exactly should this document include? Let’s take a closer look.
Purpose of Statement of Work (SOW)
Before starting a project, every party must make sure that they understand methodology, objectives, deadlines, payment, responsibilities, and requirements.
Statement of Work (SOW) in software development is a business document that covers every nuance of the agreement between the client and an outsourcing company to boost cooperation and minimize the chance of conflict or confusion between organizations.
Aside from the scope of job, schedule, project’s objectives, standards, and success definitions, SOW may include other miscellaneous information, like security considerations, hardware and software restrictions, post-project support, penalties for late or poor-quality deliveries, and clauses to terminate the contract early.
Although SOW is usually considered more of a business document than a legal one, you shouldn’t underestimate its importance because it defines the full extent of your collaboration with an outsourcing company. Therefore, SOW should be explicit, clear, and written in an understandable language, leaving as little to interpretation as possible.
Who Should Write the SOW
In software development, SOW is typically created by an outsourcing vendor. What makes this method conventional in the industry is the fact that software devs can write SOW with detailed project information and as a part of the documentation package. It’s difficult to find a writer qualified enough to understand the specificities of your contract. However, IT-company responsible for the project development is far more likely to compile a quality document promptly to give to the client.
At Relevant Software, we follow our custom SOW template and provide our clients with in-depth and comprehensive SOWs that include all necessary information for effective partnership.
What’s included in the SOW for software development projects
As a rule of thumb, the more information Statement of Work contains, the more chances the customer’s needs will be met in the most time- and cost-efficient manner. Formats may vary based on vendor, but the majority of SOWs adhere to proven guidelines where content is divided into the following sections.
Start by stating an objective and a list of parties involved in the project. It’s important to indicate the date and location of drafting the document to avoid concerns about its credibility and legitimacy.
Purpose (What is it?)
This section must state the goals of the project and the objectives that the client wants to accomplish. A clear understanding of the client’s expectations will increase the effectiveness of collaboration with your organization.
Scope and Description (What is going to be done?)
Given the complexity of this chapter of the SOW for software development, it’s more efficient to outline the project into several steps, like “project discovery phase,” “application development,” and “testing phase.” Then, these steps should be divided into extensive and comprehensive tasks, which you may want to further break into phases if the complexity of the product calls for it.
Upon reviewing, make sure that the Scope and Description section identifies the following information:
- General budget overview.
- Expected deliverables.
- The individual tasks.
- Phases of certain tasks.
- Responsibilities and roles of each party, including figures accountable for configurations and software input, supplied information, security, as well as approval of system maintenance and performance.
- Appointed project managers, representatives of each organization, and other key figures.
- People with an authority to accept the completed product provided by a software developer.
- Conditions about possible force majeure or issues in functionality implementation.
- Specifications and limitations for subcontracting development, and the company responsible for the quality of subcontractor’s work.
- Requirements or certifications for developers or sub-contractors.
Location of Operations (Where will it be done?)
When hiring an outsourcing company for software development, you can gain access to a worldwide pool of talented and vetted engineers. It means that some vendors can work for you from various countries with different jurisdictions. Therefore, it is essential to list facilities where the programmers operate from and time-zones under which they operate. If a customer wants to have real-life meetups with a vendor’s representatives, the SOW must specify the locations where meetings can take place.
Standards (How will it be done?)
If the Scope and Description sections are all about the nature of the project, this part of SOW is all about the process of operations, which includes the following information:
- Technological limitations (coding languages and platforms).
- Industry standards software dev should stick to.
- CI/CD pipeline diagram.
- Information about the testing of the product, involved parties, and necessary hardware or software.
- List of accepted devices, screen resolutions, and browsers for the testing process.
- Means and tools for communication between the client and the outsourcing vendor.
- Procedures for minor and major order changes.
- Penalties for late deliveries and bonuses for extra labour.
Deadlines and Schedule (When is it going to be done?)
I think you would agree that development shouldn’t be rushed. However, having a set of deadlines and tight timetables can improve the product’s quality and give the project more flexibility. Having a thorough schedule helps to keep the project moving forward with some room left for trial-and-error or potential issues during development.
Therefore, every SOW must state a start date and timeline for the project. To streamline the development, both sides need to have a detailed list of tasks and milestones with set dates of deliveries. Furthermore, the documentation should set a timeline for routine reviews of performance.
This section should also specify the contract’s duration, which measures by date or by a specific period. Additionally, this section may include the maximum weekly or monthly payable operating hours of the software development team.
Monitoring (How to control it?)
As mentioned above, the SOW should state deadlines for performance reviews if a company wants some control of the development. The software development vendor must adhere to his responsibilities and give regular reports. Companies can also implement management software. Some of the most popular applications for supervising and reviewing operations are Jira, Basecamp, Asana. Although all tools and applications for management should be clearly stated in the agreement.
Acceptance Criteria (How will we know the job is done?)
The document must clearly define success and failure, which means it should cover what criteria constitute successfully completed deliverables the client should accept and pay for. Also, it should include circumstances under which the company can terminate the agreement without paying the full price. A detailed description of the features’ acceptance criteria will also help to cover the risks of change requests.
Additionally, Statement of Work should include an attachment with information about the process of submission, as well as people authorized to review and accept deliverables.
Contract Mode and Payment Model (What does the payment process look like?)
After reaching an agreement about preferred payment terms, companies must outline them in as much detail as possible.
In software development outsourcing, there are usually two price models that vary based on the scope of your project:
- Fixed-price contracts are best suited for companies who have a detailed plan, strict delivery dates, and defined requirements. This model also fits smaller projects. With this type of contract, the vendor usually takes full responsibility for the results, but your project compromises flexibility. Payment is typically set up by schedule, or after reaching certain milestones or deliverables, or it can be conducted as a single-sum when the job’s done.
- Dedicated development team model is appropriate for long-term or complex projects with a non-identified scope, which can involve rapid changes during development. It’s a more efficient type of payment for both parties because it allows for shifter requirements adjustment, feature replacement, and allows the customer to effectively manage and monitor an engineering team. The client typically makes monthly payments based on hours programming team devotes to work.
Miscellaneous (What else should we clarify?)
Are there some questions left that you find useful for your collaboration that doesn’t suit the categories mentioned above? Some of these questions can be specific to your project and can include:
- Questions about security regulations and standards.
- Travel payment (in case a real-life meeting is needed).
- Details about code ownership.
- Composition of the engineering crew and program evaluation team.
- Post-completion support, communication with clients, and further testing.
- Final admin duties (how and where the document will be signed).
- Estimated effort level.
- Liability cap and warranties.
- Timeframe for applying changes in the engineering team composition.
In essence, the Statement of Work (SOW) is one of the pillars of collaboration between the client and a software development company. It provides both parties with planning, methodology, and, most importantly, clarity and understanding of the work that’s to be done. We would even go as far as to call it an essential document that can separate a successful collaboration from a failed one.
We at Relevant Software have supplied more than 200 organizations from over the world with dedicated teams of vetted engineers. In addition to outsourcing developers and creating products from the ground up, we managed to outline over 100 SOWs for our customers. If you are interested in our expertise, you can take a look at our cases.
Master Service Agreement in IT Outsourcing#Dedicated teams
Imagine that you’ve found a suitable IT outsourcing vendor. You have a complex product that requires multiple phases of development, and your companies need to collaborate for an extended time. Maybe you already finished a project with the developer on a high note, and you’re positive about partnering up for next ventures. With the Master Service Agreement, companies can streamline software development by simplifying general contract regulations for ongoing projects, while still being able to make decisions during development.
With MSA, you can make the regulations clearer for both parties in advance to eliminate confusion. It also reduces legal expenses and bureaucracy associated with developing new documentation.
Let’s take a wild guess and assume you’ve already browsed the web for a high-quality MSA template. I wouldn’t be surprised if you didn’t find a good example so far. If so, you don’t need to worry, because below you’ll find the MSA template tailored for outsourcing development organizations.
What is a Master Service Agreement in software development?
Master Service Agreement (MSA) defines as a contract between IT-vendor and a client that outlines project expectations, responsibilities, roles, provided services, terms, and other essential agreements between parties.
What makes this document stand out from other agreements, like NDA, DPA, and SOW? The key difference is in the goal. MSA in software development can help the IT vendor and the client if they plan to work together repeatedly. Do you want to learn how exactly it boosts the firm’s collaboration in the IT field? Stick with the article to find out.
What is MSA needed for?
When a company and software vendor decides to work on a project over a prolonged period, the Master Service Agreement will make the process cleared out. It also helps to cut costs and save a lot of nerves for involved parties by removing the need to renegotiate and re-review most of the already approved conditions. MSA in software development is a complex document that takes a lot of time to draft. However, after sides reach consensus on it, it can be used as a template for the subsequent ventures.
It allows organizations to focus on essential concerns, like goals, objectives, and timetable of a separate project. Additionally, MSA helps software developers (outsourcing companies) and their clients to avoid contractual disputes or potential legal action. It can state who is going to be responsible for failures, unexpected costs, or intellectual damage, thus providing guarantees and indemnification for both sides. If some disputes do arise, meticulously outlined MSA aids in determining the guilty party faster, which helps with the risk allocation.
Given the importance and complexity of this document, your next question can be…
Who provides the Master Service Agreement?
In software development, MSA is usually written by an outsourcing vendor and then given to the client for a review. It’s a typical practice for the industry because software companies specialize in nuances and specificities of the project’s development. Additionally, an outsourcing company can compile a Master Service Agreement with other necessary agreements as a part of a documentation package.
It’s possible for the customer’s team to write the MSA and give it to the software company for examination, but there’s a high chance that the revision process can drag on for far too long. Outsourcing vendors, on the other hand, specialize in working with other companies and have more expertise compiling proper documentation.
For example, at Relevant Software, we have collaborated with more than 200 customers from over the world and provided most of them with all the necessary paperwork, including SOWs, NDAs, and MSAs.
Therefore, an experienced software company can effectively write the first draft of the Master Service Agreement in the course of days instead of weeks, and then present it to the client for examination. Outsourcing firm is also going to be swift with editing and adjusting the document to reach mutual consent faster.
What does the MSA consist of?
Simply put, a high-quality Master Service Agreement must state every important and minute detail to convey business expectations and provide financial guarantees to both parties. It should also be clear and understandable to guide project managers. For that reason, the MSA document is typically structured into the following sections.
Provision of services
After an introduction section with names of the participating parties, official contact information, and legal addresses, comes one of the most critical parts of the document with general conditions.
Provision of Services section of the MSA must contain:
- Overall goals and objectives for future projects.
- Client’s expectations.
- Services provided regarding individual SOW.
- Clauses, fees, and processes associated with order adjustments or SOW changes.
- Regulations for progress reporting.
- Description of the work model and weekly working hours standards with reference to the time zone under which the outsourcing agency operates.
- Rules and limitations for solicitation with other contractors during software development.
- Guarantees of independence for the IT vendor and the employer.
Payment and acceptance of services
There are three main methods of payment in software development:
- Fixed price method. Preferred method of work for projects with detailed plans and presupposed delivery dates. Payment is usually tied to milestones, completed tasks or phases, or it can be made as a one-time fee after employ accepts the product.
- Time and Materials (T&M). Suitable for flexible products with unidentified scope. In this contract model, the employer covers the costs of the materials and pays for actual hours engineers devote to work.
- Dedicated team model. Best payment type for multi-layered and complex products where the client can effectively manage the core development crew. The customer pays monthly based on the developer’s hourly project input.
MSA covers the acceptance process for the provided services, the causes for rejecting the work, or demanding a modification and revisions. The fees, taxes, timesheets, and causes for unplanned expenses compensation, as well as payment transfer methods, also go into this section.
Management and monitoring of performance
Individual projects should have the involvement of each side in operating processes and performance monitoring described in a separate SOW. However, the Master Service Agreement can mention the overall managemental structure of software development. Companies may even create a Management Guide attachment with the clarification of their administrative roles.
Terms and clauses for termination
Individual projects have their own deadlines and timeframes. The Master Service Agreement, however, states the duration of the developer’s and client’s partnership. MSA also describes causes under which a contract can be terminated prematurely. Alternatively, the document can establish an automatic renewal procedure if both sides deem it desirable.
Intellectual property rights and ownership
This MSA chapter lays out what results of work on projects under individual SOWs fall within the intellectual property and who retains ownership, copyrights, and other rights, associated with the contract deliverables. It also specifies which data and materials need to be delivered or transmitted to the customer. Meanwhile, the paper needs to state which software, inventions, technology, and data developed prior to or during collaboration, belongs to the software company.
To ensure the protection of data that became known during the collaboration, the agreement must clearly state what information should be considered confidential and is no subject for disclosure to public or third parties. The MSA needs to clarify if the software development vendor can refer to his partnership with the employer in advertisements.
Liability, warranties, and representations
Section that sets liability limitations. Usually, both sides aren’t responsible for indirect or consequential damages. However, if exceptions are made, then they should be listed in the MSA. Furthermore, the agreement lists employees and participating partners who assume the risks for operational incidents that lead to direct losses.
In case the client or software company fails to comply with the Master Service Agreement, which leads to the monetary losses, data breach, copyright infringement, or reputational damage, the contract explains how the responsible side compensates such harm. Additionally, it should mention exclusions from indemnities.
Communication and notices
To stay in touch during development, the MSA must state the representatives of each side, their preferred methods, and tools for communications, locations chosen for real-life meetings, as well as the process of receiving official notifications.
For example, the agreement can establish the process for delivering the MSA and its revisions. It can also cover the procedure of approval or rejection of the deliverables.
The paper can have other conditions that don’t fit the sections addressed above. However, if organizations consider them necessary, your MSA can also provide the following information:
- Disclosure about data protection.
- Governing laws and jurisdiction.
- Procedures for minute amendments to the documents.
- Clauses for severability of the agreement’s provisions.
- Revision process for deliverables, as well as the set review periods.
- Arrangement for post-production support and testing of the product.
Proper Master Service Agreement provides guidance for the IT outsourcing company and employing organization, forms the basis of their relationship, and streamlines future agreements.
Relevant Software provides software development services exclusively under MSA. Therefore, our company is very meticulous with documentation preparation to ensure ours and our client’s mutual satisfaction.
If you found our template useful and your company is interested in IT outsourcing services, feel free to drop us a line.
Things You Should Know About Data Process Agreement (DPA) In Software Development Outsourcing#Dedicated teams
In spring 2018, the European Union enforced a regulation that affected virtually every business dealing with the personal data of EU citizens ‒ the General Data Protection Regulation (GDPR). Under this legislation, every country-member of EU, as well any other country processing personal data of EU citizens must take serious measures to ensure its protection. A major component of GDPR compliance is signing a data processing agreement (DPA) between data controllers and data processors. What does it mean and how it applies in software development outsourcing? That’s what we’re going to talk about in this post.
What is DPA?
According to the European data protection law, personal data of EU citizens can be processed by another party outside of the European Union provided that they sign a legal agreement that regulates this processing. That’s what they call DPA ‒ Data Processing Agreement.
A data processing agreement (DPA) is a legal document signed by the controller and the processor either in written or in electronic form, the purpose of which is to regulate the terms and conditions of EU citizens’ personal data processing. Personal data means any information, with the help of which it’s possible to identify a person, i.e. first name and last name, date of birth, place of residence.
The aspects the DPA covers include:
- scope and purpose of data processing;
- what data is processed and how it should be protected;
- the relationship between the controller and the processor, and more.
Who is a data controller and data processor in software development outsourcing?
The data controller is the person or company that determines the conditions for data processing. In software development, it’s a client. A data processor is a person or company that processes data on behalf of a controller, in accordance with the controller’s instructions. In outsourcing, it’s a contractor.
Now, let’s take a closer look at how it works in Ukraine. Although we don’t belong to the European Union, all the regulations and directives of GDPR become applicable to our companies as soon as we come in contact with EU citizens’ data. It’s super common for IT outsourcing. Here’s an example.
Supposing, an IT outsourcing company X gets an assignment from an EU customer to develop some data management app for a healthcare facility. Clearly, they need access to patients’ personal (and sometimes sensitive) information. Even if they aren’t going to store it on any device, it still falls under the “personal data processing” category.
According to the GDPR, the organization that defines the purpose of data processing (i.e. the controller) has more legal obligations, but how the EU customer and the outsourcing company are going to protect this data becomes the responsibility of both parties ‒ the EU company that needs to get the app done and the outsourcing company that requires data to finish the project.
What happens after you sign the DPA with your EU customer?
It’s likely that your customer, who is also a data controller, will just tell you what to do. Also, you as a data processor would have to take all the organization’s measures and follow technical requirements spelled out in the DPA. In some cases, controllers might require a processor to pass some certification or develop corporate rules to be approved by EU regulatory agencies. However, there’s a very slim chance it’s going to happen because there is no standard GDPR-based certification yet, and all the available options are too complicated.
Why is DPA important while outsourcing?
If a data controller wants to outsource some data processing activities to an overseas contractor, they have to prove that their non-EU based partner is GDPR-compliant and can guarantee sufficient levels of data protection. That’s why signing a data processing agreement (DPA) is crucial, especially in software development outsourcing.
Regardless of the purpose of a software product, an outsourcing company develops code, through which they process data of their clients’ customers. Also, even if they aren’t storing any data, they have access to a database. That creates a need to agree on terms of how this data is protected, processed, stored and used. So, yeah, DPA is basically the outline of the conditions of the cooperation.
What to watch out for when signing a DPA?
When it comes to signing a DPA, there are a couple of things to be mindful of, such as:
Are there enough guarantees?
According to the GDPR, a controller may be held responsible for data breach even if it happened on the side of the processor. Therefore, it’s in the best interest of both parties to make sure that the processor has the bandwidth to provide decent protection to all the data transferred to them from the controller. The smaller the risks, the better. However, in case the breach takes place, the data processor should be able to take immediate measures to minimize its effect.
How the processor will use the data?
The data controller has to ensure that the range of the processor’s DPA doesn’t exceed the original legal basis for data processing. In other words, the outsourcing company should only be able to use data for purposes spelled out in the agreement. It’s the controller’s responsibility to check how the processor will use the data they transfer to them.
Is there any room for interpretation?
… because there shouldn’t be any. The text of a DPA should be straightforward and specific. For example, if the controller is going to audit the processor, all the details of the procedure must be specified. This will help to make sure that the processor and contractor are very clear with the expectations and that there are no weak spots in the agreement.
Relevant Software’s DPA template
Although GDPR has been around for a while, very few software development vendors have a DPA template. Those that don’t have it are technically not GDPR compliant. Also, the lack of a DPA template significantly slows down the cooperation process because it forces the client to worry about the legal issues more than about the actual software development.
Here at Relevant Software, we respect the time of our clients. That’s why we’ve developed a legal DPA template specifically for software development services. When starting a collaboration, a client should just fill in the details and we’re all set.
What Happens After Signing an MSA: Client Onboarding Process at Relevant#Dedicated teams
Need more developers but have second thoughts about outsourcing?
Being uncertain is absolutely normal, especially if you’ve never worked with a software development agency before.
As a software development services vendor, we understand the importance of transparency. And we believe it’s our responsibility to inform you about every step of the process and help you achieve your business goals.
Here at Relevant, we are convinced that client onboarding is essential. Here’s why.
As a software development company that prioritizes quality over everything else, we want to make sure that our cooperation with clients goes as smoothly and efficiently as possible. Our developers aren’t just freelancers with zero accountability. They are acting as an extension of your team, a business partner if you will. That’s why the relationships for us are extremely important.
As a client, you’ll probably have many questions. Onboarding is the best time to clarify everything, from the legal issues to the number of video calls per week. Having a well-defined yet flexible client onboarding process helps us ensure that our partnership is off to a great start.
In this article, we will talk about the process at Relevant Software and tell you more about how we onboard clients in our company.
Client Onboarding Process at Relevant Software on Product Development
There’s no industry standard as to what a client onboarding process should look like, but for more than years of serving clients all over the world, we came up with our own approach. Here’s how it looks.
Let’s talk about every step in detail.
Signing Statement of Work (SOW)
So what happens after we sign a Master Service Agreement (MSA)? First of all, we take care of the legal matters by signing SOW. It’s an important addition to MSA, another formal agreement between a company and a client that specifies all the details about the product or service to be delivered. In other words, SOW is a contract that will define the procedural terms and conditions of our business relationship.
SOW covers the following aspects:
- Project overview and expectations (requirements, standards, etc.);
- Project stages, their scope and criteria;
- Deadlines and deliverables;
- Estimates costs and payment details;
- Key KPIs.
The goal of SOW is to prevent any disagreements and misunderstandings between the parties. Dealing with all these questions early in the process gives both sides peace of mind and sets the whole thing up for success.
Requirement workshop is a collaborative event of key project stakeholders, the goal of which is to discover, validate, prioritize, and agree on the project requirements. We typically organize such workshops with our business analyst, project manager, and designer.
A typical workshop takes around 2-3 hours and the goal is to draw mockups and write project documentation. The next step is project re-estimation, which provides a more accurate timeline and resource estimation based on the prepared documentation and design.
At this point, we’re almost ready to start coding, but there are a few more things we need to take care of.
An artifact in software development refers to any project-related thing created by people involved in the process. First, a dedicated project manager develops a list of all the required artifacts that must be produced by different team members and then puts everything on a shared Google Drive for everyone to view and share.
Here are some of the typical artifacts, which are essential for every project.
Project Charter. It’s a statement of objectives in a project. This statement also sets out detailed project goals, roles and responsibilities, identifies the main stakeholders and the level of authority of a project manager.
RACI Matrix. RACI stands for Responsible, Accountable, Consulted, and Informed. It’s a linear responsibility chart that maps out every task, milestone or decision, as well as the roles of each person involved.
Change Request register. This is a file where we are tracking requests from any stakeholder. It usually consists of request number, date added, request description, field to implement (FE/BE/BA/PM/DevOps), who requested, and the requested due date.
Gantt chart. It’s a bar chart with project work breakdown structure (WBS), start and end date for each work.
Project roadmap. It’s a high-level strategic overview of the key project elements. It should include objectives, resources, deliverables, milestones, and planned timeline.
Release plan. In contrast to project roadmap, this is a simple scheme of task-level project details presented on a timeline. A project plan is used for assigning responsibilities and track progress.
Risks register. It looks like two tables with a list of all possible risks, both negative and positive. Risk register also includes qualitative and quantitative analysis and various action plans to be executed in case things go wrong.
User stories. It’s an informal description of one or more features of a software system. We can’t give an exact estimate until the full scope is described by our Business Analyst.
Setting up Jira
Here at Relevant, we use an Agile approach to software development, and to keep track of the process, we use Jira. It’s an issue tracking – slash – project management tool used for task management and reporting. We use it to visualize the progress and plan a working process for our team.
Developing a Strategy and Planning
Before the beginning of the work, a Project Manager must conduct risk identification and evaluation session with all team members, preferably with a customer, too. As a result of this session, we should have two Risks matrixes in a project folder ‒ positive and negative.
Project roadmap and release plan
The better the plan, the easier the execution. Our next steps involve spelling out a detailed project roadmap in a Gantt chart with dependencies and creating a step-by-step release plan. It’s going to be super helpful for the entire duration of the project.
Scheduling client meetings
Effective communication during the development process is key. We agree on all the details, such as the frequency of interactions (daily standups, weekly/monthly meetings), preferred communication channels (Slack, Skype, Google Hangouts), and the availability (if we’re in different time zones).
Setting up DevOps and development
This stage doesn’t require a client’s contribution but it’s an essential part of project planning and it’s critical for the success of the project. Our team creates CI/CD pipeline diagram, system description, and instructions for developers. We’re also setting up the environment and building the architecture of the project.
How Long the Onboarding Process Usually Take?
Depending on the amount of documentation we’ve managed to gather and the complexity of the project, it can take anything from one day to a couple of weeks. In the latter case, onboarding becomes “Sprint 0”, but that’s a highly unlikely scenario. Typically, onboarding doesn’t take more than a week.
What if I Just Want to Hire a Few Software Developers?
We still have an onboarding process, which includes the following steps:
- Signing SOW. The contract is necessary in any case.
- Artifacts creation, writing documentation and creating a roadmap (or requesting it). We have to know where the project is headed so that we can provide business analysis consultation if necessary. Moreover, we should see the load of employees and start looking for more resources when the client needs them.
- Jira setup, user stories, and tasks. Even if we only provide developers to be managed by the client, we also have to manage them internally to maximize their performance.
- Performance monitoring and code review. This stage is necessary since we want to ensure the highest quality of our services.
This is pretty much it when it comes to our client onboarding process. We’ve been developing and documenting it since 2013 to provide our clients with the swiftest and smoothest onboarding experience.
RFI Explained and Crucial Questions to Ask a Vendor#Dedicated teams
Choosing the wrong software development vendor can damage your brand and waste your time, let alone have disastrous financial consequences for your company. While the market of distributed development grows, it’s become common for organizations to prefer outsourcing vendors for programming solutions.
Consequently, picking a company has become a meticulous process, requiring careful evaluation of a vast number of candidates. That said, you’ll save a lot of time and resources if you streamline the selection process by sending Requests for Information (RFI) to several firms at once.
RFI (request for information) is a document that organizations send to potential vendors to gather data about their skills, size, experience, pricing, as well as products and services that they offer. Companies then use obtained information to decide which vendor suits them the most. RFI makes it much easier to compare different firms because it filters out those that don’t fit your needs from the get-go and encourages competition among the remaining ones.
There is no multi-tool RFI format to fit every company. However, understanding the essentials can help you create a well-structured RFI template.
We suggest dividing your request into two sections:
1. Introduction that contains information about your company and its goals, and sets a deadline for the response.
2. List of specific questions to ask vendors, including inquiries about their skills, size, resources, and pricing.
This segment tells about your company, its background, the purpose of the RFI, required products, and a deadline for a response. It usually consists of six parts.
1. General information
Describe your organization:
- Its full legal name.
- List the CEO and upper executives responsible for the technical side.
- Brief history of the organization.
- Focus and specialization.
- Target audience.
- Regions and countries you operate in.
- Website address, email, and other contact information.
2. Information about confidentiality
Explain your confidentiality policies, intellectual, and proprietary rights. You can put them at the start of the RFI template if it’s vital for further collaboration.
3. Project summary and goals
What are you aiming for with the RFI? You should state your purpose here. For example, the goal of the request could be to see which remote development company might solve your problems most quickly and cost-effectively.
You need to clarify as much information as possible if you want potential vendors to have a clear picture of your goals.
- Does your project have a roadmap?
- What are the software requirements?
- Do you already have a tech team and need to expand it with remote teams, or do you want a whole nearshore team for your project?
- Do you want to develop your product from the ground up, or do you need additional devs for a project that’s already in progress?
- What kind of services do you want from the outsourcing company: development, team management, or business analysis?
- Are you looking for a short-term collaboration, or are you positive about an extended partnership?
Ideally, you can supply this section with visual content to make sure that outsourcing companies have a better understanding of your requests.
4. Skills and competencies
Before submitting an RFI, we advise you to develop an outline of the skills, resources, programming languages, or platforms required for your project.
This section includes information about:
- The operation system (or systems) for your applications or utilities.
- The approximate size of the team that you need.
- The platforms for development.
- Technical restrictions.
- Level of skill, experience, and programming languages the team must possess.
- External or local apps required for the development.
- Deadlines or delivery schedules.
5. Specifications of the RFI process
Define the guidelines about the response format. If you want vendors to send you answers according to the structure of the template provided, you should state so here.
You must set the time frame to get a reply from vendors. Additionally, point out if your partner selection process has the following phases, like RFQ (Request for Quotation) or RFP (Request for Proposal).
6. Contact person
At the end of the introduction section, provide the contact information and the person representing your company in further communications with vendors.
RFI questions to ask vendors
This section contains specific questions, including inquiries about the vendor’s experience, references, technical skills, working methods, as well as the pricing.
We advise adhering to the norms of business writing, which means that your text must have a neutral tone and it should be written with an appropriate level of difficulty.
Please note, that you shouldn’t include every question in your RFI template. List only those that are relevant to your project.
- General Information
- Provide general information about your company:
- Full legal name of the organization.
- The name of the CEO and other upper managers (including CTO, CIO, and VP of Engineering).
- Country and full address of the headquarters.
- The website address, email, telephone number, and other contact information.
- Name and contact information of the person responsible for answering RFI.
- Tell about the structure and focus of your company:
- Background and history.
- Size of the company and engineering team.
- Areas of expertise.
- Organizational structure.
- What is the vision and goals of your company?
- What services do you offer?
- What separates you from other outsourcing vendors?
- Questions about location, communications, and travel:
- How many development teams you have, and what time zones are they located in (state the time difference from UTC)?
- What’s the level of English in the available teams (intermediate, upper-intermediate, advanced)?
- State that other foreign languages are known across your teams?
- Does your contact person know [insert language here]?
- Can your employees travel to other countries at the customer’s request?
- Provide general information about your company:
- Experience and Credibility
- Tell about your experience with projects that are similar to the project we need.
- Provide the following examples:
- Case studies (at least three examples).
- Provided services (project analysis, architectural design, team management, product development).
- Expertise with each of the relevant technologies and programming languages (for example, .NET, Java, Python).
- Experience with integrating your developers to pre-existing teams.
- The number of times you generated additional value for your customers in any way.
- Provide examples, as well as and names of these customers.
- Provide at least three customer references with names of organizations and their contact information
- Project Management
- Describe how do you usually evaluate the complexity of your projects and manage resources to estimate project requirements and risks.
- Do you provide project management services?
- Do you have experience with project management tools and Agile software development (Scrum/Kanban)?
- Describe the software development life cycle methodologies you understand.
- Provide summaries of your experience mentioned methodologies (Waterfall, Iterative, Agile, and others).
- Tell about the project management and tracking systems you use to ensure timely delivery schedules.
- Technical Skills
- State the name of technical skill and the corresponding number of employees.
- Describe the employee staffing and vetting processes in your company.
- How do you maintain and develop the skills of your development teams?
- Do you have a technical expertise branch or center of innovation?
- What’s the current focus of your tech expertise branch?
- How does your company ensure consistent standards throughout different services?
- Tell about the capabilities and expertise in the following areas:
- Automated testing/deployment.
- Performance and load examination.
- Technical documentation.
- Continuous integration.
- Security check-up.
- Quality Control
- What tools do you use for quality assurance?
- What documentation standards you produce for quality control?
- Share an experience of delivering outcomes with TDD and BDD approaches.
- Describe how you manage performance and test security (stress, load, volume).
- What are the most common negative situations you experience during work on the project?
- Resource Management
- How do you minimize attrition and maximize business continuity?
- Tell about the usual ramp-up times for resources supplement.
- How does your company assign developers for different projects?
- Do you assign teams for specific projects until their completion?
- What is your methodology for dealing with volatile demand for skill assessment and knowledge management?
- Company’s Infrastructure
- What applications do you use to communicate with clients and between your teams?
- Describe the environment in your company and offices, including metrics, selected software, on-premise tech, or cloud apps.
- Data Security
- List active and passive security measures in your company.
- Physical security of the offices.
- Hardware protection.
- Software and data protection.
- Protection of intellectual property.
- List active and passive security measures in your company.
- What is the accepted payment model in your company?
- Are there daily or hourly pay rates for different employees?
- Do you demand full or partial payment before the project completion?
- What currency can you accept invoices in?
- Do you take payment in [insert name of the currency]?
- Are your rates and payment methods negotiable?
- Pricing policy for situations when your employees need to travel abroad (if necessary).
Developer’s role Price range/rate Junior Java Medium Java Senior Java Junior .NET Medium .NET Senior .NET BA, UX Solution Architect [insert here]
- Supplementary information
- Tell us about the extra capabilities, skills, or services that you offer.
- Was our RFI clear in communicating our goals and requirements?
- Submit your own questions to us if you have any additional inquiries.
How to choose the right software development vendor based on the answers?
If you followed our RFI template, then you’re going to receive thorough and relevant data that makes it easier to compare vendors. Although, your job is still far from over if you want to pick the company that’ll suit your project the most.
To streamline your selection process further, we compiled a list of things you should pay attention to when selecting an outsourcing company.
Company’s track record
Let’s suppose your firm is looking for a remote developer with particular skillsets. Then, among the first things to consider would be his tech expertise and experience with similar projects.
Also, in case your organization is working on a massive project that requires the cooperation of multiple dev teams, you better note companies that successfully collaborated with other distributed teams before.
Remember the “Experience and Credibility” subsection in the RFI template? The vendors you contacted should list customer references. The client’s feedback is an excellent tool for helping you choose the right software developer. You can also double-check the customers’ feedback using Clutch or other review platforms.
The brand represents its performance. Vendors with industry recognition are prone to attract talent and have fewer problems with employee retention.
You won’t find your best match just by looking for a vendor that has the most attractive price for his services. However, the payment rate must be optimal for the scope and size of your project. Look out for the price model that suits you best. With distributed development, you’ll save money either way. For example, Ukrainian software firms tend to have much lower rates than those that work in the US or other parts of Europe.
If you are looking for a long-term collaboration, make sure that software developer can provide you with a stable team of professionals that can work for your firm as long as you want. Recurring clients are a good sign of a company’s stability. Over the past 6 years, Relevant Software provided its services to more than 150 clients and some customers benefit from our services for more than 4 years.
The vendor must have a well-protected IT infrastructure and convenient location. Great workplaces contribute to creating a comfortable atmosphere at the office, which in turn boosts productivity of employees.
It’s true that strong outsourcing vendors can scale its dev teams to accommodate the needs of every client. Nevertheless, if the sizes of your firm are similar, it can enhance your collaboration. To be treated as a very important customer (VIC), you should go for a vendor who suits your size.
Talent acquisition and evaluation
Pay attention to the answers about employee staffing and vetting. Due to the access to a global talent pool, it’s essential to inquire about how offshore development companies screen the candidates before taking them on board.
Choosing a remote development team is a meticulous process that requires a lot of research and assessment. However, using our RFI format, you’ll obtain a fuller picture that will help you pick the right company.
Since 2013, more than 150 clients from the US, UK, Europe, and the Middle East trusted us with developing their web and mobile projects, and the number of recurring and satisfied customers continues to grow. If you are interested in building a remote development team, we’ll gladly receive your RFI and especially so if it’s crafted according to our template.
Why and how to digitize your business with mobile apps today#Product label
Going digital stopped being a buzz term long ago. The Statista claims that nearly half of the world population is active internet users. No wonder that exploring the world or doing business at the fingertips are not trends but an everyday necessity. With the myriad of opportunities, it’s not difficult to digitize your business with the help of software, digitizing your data and apps means to be on the same page with global tendencies.
Digital transformation or digitalization integrated into every aspect of the society, including businesses, government, healthcare, mass media, science, etc. It became a driver for companies’ internal operations and external activities. Digitalizing as a global phenomenon provokes fundamental changes in how companies operate and how they deliver value to their customers.
What does it mean to go digital for business or to digitize your business?
The increasing investment by businesses in digital initiatives are dictated by the customers who expect services and products delivered to be fast and efficient. This basically means the transformational steps for any business engaging technological advancements step by step, starting from paperless processing and up to heavyweight VR and blockchain. In fact, mastering digitalization is about establishing an updated layer for future new tech applications for making a life of the enterprise more streamlined and introduce new quality of customer experience.
In the struggle to actively embrace the digital trends, the companies move their products and services into the digital environment and build new business models in order not to be left behind. As an example, digital innovators like PayPal, Uber, Airbnb realize conventional, hospitality, financial, retail and transport industries in a completely different manner. And they prove to be successful.
Businesses that do not get accustomed to change soon will become on the verge of extinction.
So, digitizing your business delivers multiple benefits like reduced costs, increased security, and improved productivity to name a few. Among the whole vectors of digital transformation, we’ll touch upon 2 aspects of the digital environment: data and mobility.
At information-driven world, it’s data we keep in mind when thinking about digital trends. Making your data digital helps you build a better business.
Firstly, you save on costs and time. Documents in digital format stored in the cloud optimize your expenses. Less office space, fewer folders, less paper, fewer resources to operate on them physically. Printing, sorting, filing requires tons of billable working hours instead of a few clicks of a mouse.
Secondly, you get enhanced performance and productivity. With all the critical business data available in real-time on a mobile device, you and your employees access it any time from virtually everywhere, starting from comprehensive financial information on stock quotes, market data, communication with customers in an efficient way and up to field workers able to communicate all the changes right away.
Thirdly, and vitally. Your data is secure. Needless to mention vulnerability issues when working with physical documents, issues, etc. Sophisticated modern security restrictions to protect data really work well throughout all the industries and vectors globally.
The Generation C
The hyper-connected digital ecosystem generated the need for the companies to offer exclusive and personalized services for their clients.
The Generation C (“Connected”) prefer to interact with service providers via mobile devices and won’t spend time nor efforts for physical presence in a bank to make a transaction, to book a flight at the airline’s company office, or to drive to a restaurant to make a table reservation. Today we would rather enjoy consistency and around-the-clock availability from the providers looking at the screen leveraging the whole capabilities of smartphones.
The world at your fingertips
An overwhelming all-presence of smartphones made its way into daily life. According to Statista, most of the data, internet including, is accessed by using a smartphone and wireless devices: communication, social media, business processes, tracking health, gaming, security surveillance.
So when having better-enhanced customers experience in mind businesses think mobility, as a game-changer in every type of service. In order to get it the right way, mobile applications are now the primary driver to get closer to a customer. They are becoming more of a business standard component of every marketing strategy.
The power of apps
The power of apps is hard to underestimate. Crafted and custom-designed apps paired with specific features and user-friendliness have proved to contain a huge marketing power. Rich functionality, starting from seamless online payments and ordering to gamification and entertainment elements are persuasive enough for consumers to cooperate with their favorite brand on a daily basis.
Companies experience impressive benefit from the ongoing engagements since loyal customers using their app make regular purchases, orders and also recommend the company to their connections. Mobile applications can be an actual ingredient of bringing business marketing and sales development strategy to the next quality level.
Technology evolvement makes it a lot easier today to develop and launch an app for business and equip it with target-specific functionality. This investment really pays off as companies save time and costs for orders processing and fulfillment, receiving vital data and conforming to customers’ requests at the end of the day.
Core advantages of a mobile application for your company:
- No geolocation limits. Your services get a global reach, they can be accessed and processed anywhere irrespective of location. An app is an actionable instrument to extend your offerings to any Internet user, no matter the country or the continent.
- Added value for your customers. Robust apps with enhanced usability help save time and efforts considerably on processing, submitting, feedback and insights sharing. Besides, fast-performing and responsive apps make it a lot more comfortable for customers to follow the news and updates thus get better service insights.
- Marketing on-the-go. A custom app advertises and promotes your products or services in an effective timely manner when a user downloads or launches it. Your marketing strategy efficiently interpreted via modern mobility tools can help target your customers and get a better market reach.
- Increased sales. A responsive app advocates users to instantly utilize offered services anytime and from anywhere in the world. They are a direct channel to connect with the customers and incline them to buy your products or services. WIth the utilization of loyalty programs via mobile as a part of sales strategy and best deals the sales rates prove to be a lot higher.
- Brand awareness. Engaging customers with your branded application is the most likely chance to grow business with brand awareness. Regular interactions and personalized offerings make customers more loyal and consequently more profitable.
- Information sharing. Well-tailored apps provide both general information about a product or service, like prices, forms, news feed and also present new promotions, deals alongside push notifications as a form of direct interaction with customers.
- Social engagement. Mobile apps are the drivers of social life, no matter if one likes the concept or not. They enable users to socialize, watch the news and updates closely, to like, share and comment on products and services through embedded social media buttons. This is not merely a means of communication, but a viable sales driver for the providers.
Types of applications for businesses
There is a massive number of business-oriented apps. They can be classified according to their purpose. There are the following main types of applications:
1. Loyalty apps
These operate as a consistent element of sales strategy across channels and enhance communication, alongside increasing customer spendings. Loyalty systems as a concept enable convenient management of the whole variety of special offers for a specific target audience. These apps collect large volumes of the relevant customer data, including demography or geographical data, they also comprise customer behavioral patterns, interests and buying preferences, as well as transactional data generated in the buying process.
Check out our loyalty app for retailers enabling restaurants and stores increase customer loyalty, as well as bringing valuable advantages to end-users.
2. Office Productivity Apps
These are the applications maintaining round-the-clock office performance information. We can talk about documentation workflow, KPI-oriented employee performance management, metrics and effective internal performance measurement, accounting and everything connected with the business internal operations. Some companies practice the usage of gamification elements within their apps for better inspiration and motivation for the employees. The overall purpose of the office productivity apps is to increase the business productivity, engagement and efficient performance of the employees.
3. Mobile CRM and sales support apps
Mobile CRM (customer relationship management) apps are gaining more popularity in the hyperconnected society. Those help accumulate customer information in a unified database across different channels, collect the status of orders, track history of purchases and interactions (previous and planned), customer service issues, preferences and sentiments, and which is the most important they provide ongoing analysis, reporting and with the launch of AI – predictions. This creates an invaluable data pool for sales, customer engagement, and marketing staff to provide better customer experience at all points of the customer lifecycle, optimize marketing efforts, automate workflows, track performance and increase revenues.
Check out an example of a gamified CRM & ERP SaaS system that motivates and rewards sales agents.
4. Business specific Apps
This is probably the biggest category which includes the industry-oriented apps designed for the particular business needs. Be it an application for a traveling company or insurance provider, they all are promoting the services and offerings of a particular company to its users. In most cases, those are custom-built apps with perfectly designed usability and necessary functionality, instant interaction with the provider and are oriented on an array of the provider’s services.
5. Appointment scheduling apps
Scheduling apps are the necessity for many users nowadays. They help with the management of the online booking and appointments and very often include online payment option. These include a number of vitally important features like automatic dashboarding, booking confirmation, availability calculation, reminders,etc., that help to stay in touch and in tune. Oftentimes they are synchronized with the 3d party applications which makes it very comfortable for a user to control everything across all devices.
Connected business in the connected world
There is hardly an industry in the modern environment which is immune from disruption. Every business owner is obliged to invest in a strategy, to make a move in order to adopt the technology. The immense potential of the cutting-edge technologies accompanied by connectivity and personalization unlocks new opportunities for businesses, opens new markets and inevitably brings revenue.
Transformational opportunities are capable enough to digitize your businesses so it is ready to respond to the needs of the modern environment. Those are here to help you rely on real-time intelligence, manage your vital data, adopt techniques and methodologies to boost productivity, enable smooth interactions and make your endeavor a profitable and value-bringing venture.
Though the advantages of becoming a data-driven business are well-defined, there might be certain technical challenges to overcome. Discover your capabilities with Relevant Software. Ask for a free consultation.
7 Steps for effective software product development#Product label
Tech-intensive lifestyle induces software to be an integral part of the everyday routine in the 21st century. Today, it is hardly possible to imagine any activity not powered by some kind of computer-related processes.
When digging deeper, software product development is a highly organized process with precise procedures and strictly defined steps known as Software Development Life Cycle (SDLC). Whenever you need a sophisticated system, software suite or end-user web or mobile app your outstanding project delivery, besides all the other important factors, largely depends on a set of processes practiced by the development team. The Software Development Life Cycle as a collection of rules and practices helps to connect tech, non-tech team members and project stakeholders to transform your exceptional idea into a unique software product or solution. It structures the work of the development teams enabling them to meet the project requirements, meet deadlines and stay within the budget. Each of the stages of the software development life cycle depends on the model of the software development process a company chooses whether it’s agile, waterfall, V-model, RAD (rapid app development) or incremental. Here we will take a look at the most commonly adopted phases of software development to see the ways how the perfect product is launched.
Brainstorming and planning
It all starts with a great idea. But any idea needs to be carefully thought over in order to be implemented. Meticulous planning is the initial and one of the core phases of software development or product development as it presupposes determining the scope of the project, defining means and ways for the new system to meet business strategic objectives, resource availability, cost-related issues, timeframes and determining solutions. Only after a perfect plan is worked out you are ready to move forward to
Requirements and feasibility analysis
During this phase of software development, the project is defined in details and the analysis of the project’s feasibility is carried out. In order to build an actionable solution, clean code and catchy design are not enough, you first need for the development team to get a deeper understanding of the project goal and collect all the requirements. Feasibility analysis displays all the technical and economical aspects impacting the application development process: time, resources and tasks and involvement estimates from the team members help calculate ROI and determine project cost and profit. Requirements analysis also helps identify the risks at the very start so that risk mitigation strategies can be worked out from the very beginning. Clear structured documentation ensures better cooperation and understanding for both the development team and clients.
Analysis of requirements and software performance is crucial for the successful next step of the software development lifecycle.
Software design is a preeminent component of software project development. During the design phase, the actual conceptualizing of the solution is created, that is the detailed software architecture meeting specific project requirements is created. Custom tailored software design by software architects and engineers sets definite workflows and standards and encompasses clear overall solution/product design together with database structure and design. During this phase, the whole structure of the project is built with the final prototype and mockups used for the next stages of the software development process. This is a kind of modeling visually everything starting from the functionality of the solution and up to defining the fundamental hardware/software components, software tools for the future development, structure capabilities, processes to realize its business needs and objectives of the proposed solution. After the design is identified it’s time to move to the very development.
Development & coding
The development phase is about writing code and converting design documentation into the actual software within the software development process. This stage of SDLC is generally the longest as it’s the backbone of the whole process and there are a number of vital things to pay attention to. The software engineering team has to make sure their code meets the software requirements specifications, conforms to the stakeholders’ requirements, etc. but if the previous stages of software development were carefully fulfilled, the ready-to-use software is bound to match the requirements to the software project. The software development release cycle proceeds from alpha, beta, release candidate to actual production build. Once the complete architecture (DB, API, etc) and planned functionality of the solution is built, the testing stage starts.
Integration and testing
Now that the software is built and completed the next phase involving system testing and integration starts. Depending on the adopted testing processes it might vary. But typically the QA engineers use a whole range of frameworks alongside continuous integration executing unit tests, automation compilation, and testing. The Quality Assurance team conducts a series of tests including functionality testing, systems integration, and interoperability as well as user acceptance testing, etc. in order to ensure the code is clean and business goals of the solution are met. Verification and validation make up a vital part in ensuring the application/solution are completed successfully. Now that the software is bug-free, the implementation phase starts.
Implementation and deployment
This is a stage when the actual installation of the crafted solution takes place. It’s done step-by-step according to the implementation plan. The newly built and tested application is moved to production including data and components transfer while during the next releases only the specific changes will be deployed. Depending on the complexity of the project it might be a straightforward release (if the project is simple) or staggered released (in stages) in case of a more complex project. Now system analysts and the end-users can actually see and try out the ready application.
Operations and maintenance
The final stage of software development lifecycle includes maintenance and regular updates. The phase is treated with the utmost attention since during the stage the product is polished, upgraded, enhanced and fine-tuned according to the real-world feedbacks on its performance. That’s exactly a perfect timing to robust the application’s functionalities to upgrade its performance and modify according to the actual needs of the end-user add new capabilities or meet additional user requirements.
The Software Development Life Cycle as a structured iterative process varies from company to company aiming at delivery of the best quality product that satisfies the needs even of the most demanding customers. The software development life cycle can be shaped or adjusted to the needs of each particular project, app development or software provider to identify precise actions so that the particular goals are achieved. It is a foundation model to arrange a framework and equip every team member engaged in technical and non-technical activities to deliver a quality of the code in particular and a solution in general that meets expectations to the project or manages decision-making progress.
What matters at the end of the day is the final product or solution and the cooperation level the customer and the provider receive when investing into the next perfect project he intends to offer to the world.
Relevant Software offers established practices of software development life cycle. Following them proved to be a driving factor for the successful delivery of well-tailored great software solutions that meet business needs and offer exceptional customer satisfaction. SDLC empowers the customers to stay on top of the processes and the development team together with the project management team can focus on the vital elements in a timely and efficient manner.
Top 10 Reasons Why Ukraine Is the Best Place to Outsource Software Development#Dedicated teams
Choosing the best destination to outsource software development may be quite a challenge. It might be a good idea to hire a dedicated software development team in Ukraine, but is it an excellent one? As you realize that the success of the project or even the entire company depends on this decision, it gets even harder to make. That is a grave responsibility, indeed. Maybe, we can help you with it?
We know you want to consider all options before hiring a dedicated software development team. So, let’s take a closer look at Ukraine in terms of its attractiveness for software development outsourcing.
Global Recognition in the Tech Domain
Ukraine has gained compelling positions in several international tech-related rankings. The country holds the 20th position in the Global Services Location Index by A.T. Kearney. In 2017, the Global Sourcing Association (GSA) UK named Ukraine United Kingdom’s “Offshoring Destination of the Year.” Moreover, 13 Ukrainian IT companies were listed in the Global Outsourcing 100 list by the International Association of Outsourcing Professionals (IAOP) in 2017.
Other international rankings Ukraine has been mentioned in include:
- 1st place in the Outsourcing Market in Eastern Europe ranking by Outsourcing Journal
- 1st place in CEE by the number of engineers and number 4 globally by Colliers International
- 1st place by outsourcing volume by CEEOA report
- 1st place In Science and Technology by The Good Country Index
- 2nd place Most Master Level Certified Nations by Bench Games 2013
- 3rd place International Most Certified Citizens by Bench Games 2013
- One of the top 20 Offshore Locations in IMEA by Gartner
- One of the top 30 World Outsourcing Destinations in 2010-1014 by Gartner
- One of the top 50 Most Innovative Countries by The Global Innovation Index
- One of the top 50 In Outsourcing Activities by AT KEARNEY
Tech Infrastructure and Community
The tech community in Ukraine is very active. Almost every city has its IT cluster that gathers around and unites technology specialists, companies, educational institutions, and local authorities to develop the local tech environment. The number of smaller, specialized communities is even more impressive: every group of Ruby developers, QAs, data scientists, BAs, Java enthusiasts, or UX designers holds regular meetups, seminars, or conferences.
On top of that, Ukraine hosts some of the largest European tech events:
- The Games Gathering Conference. A B2B conference that’s all about game development.
- The Agile Eastern Europe Conference. This event aims to promote the world’s best Agile software development and Scrum project management practices in Ukraine.
- Lviv IT Arena. The conference draws the international community’s attention to the tech industry in Ukraine. IT Arena shows how many tech experts, talented entrepreneurs, and high-quality products and services Ukraine can offer to the global market.
- DEV_Challenge. A championship on software development in three categories: Web, Mobile, and Game.
- IForum. The biggest offline conference dedicated to the Web in Ukraine.
We can proudly say that the Ukrainian IT community is all about development. And by “development,” we mean personal, professional, and, of course, hardcore coding.
Tech Education in Ukraine
The tech industry is nothing without the people who push it forward. And Ukraine can boast thousands of talented, professional, driven people.
The IT Ukraine Association reports that over 20,000 tech students graduate in Ukraine each year. Ukrainian state universities cooperate with local IT clusters, making sure that the curriculum of the technical departments is up to date with the latest tech trends and business achievements. It’s also frequent for students and graduates to take courses or internship programs provided by medium and large tech companies or academies. After two to four months of training, the best trainees may even receive job offers.
Quantity and Quality
The Ukrainian IT and software engineering community consists of 166,000 professionals, ranking fourth in the world by the number of tech specialists. The report by GSA reveals that the number of people working in IT engineering will reach 200,000 in 2020.
But it’s not only about quantity. SkillValue recognized Ukrainian software engineers among the world’s best, with an average score index of 91.26%. Besides, engineers from Ukraine scored an average of 88.7% across all HackerRank challenges.
A poll held by DOU, the nation-wide community of developers, provides data about the years of experience Ukrainian tech specialists have on average:
- Less than 1 year – 13%
- 1-2 years – 25%
- 3-5 years – 29%
- 6-10 years – 17%
- More than 10 years – 12%
The language barrier is not an issue for Ukrainian engineers. Almost 70% of them speak English at the intermediate and upper-intermediate levels, according to DOU.
The Favorite Outsourcing Destination of Global Companies
No wonder giants like Microsoft, Huawei, Samsung, Ring, and Oracle have embraced the value of outsourcing to Ukraine and moved their R&D centers here. The national technology market responds to global trends by incorporating innovations into the outsourcing services package. From comprehensive applications and analytical solutions, up to machine learning and IoT platforms, Ukrainian tech pros can do it all.
Transparency, trust, and careful consideration of the customer’s needs, intense focus on excellence rather than average results are some of the traits that make Ukrainian engineers stand out.
Home of the World-Known Startups
Ukraine may not have too many world-renowned startups to boast, but more and more of them are sprouting each year. PetCube, Gitlab, YouTeam, AXDRAFT, People.ai, and Earth.ai are the Ukrainian startups that managed to get into Y Combinator, one of the best seed accelerators in the US. Other YC alumni include Airbnb, Coinbase, Dropbox, and more.
The Ukrainian startups that have earned recognition are:
All of them were founded by Ukrainians and built by Ukrainian developers. By the way, Grammarly has recently become the first Ukrainian unicorn startup.
Excellent Value for Money
If you’re serious about cost efficiency, Ukraine is your call. Look at it this way: the average hourly rate for a Ukrainian developer varies from $25 to $49, compared to the $60 to $100 a US engineer earns. And don’t you think that the reasonable price means lower quality! Gartner ranked Ukraine number one in Eastern Europe for the price/quality ratio.
No Fuss with Time Zones and Visas
There are also advantages of outsourcing to Ukraine you may consider insignificant at first and not fully realize until you start working with a remote dedicated team. Ukraine is seven hours ahead of the US East Coast and one to two hours ahead of the time European countries have (depending on the daylight saving time). So, by the time you come to the office, your Ukrainian engineers will probably already have some progress to report.
And although building a remote team in Ukraine sounds, well, remote, it’s fairly easy to get there. Regular direct flights make traveling hassle-free, and a lot of foreign citizens, including Americans and Europeans, can travel to Ukraine and stay there without a visa for 90 days. If you need a member of your dedicated team to visit your office, that shouldn’t be much trouble too. Ukrainians can visit Europe for traveling and business purposes visa-free for 90 days.
A Favorable Economic Environment
The political instability in the country has had little impact on the current activity of most IT industry players. Although, we should admit that it does restrain more active development. In the last years, Ukraine has been putting a lot of effort into making the business environment more favorable. Since 2015, Ukraine went 20 positions up in the World Bank’s Ease of Doing Business rating. Paying taxes is now easier as the country introduced a lower flat rate of 22% for the Unified Social Contribution tax paid by employers compared to the previous rates, ranging from 36.76% to 49.7%.
Of course, you can find an alternative to Ukraine. One of the customers we had at Relevant Software had initially opted for a vendor from Asia, with attractive pricing policy and contract arrangements. Unfortunately, the cooperation was not successful due to the vendor’s constant failures in terms of project requirement fulfillment and the lack of technical and communication skills. Don’t let this be your story too.
All in all, Ukraine is a reliable destination for hiring a dedicated software development team. We see businesses from increasingly more companies recognizing the potential of investing in the technological capabilities of Ukraine. The comparatively low cost of living, the positive dynamics of the Ukrainian ICT, and the related legislation, data protection, and security regulations make Ukraine an attractive outsourcing destination.
If you consider hiring a dedicated software development team in Ukraine, why not contact Relevant Software to discover your options?
How to build a cryptocurrency exchange app like Coinbase#Product label
Cryptocurrencies are everywhere now, and more and more people wish to trade them. The stunning rise of Bitcoin to almost $20,000 at the end of 2017 encouraged more people to trust this new way of investment.
Cryptocurrency trading is done at cryptocurrency exchanges, or online platforms, allowing to buy, sell and transfer cryptocurrencies. To enable secure and convenient trading, the exchanges operate through web or mobile apps with various functionality.
If you are planning to build a cryptocurrency exchange and create an app for it, we have put together some recommendations and best practices that may help you get started.
As an example of a successful, transparent and user-friendly cryptocurrency trading app, we will analyze Coinbase, an application that many users and experts find rather convenient.
Coinbase – why do users love it?
Coinbase began operating in 2011 as a Bitcoin trading exchange. Until 2011, Bitcoin remained virtually the only notable cryptocurrency, therefore, Coinbase operated with a single currency only. In 2016, the company added Ether as a traded currency and in 2017 – Litecoin and Bitcoin Cash.
By the way, the multi-currency operation is one of the features that distinguishes Coinbase from other exchanges, as many of them operate only in Bitcoin or Ether. And the users appreciate it, too.
Coinbase is the largest cryptocurrency exchange in the US. According to its own statistics, Coinbase currently serves more than ten million users.
The Coinbase package includes the exchange per se, the cryptocurrency wallet and the API allowing integration into other resources.
The advantages of Coinbase are:
- Support of bank transfers, PayPal and credit cards as the payment methods
- Operations with several cryptocurrencies (Bitcoin, Ether, Litecoin, Bitcoin Cash)
- Easy user onboarding and intuitive UI
- A range of related services, such as deposits, instant transfers between users
At the same time, for fairness sake, we should also mention the points where Coinbase falls behind:
- Limited geography (currently, Coinbase serves only 32 countries)
- Cryptocurrency stored with third parties (however, with the Vault feature enabled, this issue is resolved)
- Limited number of supported cryptocurrencies. Indeed, there are exchanges that support only Bitcoin, and in this case, Coinbase is definitely more effective. However, there are those that support dozens of currencies.
- Monitoring your cryptocurrency spending. It can even shut down your account when it decides that your transactions fall under a prohibited category
Coinbase earns its money from trading fees. It charges various fees on all buying and selling transactions, depending on the location and the transaction type. However, this seems to be enough to make $2.7 million per day. You can get the idea of the volume of transactions it performs.
Coinbase Wallet app
For cryptocurrency trading, Coinbase has a great mobile app full of convenient features. You can use it to perform any trade-related transactions, control your cryptocurrency accounts, monitor exchange trends.
However, Coinbase, despite its popularity and enormous customer base, is not the only one on top of the cryptocurrency exchange rating. Check, for example, Bittrex supporting more than 190 different cryptocurrencies, or Kraken with its very low fees. Comparing different crypto exchange platforms, you can get the idea of the functionality scope you need to include in your app.
How to develop a Coinbase-like application?
If you are planning to build a cryptocurrency exchange app, it takes some serious preparation and research.
You are about to venture into an industry which, on the one hand, is hardly regulated by any national laws or rules and, on the other hand, involves huge amounts of money. Therefore, you should be extremely careful in developing your app and, thus, thorough preparation is in order.
As with any project, the first stage is discovery. At this stage, the research of your future cryptocurrency application is done, and the application scope is defined.
Start your project planning with a market research. Analyze the competition and do user interviews to define their primary needs.
By asking the users about their experience with other similar products and their vision of a perfect cryptocurrency exchange platform you may get the idea of the scope to be implemented.
As a result of the discovery phase, you should be able to answer the following questions:
- What does the competition offer?
Study the competitors’ products and note their advantages and disadvantages. By creating a cryptocurrency application that resolves the problem other apps have you will immediately stand out.
For example, if we are talking about Coinbase, it only works with the three major cryptocurrencies – Bitcoin, Litecoin, and Ether. It does not list other currencies or ICO tokens. Therefore, a good idea may be to provide support for other cryptocurrencies as well.
- What market niche is my app aiming at?
This is an extension of the previous question. Do you target only cryptocurrency traders, or do you plan to attract ICO investors, too?
Are you planning only buy and sell transactions or peer-to-peer transfers, too?
- Which problem does our solution resolve?
You should be able to offer something that fills the needs of your users or the particular user group you are focused on.
Again, if we take Coinbase as the reference point, it may happen that it does not serve the region where your target group is located.
After the marketing research, use its findings to plan your project of building a cryptocurrency wallet app. Define the functionality scope of your application.
For example, for a Coinbase-like app, you may include the following functionality:
- New wallet creation
- Send/receive transaction support
- Account management
- Multi-currency exchange (as an alternative, you may develop only a Bitcoin exchange and wallet app, if your marketing research and user interviews suggest it)
- Instant exchange function (this is a great feature that Coinbase offers to users who want to trade Bitcoin but do not wish to be affected by its volatility. As soon as Bitcoin is received on their account, it is immediately converted into a fiat currency and credited to their wallet in USD, EUR or GBP)
- Real-time cryptocurrency rate charts
- Transaction history
- Push notifications and alerts about certain price peaks
- Onboarding flow with a brief introduction to cryptocurrency exchange and its options
During the project planning, you should also define whether you are going to create both web and mobile versions of your app, the mobile platforms your app will run on (we recommend developing both for iOS and Android, as this way you have good chances to nearly double your audience). That determines the technology stack you are going to need.
At the same time, running a cryptocurrency exchange requires compliance with legal regulations of multiple jurisdictions. Although cryptocurrencies are much less regulated than regular financial transactions, many countries are beginning to review their attitude towards them. This is due to the ever-increasing effect that cryptocurrencies have on the national economies and the global economy as a whole.
A wise move would be getting legal counsel on the regulatory situation in the countries you plan to offer your services in.
Think how you are going to earn with your exchange app. If you follow the Coinbase path, you should plan to charge commission on each trade transaction.
Alternatively, you can go commission-free, like Robinhood exchange app, and leverage the number of customers that you will be able to attract with your trading terms.
Usually, for cryptocurrency exchange apps, the back-end is created using Java or Node.js. For easier and quicker development, you can use the available libraries containing most of the required wallet functionality.
If you plan to develop an app supporting only Bitcoin trading, you can use BitcoinJ SDK. However, it has a significant disadvantage – it can be used only for developing Android apps. Alternatively, check Coinbase libraries that can be used both for iOS and Android.
As for the front-end, you have a variety of development platforms. You can use Angular or React, or if you want to save time and costs, opt for React Native. With React Native, you will build one application that can run both on iOS and Android without the need of creating two different ones.
Depending on the final scope and the required technology stack, you may need to put together the following professional product development team:
- A back-end developer with the knowledge of Java or Node.js
- An iOS developer
- An Android developer
- A front-end developer experienced with the selected front-end development platform
- A graphic designer
- A QA engineer to test the product
- A project manager to coordinate the development
There are multiple ways of organizing a team for a project. If you have in-house developers with the required skills, you are all set and can proceed with the project immediately.
However, if some skill is missing, or if you have no development department at all, you can either contract an outsourcing company or hire freelancers.
Both options have their pros and cons. For example, with freelance developers you can expect lower development costs, while a professional outsourcing agency can be contracted for ongoing support and maintenance.
We have done a detailed research on the possible team hiring options, where we outlined the advantages and disadvantages of each approach for your project: freelance devs vs. development agency for your project.
Prototyping and MVP creation
Before developing a full-featured product, we recommend creating a working prototype or a minimum viable product, or MVP.
This approach is especially practical when the budget is tight, and you need to raise funds. The prototype and/or MVP will, on the one hand, help you test your hypothesis with your users and, on the other hand, allow showcasing your product to the potential investors.
While planning your MVP, think of the core and killing feature that you wish to show.
In a cryptocurrency wallet app, this may be, for example, multi-currency exchange or instant exchange options. Make sure you include them in your MVP.
There are many prototyping tools on the market, and you will have no problem choosing the one suiting your purposes. Check, for example, InVision where you can build interactive prototypes showing the user experience and allowing to test it.
When your prototype or MVP is ready, ask the users, preferably, the same group of users you interviewed during the discovery stage, to test it. The results of such testing may suggest some changes to the functionality or UX.
After the prototype or MVP has been tested and the final scope has been approved, you can proceed with the development.
Usually, a mobile app development takes about 8 weeks – 10 weeks for back-end and 8 weeks for front-end. It may take longer if you decide to create two apps for iOS and Android; however, the ballpark figure is about 5 to 6 months.
The cost of development differs greatly depending on the location of your development team and the prices on that market.
In Eastern Europe, however, the average cost of full-cycle app development is between $50,000 and $150,000, depending on the complexity.
The nature of blockchain technology and cryptocurrency trading makes them heavily dependent on the quality of software development.
You have, probably, heard of the Parity Wallet bug that rendered about $150 million of Ether unavailable. So far, the solution has not been found.
Thus, an application designed for cryptocurrency exchange must be made by professionals who know what they are doing. The key point is engaging an expert team with expertise in the domain.
Intuitive design, useful functionality, professional development and creative marketing – this is the recipe for your cryptocurrency exchange app success.
PrismApp: Augmented Reality App for iOS#Product label
Augmented Reality (AR) is no longer a futuristic prediction or sci-fi movie element. Today it becomes a part of our everyday reality, transforming the way we live and communicate.
An enhanced version of reality
AR technology adds a digital layer to the real world and creates a continuous view of both the real and virtual worlds. A user can interact with the digital overlay and non-existing objects with different types of devices.
AR technology allows to change the way we see the world around us. Information or image contextual overlays appear on screens or as holograms around the user. AR enhances the real world, makes it digitally manipulative and interactive.
With AR we can modify, add and see supplementary information about things surrounding us just using the camera of our smartphone or tablet.
Here we go
Our mobile development team decided to give AR a closer look and research the market. We were interested in apps intended to help people find specific places and destinations around, such as cafes, hotels, petrol stations, offices and business centers.
We’ve researched and analyzed the three main features of these apps:
- Search by category/name
- Display of locations (on the map and alternative ways)
- Display of information about a specific place
We found out that the location feature is the exact thing where AR technology would suit so well. Still, it is the feature that could be significantly improved.
Sure, we’re not the only guys who decided to use AR to display location data, but to our surprise, it turned out that not so many similar apps were published in app stores. Moreover, all of them had considerable drawbacks in usage. This fact motivated us to develop an app which would fit our expectations and the needs of its potential users.
We decided to develop a convenient app that uses a smartphone’s GPS to display AR markers for nearby locations that may be valuable in travels. With our app a user simply opens a camera mode to get known about the world around them: the closest ATMs, restaurants, bars, landmarks, and any other geographically-relevant information in real-time. As well, we wanted our app to display the general information about the points of interest: short wiki-like info, opening hours, photos, user ratings, and reviews, etc.
An additional boost came from an article posted on one of the most well-known portals among iOS developers community, raywenderlich.com. This article became our primary guide during the PrismApp development.
After analyzing the article, we’ve decided to launch the demo made by the article authors first. Our first impression was “Wow, but everything is already here.” But then it turned into “Improvements needed, a good few…” Nonetheless, this article provided us with valuable basics of understanding the AR development and helped us further implement our intended project.
First of all, we had to figure out how to improve the core feature – the overlaying markers in the camera view, as it didn’t work flawlessly.
Let’s go into the details:
- While rotating the camera around, the markers weren’t moving smoothly. The tiniest motion of the hand holding the device led to the change of marker coordinates. That made the tapping on this marker to review additional information about the place too complicated and uncomfortable;
- When the places were in the immediate neighborhood – the markers overlaid one another;
- The height of the display was not used altogether – all the markers were located at the same distance from the top and the bottom part of the screen, which didn’t look satisfactory either.
Second, we wanted to develop a possibility to display complete information about the specific place, create an easy-to-use interface, enhance the work of the maps, as well as elaborate on additional necessary features.
1. After fiddling around with the coefficient in AR ToolKit DEGREE_TO_UPDATE and INTERVAL_UPDATE, we managed to organize a smooth movement of the markers during the rotation of the camera. Also, we developed an additional small algorithm to ensure that the hand motion is recognized only when it is constant for a certain period of time and goes in the same direction.
It enabled us to avoid situations where a person on-the-go uses their camera with PrismApp and slightly waves the hand left-right. The algorithm is somewhat different for tablets and smartphones due to the different range of user motions for these devices.
2. Then we found a solution of how to fix the overlaying of the markers, located in the similar direction. Considering that the max distance of the markers’ localization is 2000m, and the max quantity of the markers on the screen is 20, we decided to rank the markers by height depending on the distance of the location from the user. That means that locations that are closer to the user are shown on the bottom of the screen, and locations that are farther – at the top of the screen. Also, we applied the uniform scaling of the markers’ size for extra convenience.
This approach allowed to get rid of a lot of empty space on the screen, evenly locate all the markers across the screen and solve the problem with markers overlay. Additionally, to prevent the overlay of the markers, we implemented a slight shift of one of the overlaying markers.
3. Google Places. We took all the information about the places from Google Places. There we’ve found a variety of necessary details – general info, opening hours, photos, user reviews etc. This additional info appears on the screen when a user taps on a place on the camera or the map screen. In a test mode, Google limits the number of requests to 1,000 per 24 hours. That’s why, before the project launch, we passed our verification on console.cloud.google.com by filling out the billing data. That helped us obtain a limit of 150,000 requests per 24 hours.
4. Design. No surprise that we decided upon the Google Maps style for the PrismApp to make it familiar to the users. Then, we added colors and icons, relevant to the type of each place.
We aimed to create the most convenient app to find different categories of places in real-time, and enable a possibility to automatically create a route on user’s device.
As a result, we developed PrismApp – a handy and useful AR application for people who travel or look for some yet unknown places in their everyday surroundings.
Replacing the information about destinations from Google Places with any other information, you can safely use a developed module in any other products.
PrismApp is your local guide to finding any point of interest nearby with the help of Augmented Reality technology and the camera of your mobile device. Simply pan around the area with your camera mode on and get up-to-date information about various places nearby, including their location, distance, addresses, photos, user reviews, and ratings.
At Relevant Software, we are passionate about innovative technologies. We understand, that while physical and digital worlds are merging, the nature of digital interactions is also changing. We are continually looking for solutions that optimize AR technology for everyday use and adjust high-tech innovations for business environments.
Digitizing Construction Industry with Mobile App Development#Product label
Digitalization is not a futuristic idea, or something dim and distant. It is happening right here and right now, and there is no alternative to it. Sooner or later, it will happen to every industry, every company, and every employee.
What does this today’s widely-spread word really mean?
Digitalization itself, or digital transformation, is moving away from manual work and paper-based processes towards real-time sharing of information and automated processes.
Digitalization is deeply grounded in emerging technology innovations. Its right-hand men are digital solutions and mobile devices.
Numerous industries, including healthcare, transportation, aviation, retail, fintech, are leveraging digitalization and enjoying practical and relevant benefits it brings.
With the help of software systems and mobile apps, companies achieve complete transparency of their processes, enhanced communication and collaboration, precise quality control and risk assessment, and, what is the most important, better outcomes.
Old habits die hard
Construction industry is ripe to take off on a digital journey. According to the recent report by Roland Berger “Digitalization of the Construction Industry”, less than 6% of construction companies make full use of digital planning tools, while 93% of industry players agree that digitization will affect every process.
Construction companies not evolving together with technology are vulnerable to be left behind. However, due to continuing challenges the industry adopts technology and process innovations incredibly slowly.
Construction industry is a very specific one. Let’s move our imagination to the construction site and see how it looks like. Lots of machinery and equipment here and there, materials scattered everywhere, field workers running back and forth in seek of the supervisor to get their tasks. Numerous processes and activities are happening simultaneously, while lots of assets and workers stay underutilized. Obviously, this site needs new ways of working and thinking.
An industry in need
And, these new ways should help construction industry address the challenges it faces.
Companies in the industry are challenged to deal with potential cost overruns, missed deadlines, disparate business processes, dynamic business environment, and competitors breathing down their neck.
Among the other major pain points of the construction industry are increasing expectations from clients, environmental issues, overelaboated technical-security compliance, augmented complexities of mega scale projects, and many more:
- Complex project planning due to enormously large-scale projects
- Poor coordination between back office and field due to delay in information sharing
- Prevalence of paperwork. Paper documents are used in outdated databases of blueprints, designs, supply-chain orders, equipment lists, and reports
- Inadequate performance management due to difficulties in data analysis (scope of works done, active working hours, amount of used materials, etc.)
- Inefficient risk management
- Shortage of skilled labor
- Delay and cost shortages
- Escalated competition
Roland Berger states 4 keys to digital transformation:
- Digital data. Electronic collection and analysis of data is essential for identifying and solving pipeline inefficiencies and other organizational pain points
- Automation. Use of new technologies to create autonomous, self-organizing systems, as well as improvements of safety, quality and labor costs
- Connectivity. Fast and convenient connection and synchronization of hitherto separate activities and organizational elements
- Digital access. Mobile access to the internet and internal networks to enable all 3 above-mentioned keys
Mobile devices represent significant interest for construction industry. They are always at hand and always connected. Everybody, from managers to field workers, has smartphones. These widely-used devices have the full power to revolutionize construction industry, as each worker is already equipped with a connected and compatible device. Smartphones help people stay always connected with their social circles. Why shouldn’t they start using it for connectivity with their construction team at work?
Success of every construction project depends on the effective collaboration between numerous sub-business groups: managers, suppliers, workers, contractors. Let’s imagine our construction site again. The situation has changed: all supervisors and workers are now using convenient mobile apps right on their smartphones.
Whenever they need an information about the location of the materials, they don’t need to run back and forth on the site. They just pick the phones out of their pockets. When they need to find another worker to help them carry heavy container – the information about the employee “waiting in activity” is on their fingertips.
A mobile app manages employees, equipment, communications and schedules. See, the management of daily on-site activities is totally different. Everything is being tracked on-the-go!
Total availability of smartphones and low-cost server infrastructure mean incredibly low cost of deployment of mobile apps for a construction project at every link in the value chain. Once uploaded, information becomes immediately available for all team members and helps optimize supply chain processes.
Mobile-enabled solutions for digital collaboration between the back-office and construction site have a catalytic effect on the construction productivity. These applications really change the way the construction industry does everything.
They feature work scheduling, tracking of assets and materials, document and order management, productivity measurement and project planning, and can help any construction company digitize and improve its workflows.
Mobile apps for construction allow field workers share information about the work progress in real time with the back office, no matter how remote the construction site is, and provide a far more efficient way of managing construction projects. This helps eliminate time-consuming communication issues and make lives of construction project managers easier.
A minute saved is a minute earned
An average field worker spends only 30% of their working time for their direct responsibilities. And the remaining 70% are spent in running errands like transferring of the materials from place to place, cleaning up and rearranging the construction site, and searching for equipment and tools. McKinsey’s report “Imagining construction’s digital future” states, that mobile solutions for construction companies can save up to:
- 20 hours of staff per week
- 75% of time to generate reports
- 90% of time for information and document sharing
Mobile apps for construction industry in power
Literally, all processes can be digitized. Construction industry is where business mobile apps come in handy.
|Feature||What it does||Problem it solves|
|Safety and risk management||
Down to earth
Field workers are used to physical labor, not to sophisticated devices and solutions. Mobile apps for constructions should be convenient and easy enough to use both for office employees and workers who are on-site. Designs and user interfaces should be simple and intuitive in order not to deter workers from using them.
The apps for construction should allow field workers share, access and report important project data while they are on their construction site.
Benefits of mobile apps for construction companies:
- Improved communication and collaboration between back-office and field workers
- Staying on schedule
- Replacing paper documents with digital forms
- Improved workflows
- Increased productivity
- All aspects covered: people, assets, processes
- Tracking of remote teams’ activities
- Quick customization to fit the needs of specific company or project
- Increased speed of construction
- Materials availability
- Management of supply chain vendors
- Improve accountability
- Have better visibility and risk management
The profound impact of digitalization, and, in particular, mobile solutions, can be seen in the entire construction industry. All construction companies will start digitizing sooner or later. Irrelevant of what you think about technology innovations, you have to decide whether to leverage it today, and be ahead of the game, or stay behind while your competitors gain traction.
In the next few years, mobile solutions for construction will change everything. They are already disrupting the industry. Honestly speaking, construction companies are left with no choice but to consider mobile app development strategically. You’d better catch up or you’ll be transferred to the reserve.
At Relevant Software, we have extensive expertise in the development of complex software systems and mobile applications for construction industry, supply chain, infrastructure management and business process automation. Our mobile applications enable access to critical project data and managing the entire lifecycle of construction projects anywhere, anytime, and on any device.
Contact us to find out how we can help you in building an efficient business mobile app for your construction company.