Text
The Internet of Things in Transport and Logistics - Does It Make Sense at All?
IoT and blockchain technology are revolutionizing the logistics industry right now. Over the past decade, the world has experienced many technologies and innovations, ranging from the World Wide Web to mobile technology and now the Internet of Things (IoT).
While IoT is a popular innovation in home environments such as smart home appliances, smart speakers, and personal digital devices, it is rapidly growing in popularity across a variety of commercial industries, including agriculture, healthcare, real estate and security, and the future looks even brighter for the custom development of global logistics.
https://ardas-it.com/the-internet-of-things-in-transport-and-logistics-does-it-make-sense-at-all
0 notes
Text
NEOBANK for fintech business: features of a digital bank
The banking sector of the fintech industry has been actively transforming over the last five years: the number of neo-banks in the market is increasing, the classic branches are closing, and the customer is confidently moving to digital.
Today's students are a generation of people who will most likely never go to a bank branch in their lifetime. This does not mean that they will not use banking services. On the contrary - they will actively pay non-cash, take loans, and open deposits, but all the interaction "bank-client" will take place in their smartphone. And it is for this audience - Generation Z - that non-banks are already competing today.
read more here https://ardas-it.com/neobank-for-fintech-business-features-of-a-digital-bank
0 notes
Text
Upcoming SaaS in robotic process automation in logistics
This article on Logistics Trends explores these issues in detail. You will find that designing an advanced robot is costly and a major technological challenge. You will find that the distribution environment is complex and difficult to automate. But every day, there are breakthroughs in robotics that help us overcome these challenges.
Check it here https://ardas-it.com/upcoming-saas-in-robotic-process-automation-in-logistics
0 notes
Text
Why Nordics are the most leading in fintech development?
The fintech landscape in the Nordic and Baltic regions continues to be one of the most successful at producing unicorns. One recent example is TransferWise from Estonia that has become the most valuable fintech in Europe. Furthermore, the increased investments and new initiatives made by governments in the Nordic and Baltic regions are set to facilitate the continued success of the fintech region in the years to come.
Let’s review the latest north fintech development trends and how it affects the global market.
Read more here https://ardas-it.com/why-nordics-are-the-most-leading-in-fintech-development
0 notes
Text
How to Build a SaaS Product and Avoid 8 Main Mistakes
Startups and large IT companies are increasingly using MVP as a starting point for creating a successful software product. With a focus on a minimum set of core functions, companies develop a product framework that, if successfully validated for demand, efficiency, and market viability, is used to scale the offer and build a full-fledged business.
However, many of the concepts that start-up businesses are guided by when defining the components of an MVP are not correct. Take, for example, the common misconception that an early version of a product is designed to get to market quickly. In fact, as mentioned earlier, the minimum viable solution is intended to validate economic viability, so development speed can only be prioritized if the MVP analysis and testing goals are quickly achieved.
87% of startups don't even survive the first year of existence. Another 3-5% close after 2-3 years. Why is this happening, how to bring a new product to the market, and how will MVP help in this? We answer these questions and give recommendations on how not to waste money, time, and nerves on a product that will not take off.
READ THE FULL ARTICLE ON https://ardas-it.com/how-to-build-a-saas-product-and-avoid-8-main-mistakes
0 notes
Text
Development costs growth on a post MVP phase of a SaaS product
SaaS companies and investors love it because the economics of SaaS is far more compelling than selling software licenses. SaaS revenue usually comes in regularly and is easily predictable, making it much easier to predict cash flows in SaaS companies, which allows you to use this in planning and even here and now sell future cash flows to investors and, accordingly, fund current growth quite generously. For this reason, SaaS companies are considered one of the fastest-growing software companies in history.
Many entrepreneurs do not understand at what stage of development their company is and often overestimate its scale, guided by thoughts of the fastest possible growth.
This can backfire, with a report published by Startup Genome showing that 70% of startups fail because of the rapid scaling of their business model. If you act as if your company is bigger than it really is, and don't measure the most relevant metrics for your stage of development, this approach will ultimately be a disaster for you.
Over the past 10 years, we have helped launch over 40 startups and two of them are our own. Naturally, during this time we have made quite a few mistakes and gained invaluable experience. Therefore, today we decided to show you several cases of what happens to the SaaS after you launch the first version, what the costs may be, and what needs to be done to keep the project afloat.
What kind of costs growth in saas project to expect?
Despite the fact that modern companies have access to vast amounts of analytical data, most of them still do not understand what exactly they need to focus on.
A classic and typical mistake of novice startups is to think that after the release of MVP:
Development costs can be greatly reduced;
The main thing is to find the money for the MVP and when sales start, there is no need to invest own money again;
The income will come immediately after MVP is launched.
Why do most people think so?
People confuse IT business with a more classic offline business when you can invest and then not invest for a long time - they are used to a different dynamics of costs;
Are not used to and underestimate the difficulty of competing in the global market;
The factor of the novelty of the IT industry is underestimated - there are more research and risks associated with product implementation.
How does the reality of post MVP saas development cost look like?
So, what really needs to be done after the launch of the profit center in order not to lose the business. To begin with, let's correctly formulate what these three letters MVP mean.
MVP (minimum viable product, sometimes mistakenly stands for a minimum valuable product or minimal valuable product) is a minimum viable product that allows you to get meaningful feedback from users, to understand what they need and not create something that they are not interested in and for which they are not willing to pay.
Within the concept, your startup idea is a hypothesis. To check it, you need to do the following:
Formulate a hypothesis clearly.
Determine the criteria by which its viability will be determined.
Make a minimum viable product to confirm the hypothesis and launch it.
Measure performance indicators.
Draw conclusions and test the following hypothesis, if necessary.
MVP for startups is by no means a raw product made in a hurry. It just takes a minimum of time to develop it, and it contains only key functions, the relevance of which for real users should be checked. Studies show that 60% of features are not used at all, which means they are not in demand among users. The MVP concept allows you to shorten the project launch time by creating only the necessary functions and start getting real feedback on your product.
The product must be attractive to the user. And so a new concept appears - the minimum lovable product (MLP). A minimum lovable product not only solves customer problems but also delights them. Jiaong "JZ" Zhang, VP of Product at Webflow and formerly at Airbnb, WeWork, and Dropbox, commented on the evolution of MVP: “The MVP was appealing because it brought the product to market quickly and cheaply. But increasingly fierce competition makes it harder to release an MVP. If a startup really wants to stand out, it needs to create a minimum lovable product.”
The cost of SaaS stabilization
One of the most important points at the stage of transition from MVP to MLP is project stabilization. This is the case when, from a technical point of view, you make this product as working as possible. It often turns out in the middle of development that fixing all the technical mistakes and making the user-friendly interface costs much more than originally planned. In fact, this is the responsibility of the developers.
Our team can help minimize project stabilization through high-quality business analysis, planning the development of the backend and front-end according to the terms of reference, and not on a whim. Also, all designs are tested on prototypes. All these actions taken together reduce the time and money spent on stabilization.
How do pivots increase the cost of SaaS development?
To get to the MLP stage, you need to take care of one more important point. The ideal product, in terms of your vision and the perception of users, can differ significantly in substance. As much as you would not like, but to reach MLP you will have to admit the reality and significantly adjust your product. Pivots are most likely inevitable, and therefore money will be needed to implement them.
A finding from The Startup Genome report reveals that “Startups that pivot once or twice raise 2.5x more money, have 3.6x better user growth, and are 52% less likely to scale prematurely than startups that pivot more than 2 times or not at all.”
For example, we experienced it in 2017. We worked on a binary options trading platform. In the same year, such platforms were simply banned in Europe and Israel. That is, our customer risked being left with 100% losses. But with the help of a different pivot, we found a way to redesign the platform for different trading, which is legally allowed. That is, sometimes you cannot predict when and why you will need additional development or radical changes to your product, but you must be ready for them in order to stay afloat.
This saved the project, but the cost of the issue is +5 months of teamwork, which is a lot! If this money is not invested, then the project could be closed with 100% losses.
SaaS technical support cost or how to save the team
It is important to understand that the development and improvement of the project do not end at the MLP stage. One of the critical points at this stage is the preservation of the team, otherwise, this leads to a slowdown in the pace of development and, accordingly, the loss of money.
In this case, outsourcing of employees is the best solution, since you can gather and disband the same team several times. In our company, we have repeatedly faced a situation when work on certain projects was suspended and after a while, we got together again to make the product even better.
The result - it turned out to be very difficult, the client had to wait, it is not always possible to return the same developers - a waste of time on entering new ones. This is all bad for the project and kills the cost savings from stopping development.
Conclusion - it is advisable not to stop the development and not even greatly reduce, but to continue, but competently build a marketing and business plan so that it is well intertwined with the development.
What will it take to get to the growth stage?
If your project has not died after 3-6 months of the post MVP stage, then you reach a new level of this business relay - the growth stage. On the contrary, at this stage, the project requires new changes and financial investments. Code refactoring code will be one of the main consumers of the budget.
Do not be under the illusion that costs will not rise, they will rise at this stage. Here is a list of unpredictable things that cannot be avoided:
Code refactoring
Its purpose is to make it easier to understand how the program works. So what does it mean to make it easier to understand how a program works? The specific goals of the refactoring might be:
Improving the project of the existing code;
Finding errors;
Making the code more understandable for other team members;
Making the code less annoying;
Making it easier to add new code.
Also, refactoring helps to implement software products faster. The quality increases - and, accordingly, the speed of development. Refactoring is definitely necessary if a new person comes to your team, and the code in the form in which it exists is not clear to him. This suggests that the quality of the code is unsatisfactory.
For refactoring, first, write good tests: unit, functional, or integration. Second, change the code in small iterations. Run tests at each step.
Depending on the topic of your SaaS, there is often a need to combat fraud.
Fight against fraud
Almost every project we worked with during the growth stage was attacked by scammers. So for example, our own project Stripo, which is far from the topic of fintech, was also attacked, we were banned and caused damage to the project. Therefore, we had to devote developer time to solutions to combat fraud.
So for example, our own project Stripo, which is far from the topic of fintech, was also attacked, we were banned and caused damage to the project. Therefore, we had to devote developer time to solutions to combat fraud. Accordingly, this point implies another development point that requires financial investments - security.
Invest in security
This is usually the stage of a project that most developers go through at a fairly basic level. But as soon as the project becomes more visible, it comes to the attention of hackers, who naturally will not miss trying to hack your system. Therefore, it is necessary to conduct a security audit at the beginning of the growth phase.
A network security audit is a technical assessment of an organization’s IT infrastructure—their operating systems, applications, and more. But before we dig into the varying types of audits, let’s first discuss who can conduct an audit in the first place.
Internal Auditors;
External Auditors;
Now that we know who can conduct an audit and for what purpose, let’s look at the two main types of audits:
Manual Audits: A manual audit can be performed by an internal or external auditor. During this type of audit, the auditor will interview your employees, conduct security and vulnerability scans, evaluate physical access to systems, and analyze your application and operating system access controls.
Automated Audits: An automated audit is a computer-assisted audit technique, also known as a CAAT. These audits are run by robust software and produce comprehensive, customizable audit reports suitable for internal executives and external auditors. Advanced auditing software will even provide an extra layer of security, continuously monitoring the IT infrastructure and alerting IT technicians when suspicious activity occurs and when predetermined security thresholds have been crossed.
Enterprise saas support cost for new developments
This is perhaps the most important item of financial investments at the growth stage. This is due to the fact that the industry is developing very quickly and competitors are also not sitting idle, new features and technologies appear.
For example, earlier our project Stripo positioned itself as a simple HTML editor. Then Google proposed a new email markup language called AMP. In this regard, our team was approved to implement support for AMP, which is essentially a pivot.
As a result, it took another 3 months and 2 additional developers for the first version, and now we support AMP that requires additional time.
Now we would like to visualize all of the above. The example we talked about above is three and a half of our work. Everything that is said in this article is the experience gained in this project as well. We assure you that this will surely happen with your SaaS project too. Therefore, you have the opportunity to observe from the experience of other people how the costs of the project grew over the course of three years.
Final Thoughts
The philosophy behind MVPs is simple: the longer companies wait for a product to be released - and the more money they spend on creating it - the more risks it entails.
An MVP released at the right time, when enough money has been spent on it, reduces the risk of low ROI and helps with the formation of stable cash flow in the future.
In this regard, if you still wonder how much should you spend on saas support and how to spend your budget wisely, our main recommendation is as follows - plan marketing and sales not after the launch of the profit center, but from the first day of the project in order to start receiving feedback and enter the market as early as possible. Reduce the profit center as much as possible in order to:
Reduce risks in case of failure;
Launch it as early as possible and while the developers continue to do further start selling it.
The Ardas team is ready to help you with the implementation of your SaaS development so that your budget is distributed as smart as possible and without unnecessary losses. And we will also help to make an adequate realistic assessment and not the one that developers do without experience in promoting and developing Saas, it is usually 2-3 times less.
Originally taken from https://ardas-it.com/development-costs-growth-on-a-post-mvp-phase-of-a-saas-product
1 note
·
View note
Text
Comparing 3 ways to store face features when developing facial recognition search
Thanks to the development of innovative technologies, miracles disappear from our lives one by one and become common everyday occurrences... and it's not so bad since in return we get a chance to benefit from these great achievements. And this also applies to facial recognition software.
The area is still quite new, but many companies have already managed to profit from it. That’s why the market is saturated with popular face recognition apps which have attracted numerous loyal users and started making good money. And if you also want to carve out your own piece of the pie, take your time to read our article carefully.
You'll learn about the purpose of facial recognition programming, understand how they work, find out a few efficient options on how to store faces when developing facial recognition search, and get other relevant information on the topic.
What is facial recognition technology?
In fact, we're talking about an online or mobile program able to isolate a human face in an image or video, so it is all about to determine the identity of a person it belongs to. By the way, the software can recognize other objects in the same way either (which will be discussed below).
Current face recognition apps identify such details as:
sex of the person;
his approximate age;
emotional state.
It captures, analyzes, and compares patterns based on the person's facial details.
The face detection process is an essential step as it detects and locates human faces in images and videos.
The face capture process transforms analog information (a face) into a set of digital information (data) based on the person's facial features.
The face match process verifies if two faces belong to the same person.
Today it's considered to be the most natural of all biometric measurements. And for a good reason – we recognize ourselves not by looking at our fingerprints or irises, for example, but by looking at our faces.
Before we go any further, let's quickly define two keywords: "identification" and "authentication".
Face recognition data to identify and verify
Biometrics are used to identify and authenticate a person using a set of recognizable and verifiable data unique and specific to that person.
Identification answers the question: "Who are you?"
Authentication answers the question: "Are you really who you say you are?"
Here are some examples :
In the case of facial biometrics, a 2D or 3D sensor "captures" a face. It then transforms it into digital data by applying an algorithm before comparing the image captured to those held in a database.
These automated systems can be used to identify or check the identity of individuals in just a few seconds based on their facial features: spacing of the eyes, bridge of the nose, the contour of the lips, ears, chin, etc.
They can even do this in the middle of a crowd and within dynamic and unstable environments. Proof of this can be seen in the performance achieved by Thales' Live Face Identification System (LFIS), an advanced solution resulting from our long-standing expertise in biometrics.
Owners of the iPhone X have already been introduced to facial recognition technology. However, the Face ID biometric solution developed by Apple was heavily criticized in China in late 2017 because of its inability to differentiate between individual Chinese faces.
Of course, other signatures via the human body also exist, such as fingerprints, iris scans, voice recognition, digitization of veins in the palm, and behavioral measurements.
What are the recognition features?
When it comes to pattern recognition, a face identification system must store hundreds of thousands of feature vectors. The amount of vectors depends on the number of users. When identifying a person, the system not only recognizes the presence of a face in the frame but also highlights the face in the frame and finds a specific user.
For example, when it comes to face recognition, the system measures such features as the distance between the eyes, the diameter of the eyes, the diameter of the nasal openings, the sharpness of the chin, and many other nuances. There are 128 such features in total.
The point of such painstaking measurements is that simply measuring face to face is not enough. Indeed, depending on the light, haircut, or the level of unshaven, the face can be identified in different ways. And such precise details can affect accuracy.
The main point of this article is to identify the best solution of how to store all these features since the more users you have in the systems, the more feature vectors you have to store.
Also, we want to draw your attention to the fact that these features may apply not only to the face but also to objects and even sounds. At the same time, storage methods do not depend on what features are in question.
What is challenging in storing feature vectors in the recognition systems?
The problem with this question is that the system stores several vectors of features of each user for more accurate recognition. Therefore, our task is to design a database that can store millions of feature vectors.
The problem with this question is that the system stores several vectors of features of each user for more accurate recognition. Therefore, our task is to design a database that can store millions of vectors. The difficulty is that none vector of features will ever be equal to another, that is, 100% identification is impossible.
In this case, the principle of "as close as possible" identification is used. That is, it has a minimal deviation from the vector in the base. This is calculated using the least-squares method, i.e. the sum of the squares of the distances between the elements of the vectors should be minimal.
Technically, we face two challenges. The first is a large amount of data, which leads to lengthy information processing. The second difficulty is the lack of a search algorithm.
Also, it is worth noting that we choose a customized solution to the problem because all cloud services will be much more expensive and technically it is not that difficult to do.
3 best methods of storing features for the fastest facial recognition search
Here we will only talk about using SQL storage, i.e. databases like MySQL, PostgreSQL, MS SQL. These are where performance issues lie. An alternative option would be to use noSQL storages like Cassandra, Redis, MongoDB - they have much more performance capabilities and there will be completely different data structures and indicators. But that's a topic for another article...
Method 1: All features serialized in one text columnThe features are contained in one column, and there is a text field containing an array of 128 features
In the first option, it is necessary to make a selection for all values in the features column, which takes longer to fill the table.
Initially, the table contains 200 vectors. We make a cycle of 1000 search queries and after each query, we add a new vector to the database - usually, this is what face search systems do.
Distribution of the number of requests by response time (ОХ - seconds, ОУ - number of requests).
Average response time: 5.3s.
As you can see in the following graph, the linear load growth of the response time as the base increases. That is not very convenient.
Method 2: One column per each feature
Features are contained in 128 columns (f1, f2, ..., f128).
Distribution of the number of requests by response time.
Average response time: 2.8s.
As you can see in the next graph, the response time does not change as the table grows.
PS. Response time for getting features by photo ~ 1s.
Method 3: One-to-many related tables
Vectors are stored in 2 one-to-many connected tables. Table 1 stores only vectors (no features there) and table 2 stores all features of all vectors (1 row per 1 feature).
As you can see, the third method is much faster than the first. However, the trend in the speed of request-response is increasing. That means much worse results for us.
Method 2 turned out to be the most working. And do not be afraid that you need to create 128 columns for 128 features, it may look scary, but in terms of performance, it is much cooler than methods 1 and 3. Such data storage in tables is not typical and no matter how recommended, but this is exactly the case when one should step back from "architectural beauty" and do just that for the sake of high performance.
Our experience
In one of our projects for a retail market, we used a face tracker to identify regular customers.
Also, a similar system was used for another project to identify people who came to the store after seeing a certain ad.
Final thoughts
The topic of identification systems by faces, sounds, and other parameters is gaining more and more popularity every year. Accordingly, the question of how to store large data of vectors of features in recognition systems is also being raised more and more often.
This task is quite solvable and does not require large expenses, unlike cloud services, but you have to try to reduce the response time of the database. If in your SaaS project there is a need for such custom development service, our team is ready to solve this issue! We are waiting for your applications in the form below.
Originally taken from https://ardas-it.com/comparing-3-ways-to-store-faces-when-developing-facial-recognition-search
0 notes
Text
How to Preview Document or File in a Browser for SaaS
File preview seems to be a common thing, so many developers might think that asking Google 'How to preview Word document in browser' would be enough to find a perfect solution for their project, because of how such a popular thing like file preview can be so hard to achieve? In this article, we will analyze how to create a web application to solve such a problem for different types of documents that can be used in SaaS projects.
Why do you need to view doc file in browser?
One of the main reasons is the functionality will reduce the time needed to search and check documents. Often, users are reluctant to download documents because it clogs their devices with data. Also, not everyone has the necessary software to view documents of various formats.
The developed component will be used to preview the loaded documents and documents generated from the template.
Why view doc file in browser for Fintech SaaS Solutions
Often, in order to comply with reporting in accounting and ERP systems, there is a need to attach files. These are situations when it is not possible to completely get rid of the paper and switch to digital. In such cases, it is necessary to store scans and, accordingly, the doc preview solves a long search for the needed document.
Fintech project where users upload invoices and financial reports.
A receipt from the project where the amounts and other data were recognized.
Any systems aimed at transforming paper documents into digital information - as a rule, require scanning and recognition. For example, personal finance accounting systems.
Why view pdf file in a web browser for CRM, HR and The Rest of Human Resource Systems
Information about a client or an employee in such systems is the main product of storage and it is often required to attach a scan of a passport or a cooperation agreement, where a file preview can speed up the process of finding the necessary information.
HR, staffing, as well as B2B systems, where employees upload scans of their documents or contracts of the serving companiesWhy display word document in HTML for Legaltech Systems
At the moment, this is one of the most lagging systems in terms of technical development. They are quite conservative in their work process, so they still face a lot of papers. Most often, users come across documents in the system in two cases:
for easy storage, accounting and printing at the right time;
for document recognition and translation into a digital version;
Legaltech systems in which you need to store and manage any documents, including separate templates, and separately filled ones.
As an example - a contract in a word document from one of our past fintech SaaS projectsWhy preview word document in browser for the Healthcare Industry
The Hospital Management System most often encounters a large number of documents, images (X-ray, ultrasound, patient's photo, etc.). In addition to different types of documents, they also more often than usual have unusual formats that cannot be processed using classical solutions.
Х-rays saved as an image on the server, which can be previewed in the browser in the healthcare SaaS project.
Is it secure to open doc in browser for preview?
We would like to draw your attention to the fact that in the off-the-shelf solutions have a big security issue since you have to send files to third-party services, so our team solves this problem on its own in order to save data on a personal server.
How do we ensure the safety of your data:
File transfer occurs via HTTPS / SSL;
Safe storage with Amazon S3, Google Cloud or Microsoft Azure;
For secure storage solutions, our team prefers to work with Amazon S3 due to features such as:
Low latency and high throughput;
Storing objects with 99.999999999% reliability across multiple AZs;
Resilient to events affecting the entire Availability Zone;
Estimated 99.99% availability throughout the year;
Availability guaranteed by Amazon S3 Service Level Agreement;
SSL support for data transfer and data encryption at rest;
S3 lifecycle management to automatically migrate objects to other S3 storage classes.
Off-the-shelf solutions: pros and cons
There are free online doc previews. Unfortunately, there are only two and none of them is perfect, but they greatly expand the possibilities. So here we have our money savers: Google Docs and Office Web Apps.
Preview files with Google Docs Viewer
This is not an official solution, this means that Google nowhere gives you documentation on how to properly use this, but developers somehow found it out anyway, despite that Google Docs Viewer isn’t supported anymore it still works!
Pros:
Many supported file types, probably you’ll find every file type you would like to preview: images, videos, text, code, Microsoft Office file types, pdfs, Adobe file types, svgs, font file types, archive file types and more;
25MB file limit;
Works on every popular desktop and mobile browser which is very important if you want to make a preview on mobile devices.
Cons:
Along with the lack of support from Google it likes to throw random errors which will result in no preview at all, what’s more… there’s no way of checking if it failed or not, your inline embedder won’t give you any information about it (no browser event or anything);
As you might know, Microsoft file types like .ppt, .doc, .xls, etc. are not Google file types so… It has some problems with displaying it, but don’t worry It’s not like they’ll not show up at all, just for example in .doc’s files, some images might jump into the next line/page instead of showing in a row.
Preview files with Office Web Apps
Microsoft also gives its solution to preview files on your website, surely it’s the best option for Office types files because it’s the best at parsing them into HTML.
Pros:
Faster loading than Google Docs;
Always successfully displays the result - no random errors;
Most accurate .docs and .ppts parser.
Cons:
Supports only Microsoft Office file types: .ppt(x), .doc(x), xls(x);
10MB limit for docs/ppts, 5MB for xls;
Low (or none) support for mobiles, throws errors, doesn't display anything and it's not responsive below ~700px width.
Perhaps, you think that it is more complicated and expensive to create a custom solution of document and file preview. We can assure you that it is not that scary as it sounds plus it is much more secure especially if you deal with personal info.
Our Experience in custom document previewer for browser
For the project we encountered, it was required to implement a component for previewing documents of the following formats: jpeg, png, tiff, pdf, xls, xlsx, doc, docx.
Wherein, the component must have the following functionality:
Page through the document, scroll;
Enlarge / Reduce Document Page;
Download document;
Print document.
Since the documents are confidential, they should not be processed on third-party resources.
World document preview
The diagram below shows two processes. The first is loading documents with their conversion. The second is opening documents for preview. They can happen one after another, depending on the interface, but also loading and converting can happen only once, and the preview can be performed repeatedly.
In the first case, the user uploads the document to the server, which is saved in the file server as an original. Then the webserver sends the document to Gotenberg, which converts it into pdf. As a result, we have two documents - original and converted. If the original is not needed, it can be deleted.
When the document has already been saved in pdf, the webserver writes all the necessary information to the database to bind the path to this document, depending on the task.
As for the preview, in this case, the user clicks on the preview button, thereby sending a request to the webserver. In turn, the latter sends a request to the database, which already has all the information, including the path to the document. If the server gives a positive answer, then the document can be downloaded and sent to the browser, where it will be displayed using the Javascript libraries.
Download and preview user documents - sequence diagram
Next, we had to develop a second process, where there is a document template and it must be filled in automatically. In this case, the user sends the ID to the webserver and the required document. After receiving the template, the webserver starts replacing the keys with user data that we get from the database.
The final version goes to Gothenberg, where it is converted to PDF. After receiving the file, the web server sends it to the file server to save. As in the previous case, the webserver records the path to the document in the database. Thus, at the next request from the user, a ready document will be found for further use.
Preview generated documents - sequence diagram
Now let’s review the development process in detail.
Client-side implementation (frontend, Javascript)
At first, we faced an issue that the browser does not support all formats. That means, the browser can only show pictures and PDFs, but the rest cannot (tables, Word, tiff). For any exotic, the system can be modified by adding a converter from it to PDF.
For implementation, we adhered to the following principle of work:
To display a PDF document, the @mikecousins/react-pdf component is used;
If you need to display a picture in PNG or JPEG format, then the jsPDF library is used, which creates a PDF file;
If you need to display a picture in TIFF format, then the tiff library is used, which converts the image and transfers the data to jsPDF;
The print-js library is used to print PDF files.
In this case, we used libraries such as:
jsPDF - used to create pdf files;
@mikecousins/react-pdf - react component, used to display pdf files;
TIFF - converts a tiff image to canvas;
Print-js - print PDF files;
File-saver - for downloading files.
Server-side implementation
Many libraries did not fit - they had problems with encoding in different languages, formatting was not fully supported (colors disappeared, text indents were violated, italic font, etc.).
The solution was the open-source project Gotenberg, which works like a charm, it is based on the LibreOffice engine, so it does not have such problems. Gotenberg is a Docker-powered stateless API for converting HTML, Markdown, and Office documents to PDF.
Preview Excel document with graphs
Our team had two tasks: just display the uploaded documents, and secondly, display templates with an attached database, with which the template is filled in automatically.
Since the generation of documents based on a template occurs in Docx format, which is essentially an archive with XML files, we use the Docx4j library - opens documents from open office and MS office and then you can work with them in Java, you can modify the document and then save it to the server.
Contents of docx or xlsx files
The docx, xlsx file format is a zip archive containing XML text, graphics, and other data.
Summing up, for the server-side implementation, we used technologies such as React, Java, Docker, Gotenberg.
Final Thoughts on how to preview a document in web browser
When looking at the task in detail, the implementation of document previews in a browser does not look like a complicated process if the security conditions are met and the right technologies are selected.
However, if you do not use ready-made solutions to open a word doc in the browser, then it is better to use the help of an experienced team that has already solved a similar problem. Ardas is ready to assist you in a display word document in the browser as well as file previews for your project. Please contact us for details.
Originally taken from https://ardas-it.com/how-to-preview-document-or-file-in-a-browser-for-saas
0 notes
Text
How to Make a Chatbot in Messenger: Main Benefits for Your Business
The classic scheme of communication of any business with a person has always been through the phone. If you needed a plumber, you called the service and ordered, or if you wanted pizza at three in the morning, you called too. The telephone was the main channel of communication and service to people. Further, with the advent of mobile phones, it was transformed into applications. First, there were help desks available through the browser, then there were smartphones with an endless number of applications that we download daily.
A huge number of applications on the phone lead to an inconvenience of use since for each separate restaurant or cinema, you need to open a separate application to contact the operator. This is where chatbots in messengers come to the rescue, which solves the issue of centralization, and now in the same application where you communicate with your loved ones, you can book a table for the evening in your favorite restaurant. What you need to create a chatbot in a messenger application and what are the benefits for your SaaS project, we will consider in this article.
8 Benefits of Chatbots for Businesses
With the advent of chatbots, there have been many changes in the business. Companies and customers are interested in this tool, but not always keep up with the updates in the industry. Let's look at why brands are implementing chatbots, what they are guided by when creating them, and how a chatbot can help a business.
Link openness is much higher than email.
Faster communication with the client (everyone is now hanging on social networks).
You definitely won't end up in spam.
People are pissed off by the red dots of an unread message, and they often open messenger to watch.
The chatbot can immediately reply to messages without delay in opening mail. Therefore, the client does not have time to "cool down" - efficiency is now winning.
During webinars, there are technical issues that are quickly resolved through the messenger.
Bot creates the illusion of personal communication with clients.
You can quickly pick up your chat history.
How Does a Chatbot Work?
80% of companies in the world have created chatbots or plan to use them in 2020, follows from data from Oracle, a leading American corporation, as it's the world's largest software developer. According to Facebook, from 2017 to 2018, the activity of correspondence using chatbots increased more than five times. The reason for the popularity of chatbots is obvious - they keep the user engaged, provide more reach, and reduce the amount of routine work dramatically.
Many experts say: "Make a chatbot - you will sell." But it's not that simple. A chatbot can sell, but if an unprepared person immediately clicks on your Facebook ad button, gets into the messenger and the chatbot writes to him: “Buy my socks. This is the price,” - this person will probably not buy anything.
The reason is not that he does not need the product - he went through an advertisement. It's just that the user is "undercooked" enough to buy from your chatbot.
What can a chatbot in messenger really do for SaaS?
Greet the customer;
Pull up answers by keywords;
Delayed mailing;
Answer questions, help choose programs, products;
Segment your audience;
Count discounts, promotions, test results, and so on, depending on the choice of the answer;
Sell to the person's preferences.
Building a Chatbot from Scratch
This is the landscape of the chatbot industry, created by the American service KeyReply. It reflects the key market players and tools for developing bots.
For comparison, we will consider several options for instant messengers in which you can create chatbots. For example, Viber chatbot technology:
The client writes a message to the chat, which goes to the Viber server;
Viber accesses your server via an HTTP request;
Your server provides an accurate response to this, which goes back to the Viber server;
The answer comes to the chat.
Why is it necessary to understand this scheme? Firstly, many clients think that when they create a chatbot in a messenger, it will immediately become super-smart and will answer any questions. This part depends entirely on your server. The logic of answers is built from the client's side and it depends only on you how many questions the chatbot can answer accurately. In this scheme, any messenger is just an intermediary.
The Step-by-step Guide to Creating a Chatbot
To create a bot, follow these steps:
You need to have an active account in the messenger;
Register with the local Admin Panel where chatbots are created;
Fill out a questionnaire about the future bot. Usually, the questionnaire contains such fields as:
Account Image - community logo;
Account Name - the name that will be displayed in the header of the bot;
URI - by which the bot can be found.
Obtaining a token to work with the messenger server, it will be used to authenticate the request to the messenger API.
Setting up a web server and connecting an SSL certificate;
Installing webhook, this action is performed once; Webhook reports the following data to the Viber server:
A server address and endpoint that will receive messages from clients;
A list of events that the server will listen to;
Token;
Verification and publication of the chatbot.
What tricks you might face with chatbots for business
Сreating a chatbot in a messenger application, you need to understand the features of each and choose the one specifically that does not limit your possibilities as much as possible.
Be prepared for messenger platform limitations
Please note that each messenger has a number of technical limitations and if you are not ready for them, then you should seriously consider another chatbot option. For example, a ban from WhatsApp can be obtained for:
Sending a large number of messages at the same time. This is one of the main reasons when 100+ of the same messages fly from the number at the same time - WhatsApp algorithms calculate this easily.
Negative user reaction. If you are spamming, then 3-5 clicks on the "Complain" button are enough to block your number.
The client will work on any device with an internet connection and Docker support. For example, simple testing can be performed on a regular laptop. The minimum server requirements for the production environment are 250 GB SSD, 16 GB RAM, Quad-core CPU.
In general, the database should be running on a separate physical server (not where the Coreapp and Webapp containers are located). The admissible delay in data transmission between this server and the computer is no more than a few milliseconds.
Viber has its own list of restrictions that you should pay attention to:
Messages can be sent to all users who are subscribed (the user subscribes when he sends the bot the first message)
The maximum size of a JSON response is 30kb
The bot can send the user up to 100 messages per hour, the message counter is reset after the user replies to the message
The ability to send bulk messages opens only upon application and approval from Viber account managers.
The maximum length of the list of recipients of a mass message is 300 people, each such request can be executed up to 500 times in 10 seconds
If the user fails to deliver the message, Viber will attempt to resend this message for 14 days.
How can you customize your chatbot for SaaS?
Information management
There is no need to count on the fact that you will have a chatbot that will understand any of your text, written as you like. Most chatbots are not equipped with such cool intelligence. The overwhelming majority is somewhat reminiscent of USSD menus in SMS only in an improved version.
To control the bot, you, as the bot creator, must assume some kind of scenario. The user needs to send a command to get the desired result from the bot. When the bot receives the command, it will process it and react according to the scenario you have set. But imagine that the user wrote a command with an error, the bot, in this case, should warn that the command is not recognized and ask to try again. This is not entirely convenient for the user, and he can go looking for another bot with similar capabilities. You can lose a potential client, that's not good.
In this case, keyboards will help us. It just needs to be displayed to the user after the start of the dialogue with the bot, and when he clicks on the button he needs, the correct command you put in will be sent to the bot. In this case, we avoid possible mistakes, the bot interface looks more welcoming and professional. The quality of the bot is improved.
With each message, the bot can send a different set of buttons, both in terms of quantity and purpose. Buttons can be positioned directly below the message (InlineKeyboardButton) or docked below the text box for entering a message (KeyboardButton).
Receiving the information
In addition to text messages, bots can communicate using:
Images;
Audio files;
Video files;
Lists;
Carousels;
Buttons;
Receipts (for example, for a purchase);
Templates (often used when booking something, for example, air tickets);
Navigation menu.
Users can reply with text, emoticons, GIFs, images, audio, video, and pull chatbots into group chats.
What if the chatbot doesn't know how to answer the question?
Developers build a conversation map and, depending on the question, the person is given an automatic answer on websites, messengers, or applications. A chatbot is most convenient to use where processes are properly structured. For example, to buy a train ticket. Since the possible routes, schedule, availability of seats are known, the dialogue map is easy to build, and system errors are reduced to zero.
When the webserver runs out of answers to the customer's questions, the webserver can connect the operator to the chat. Each question of the client and the answer of the operator, the web server can save in the database for optimizing the bot.
The chatbot can answer questions based on the user's correspondence history or respond with prepared response templates.
Each new user will have an empty correspondence at startup, at which time the chatbot can send only one greeting message. When the user sends their first message, they automatically subscribe to the bot. Each message can contain an arbitrary keyboard with options for actions. Since each user has a unique ID, the web server can rely on the saved correspondence history of a particular user and, based on the history, send different responses to the client, or help the operator to join the conversation without the user noticing.
How to create a smart chatbot?
All messages entered by the user are transmitted and processed on the webserver. The web server can return an arbitrary keyboard with buttons, each button can perform some action, for example: go to the site, create a new message, write the user's mobile phone, write the user's location.
The simplest chatbot should have its own knowledge base, which is a set of possible user questions and their corresponding answers. The chatbot can select responses in several ways:
By keywords;
By phrase coincidence;
By a coincidence of context.
A kind of mini-problem for such simple bots is the identification of word forms and synonyms.
Dialogflow
Writing AI for a bot is not an easy task, so you can use a solution from Google. The following functions are available:
Creating answers to standard questions;
Creation of topics of conversation for non-standard or specific requests.
During the conversation, a suitable dialogue will be selected;
Training (adjusting bot responses based on the chat history);
Analytics (number of requests, the course of the dialogue, which topics are most often triggered).
Supported languages: English, Russian
Integration: Viber (deprecated, they suggest using the library for Nodejs), Telegram, Skype (deprecated), Twilio (deprecated), Facebook, Slack.
Aimylogic
Excellent service for creating all the familiar "text" bots and unusual bots for calling (for a paid plan). Fun but difficult to learn features like intents and entities. Suitable for creating AI and taking over the world.
It lacks the usual functions: a basket, creating an inline keyboard, sending a file, but you can create a bot that will guess what they write about.
Supported languages: English, Russian
Integration: WhatsApp, Facebook, VK.
Final thoughts
WhatsApp, Viber, Telegram, WeChat, Line, Facebook Messenger, and others. These messengers are convenient and they have become a familiar means of communication. Every day they fill our daily life more and more. We communicate with friends and relatives, colleagues in chats. And it became commonplace.
Thanks to the digitalization of life, all our affairs, events, entertainment apps are in our favorite smartphone and messengers. And why?
Because 60% of users who want to place an order for a product, product, or service prefer to write a message rather than call. Of these, 30% use instant messaging. It is not surprising that instant messengers have confidently begun to overtake social networks.
First, we stopped calling and switched to text communication, now we stop writing manually, and with one click we select from the suggested answers by the chatbot.
The main thing is to comply with the restrictions and try to create a chatbot as smart as possible. If you still have questions on chatbot development, our team will gladly take this headache away from you.
Originally taken from https://ardas-it.com/how-to-make-a-chatbot-in-messenger-main-benefits-for-your-business
0 notes
Text
How to Find a CTO for Your SaaS Solution?
CTOs are on fire with enough organizational and technical skills to create and manage a company. CTOs are often industry veterans with years of experience in managing and running a business. On the other hand, it can often be inexperienced but talented programmers who have turned their passion for programming into a business. This article will help you better understand the function and role of CTO in a SAAS product and how to find the very professional for your project.
The Mission of a CTO
We live in a time when the IT industry is very actively being built today, consisting of a huge number of IT products. There are a lot of them now and more are appearing. Each of them requires a CTO. In all countries, the problem is with the staff, it’s hard to hire IT people and all the more difficult to find good and experienced ones. Obviously, without competent technical management, any product can disappear. As a result, the whole business will suffer.
Creating a software product is a production and it cannot work without a competent manager. Under no circumstances should this product be left without CTO. Although sometimes there are products that survived and even develop well, despite the absence of an obvious CTO. This happens not because this position is not needed, but because it is implicitly distributed among several employees and often the owners do not even realize it. Hiring a good CTO is a big problem. This problem would be less if the owners very well understood what exactly and at what moment the service station should do. 40% of the problems occur because the wrong person is located at the service station.
CTO duties
Full Technical Responsibility - СTO Responsible for all technical solutions that are used in the product. And most importantly, for all their consequences.
Management of development priorities and development plan - it depends on the CTO in what order the requirements will be developed. This is not to say that only networks determine a development plan because it is primarily determined at the level of the product and business, that is, marketing by the director or product manager. The CTO adjusts the priorities and the plan taking into account all the technical features that affect the development, most often these are technical dependencies that do not make it possible to develop according to the most desirable plan for the business.
Responsibility for the cost of development - it is the СTO that answers investors for the cost of production and answers questions why it costs so much and why you need to develop something without which it is possible the business can live and also participates in determining the development budget and makes estimates for future development.
Political and diplomatic responsibility is to communicate with clients if necessary. Either with investors in case of raising money or with other products with which it is necessary to integrate and some complex technical issues arise. Also with any business representatives who require contact with a person representing the production.
Why Does Your SaaS Solution Need a CTO?
You can work without CTO, but you can’t work without its functions. Therefore, in small and medium-sized products it so often happens that there is no one particular dedicated chief technology officer. But this does not mean that no one is fulfilling his duties. In such companies, often all technical issues lie with the “technical lead”. All financial and political issues are dissolved between the CEO and the Project Manager. By the way, most often in the process of product evolution, a project manager appears first who begins to perform as a CTO, and only with further product growth and staff increase do separate dedicated service stations appear.
For example, in Stripo.email, one of the products we are developing, there is no concrete chief technology officer and never has been. Despite the fact that the total staff is already 28 people. His responsibilities are distributed between a very strong project manager, an equally strong tech leader, and CEO. Another example is the SaaS product esputnik.com in which more than 80 people and 40 of them are developers, and this product already has a dedicated chief technology officer, which no longer serves as a manager or as an analyst.
Why is it Hard to Find a CTO?
The functions of the chief technology officer are always at absolutely any stage of the product a question in their scale and complexity. In my experience, it is better to distinguish three phases of a product that differ fundamentally in how CTO should work.
Phase 1 - Startup and MVP development
As a rule, it lasts up to six months. If you release the first version for more than six months, then you already have problems and you need to urgently review priorities. This stage is characterized by the fact that:
Not enough money; there is always not enough;
The business model was not found and not proven, so the speed of change and experimentation should be very high;
The team is very small and should be minimal in order to fit into a limited budget;
You need to develop it in quick and dirty mode, in order to start checking the market faster and not investing in excess quality, reliability, security, and stability.
Phase 2 - Post MVP stage
The first customers appear, which means that absolutely real feedback starts from them, which must be taken into account - development goes from “imagination-driven” to “customer-driven”;
The goal of this stage is to gain marketing traction - that is, to do everything you need to prove the viability of business models;
The business is constantly in the brainstorming mode and within 1-2 years there may be several pivots that require a drastic change in the development strategy.
Phase 3 - Mature product
This is not necessarily a product that works in plus or goes to 0, it can even work in minus, it has not yet returned the investment. But the most important thing is that the business model is fully proven and there is a very specific increase in revenue;
Business security is of paramount importance as well as its stabilization. The emphasis should be on protecting the product from all sides;
As the number of clients grows, performance, server database architecture, and overall application speed begin to matter. Because of this, you can lose customers;
Delegation business processes begin to line up actively, and so on - new posts appear, the product begins to grow in people where there was no need before;
At some point, business processes begin to streamline.
IMPORTANT: Before hiring CTO you must understand very well at what stage you are depending on which different people will be suitable.
Now let us consider in detail the function of SRT at each of the stages.
CTO in a startup
Creating MVP and especially its cost are very dependent on CTO. Choosing technologies, teams, building a development plan taking into account all priorities and all business requirements leads either to the successful creation of the first version of the product or to complete failure. Startup cost savings of 90% depend on CTO. For a startup, this is critical because there is always not enough money to cover risks and unpredictable events.
Oddly enough, CTO in a startup should be a salesman, and he will have to sell confidence and reliability in it as a Technical Leader to investors. Indeed, investors in the person of CTO will see the person on whom the technical success of the project depends. CTO comes to all meetings with investors, answers technical questions, and does everything necessary to instill confidence in technical success.
CTO in a startup is not so much a manager as a jack of all trades. Most often, the development team consists of either one or several people and there is no one to manage, instead, he must do it himself. Therefore, the best CTO in a startup is a techie with extensive experience in development and preferably knowledge of different technologies.
All of the above does not at all seem like a classic understanding of the role of CTO. It is rather a very technical lead, a little salesman, entrepreneur, creative person all rolled into one.
The worst mistake of the chief technology officer at this stage: it is inadequate to spend money - to recruit a lot of people to build some kind of unnecessary processes, develop unnecessary functionality, develop what is not verified by the market and what is difficult to sell, allow yourself extra experiments. That is why one cannot take directors from large established and mature companies as STO startups. They are used to working in other modes and are not used to being sprinters.
Qualities that a CTO in a startup should possess
From the point of view of the Adizes system, CTO is:
Producer. Because it should quickly and efficiently produce results;
Businessman. Because it should be flexible and entrepreneurial, not afraid to take risks, look for new effective ways and solutions;
Administrator and integrator. At this stage, almost no need because there is no one to manage and no one to integrate. For small teams, these qualities are needed to a minimum.
СТО on the post MVP stage
At this stage, CTO should ensure that the feedback from the customers of the product is implemented as quickly as possible and the product begins to satisfy their expectations as much as possible. In the beginning, most likely the development of promising functionality will recede into the background or maybe suspended altogether.
Now, most likely, the product either pays for the development or there is an investment, therefore the development goes into the budgeting mode and CTO should manage the budget as competently as possible.
We will have to work very closely with marketers in order to ensure maximum product compliance with the market, so CTO should be as business-driven as possible. Each pivot will be a serious task for him.
Since at this stage most of the money goes into sales and marketing, CTO should provide support and maintenance of the product with a minimum budget without spending money on the development of what does not provide marketing benefits.
If the product is successful and growing, then CTO will have to recruit people to conduct interviews, begin to form a team and fine-tune processes. Most likely at this moment, he will still be personally involved in project management and analytics, but gradually this will have to be delegated. If all is well, it is at that moment that CTO begins to transform into a manager.
The worst mistake of the chief technology officer at this stage is to be focused on something other than making the product as adequate as possible for the market and going through the stage of establishing it as a business.
Qualities that CTO should have at the post MVP stage
From the point of view of the Adizes system, STO now becomes:
Integrator. Stronger than at any other moment because if the project is growing you need to recruit people, you need to form a team, you need to start delegating. And at this moment it is important not to lose efficiency and create a good cohesive team, it is here that it is important to be an integrator more than anyone.
Producer. It is very important to stop them is to stop doing everything on their own because CTO will turn into a neck bot on all fronts, in which case development will be simply impossible.
Businessman. Now, to be an entrepreneur, you don’t need to do other things with all this and focus on production and the team.
Admin. It's time to start being an administrator because without it it is impossible to manage other people. It is especially important to correctly combine the administrator and the integrator in yourself.
СTO at the mature product stage
As a rule, at this stage, the product sharply begins to technically not satisfy the business, because it was developed according to compromise principles with a minimal budget in high-risk conditions (what we call quick and dirty). Now CTO has a lot of work because on all fronts it is necessary to modify the product and sharpen it under the growing customer traffic, growing loads.
Typically, this is associated with the following tasks:
Poor code quality and product architecture. CTO must properly organize refactoring. Now refactoring is an integral part of the budget and part of the development process.
Security is a very complex and extensive topic requiring audits, fixing a large number of problems. And when the project is noticeable, security holes should never be left behind as it can be fatal for the business.
Load scaling. Most often, this means that it is necessary to redo the entire architecture of the backend, its complexity increases many times over, big decision date is introduced, etc.
Test Automation. Most likely, before that, there was no budget to automate testing, but now that the complexity of the system has increased many times, the number of people in the team has increased, the number of developed functionality has increased, you can’t categorically rely on manual testing. Firstly, it is expensive, and secondly, it is very difficult to ensure a high-quality product. Automated test coverage is now becoming an integral part of the budget and a new development standard.
The worst mistake of the chief technology officer at this stage: This is if he does not have experience in developing large complex products, he decides to work in the old way (i.e. Quick and dirty) and does not understand how important it is to switch to a professional development model. Most likely the project will not survive for any of the above reasons - it just loses the technical competition.
Qualities that must be possessed at the stage of a mature product
From the point of view of the Adizes system, STO now becomes:
Integrator. You will have to continue to be an integrator if you want to create self-organizing teams and not spend a lot of time on its management, but also on solving all the problems of the human factor.
Producer. At this stage, nothing has remained of the producer for a long time.
Businessman. Likewise, entrepreneurship is not at all necessary at this stage.
The administrator will have to be exactly the extent to which your team has still not become completely self-organizing and most likely it will never become completely as it is a utopia. Therefore, the entire list of administrative skills must be in place. Always have to manage teams with people with a low level of awareness and poor motivation.
The problem of transition from stage to stage
The biggest difficulty of the transition is that it never happens at the same time in one day. This is usually a process that takes months, maybe even years. You need to be able to transform yourself and transform the team on the one hand without harming the business, that is, gradually, on the other hand, quickly enough and without wasting time.
The most unpleasant thing is that most likely the same person will not be able to stretch the product through all three phases, turning from a startup to other types until a mature successful company with a large staff. This is due to the fact that good talented technical managers and creators are unlikely to want to turn into an administrator and an integrator because they will have to give up their favorite business and do something else and it is unlikely to be a pleasure.
And most likely it will turn out that the product in order to effectively go through all three phases will need 3 different people.
Best Way of How to Find a CTO For your SaaS
You can outsource the CTO function. At first glance it seems that it is impossible at least for the following reasons:
Investors very often require the CTO function to be inside the Core team (or business team). In most cases, they also require that he be in the country where the investor is.
Often, outsourcing companies simply do not offer the CTO function as a service, since either they themselves cannot do this because they do not have the expertise to develop their own products, or do not have the ability to delve so deeply into their customers' products.
If your product is at the stage of a mature business, then it is definitely too late for you to think about the outsourcing of the service station and it should be on staff and work full-time. However, for startups and for products in the post-MVP stage, it is often difficult to find a good CTO either expensive or unrealistic. And at this point, CTO outsourcing can be a very good solution if the outsourcing company is able to do this.
For example, our company offers to block all the functions of service stations for investors and founders who themselves cannot do this. Because we have experience in developing our own products and we understand this cycle from beginning to end. We have experience in this both from the point of view of technology and from the point of view of the business. We can afford to provide this service for SaaS development, which is very atypical for an outsourcing company.
Our experience shows that it does not matter whether CTO is with the team. With a sufficiently large team, it is much more important than the project manager is with the developers. In completely distributed or remote teams, it is generally impossible to be with the team, although we generally do not recommend creating your own distributed teams for complex and long-term projects. Sooner or later it turns out to be ineffective.
Final Thoughts
Finding a CTO in your field is a rather difficult task. A great CTO for one project can be completely incompetent for another. And even keeping one specialist from the moment of the startup to a mature product is also a rather difficult task. The stages of the project and the functions that the chief technology will face should be taken into account.
And if you still looking for a chief technology officer for SaaS development, let's discuss this. Fill out the form below, we will answer you quickly and think about what can be done for your product.
Originally taken from https://ardas-it.com/how-to-find-a-cto-for-your-saas-solution
0 notes
Text
Touchless interface as a new age UX approach or a communication method for a SaaS front end
This article will tell you about some of the approaches and development examples dragged around how to build a touchless user interface for saas and show how and where it can be applied.
What is a touchless interface?
The touchless user interface meaning is quite simple and we are sure that you face it even with your devices from time to time. Usually, touchless UI for saas is used either for biometry, avatars, animojis, social media, or security. All the solutions of saas touchless user interface technology have always fought and will fight for a convenient, user-friendly interface. This is due to the fact that we are developers of IT products that always strive to save people time and make their work easy and understandable convenient and fast. And today we live in that very happy time when finally you can start making a saas touchless UI solution that will not cost a lot of money and can be implemented in a fairly short time. It used to be extremely difficult and expensive. Today it is much cheaper mainly due to the development of Open Source.
The touchless interface is also good for reasons of hygiene and is especially convenient to use in places of high traffic, large crowds, big cities, as this allows people not to touch the same places.
Touchless UI use cases for SaaS
There are 4 fundamentally different applications:
For example, Retail business, shops, or any other location where you need to serve a client, advise him, and eventually make a sale.
Information projects. For example, kiosks standing at the airport or in some other places that allow a person to receive the necessary information about the city or about tickets or flights. As an option, these can be educational projects located in museums or educational institutions where a person approaches the device and makes inquiries and must receive information.
Contactless control system for any device. Most often these are IoT projects, where a person interacts with some device and manages it without pressing buttons (ie “touchless”).
A separate very specific category is simulation training systems, where the task is to simulate a situation and teach a person how to act in it.
Over the past 3 years, we have gained experience in developing systems in all four categories, and in this article I will overview what solutions can be used for all types of such systems.
Features of touchless UI
Most of them are known and now we use them daily in our phones, intercoms, and other devices. But let's take a closer look.
Face Detection
One of the simplest and most common is the definition of a face. Detection is fundamentally different from Recognition in that it only determines the fact of the presence of a person. So we can fix that a person is next to the device but we do not establish his identity, that is, we do not recognize his identity by his face.
Naturally, this requires a constantly-on and active camera that continuously supplies a video stream, and the software continuously tries to determine if there is a person in the frame or not. To determine the face, you do not need any particularly good camera quality. You can use almost minimal or medium resolution, and the quality of the picture itself does not matter, as the face detection still works in black and white. To get normal pictures in the dark, use infrared illumination This should be built into the camera itself.
Detecting intention
Also, the rule of good form is to track the intentions of a person. You should not react instantly to the appearance of a person in the frame because a person can pass by and do not want to use the device at all. In one of our projects, we decided it is very simple. We made a 2-second delay if the person is present in the frame for more than 2 seconds from the moment of determination, then we believe that the person has stopped and you can start interacting with him. By the way, in this project, after a delay, a video call was made to a call center and for this we used Twilio.
Line of sight, emotion, age, and gender recognition
You can go further and respond to other facial characteristics such as age and gender. Open Source already has projects that vary qualitatively determine gender by face and pretty well determine the age range. It’s impossible to determine the exact age today. We are currently working on a retail project for stores where age and gender are used to personalize content. Another option is the direction of the person’s gaze and his emotions. In the Open Source world, there are already models that recognize human emotions that can be quite easily used for various triggers. For example, depending on the emotions of a person, you can offer various content, offer or not offer to advertise, various products are possible, give an assessment of the quality of service and do some other things.
At the moment, we are working on a project where the direction of the gaze of a person standing in front of a large monitor is determined. We do this without using VR technology or Microsoft Kinect, i.e. only through a camcorder. With the help of this development, you can attach the mouse cursor to the direction of view and the person will use the eyes to move the cursor on the screen, and to press it, he can stop and delay for a while. This approach has long been used in virtual reality systems, but it is much more difficult to implement it only with a video camera without additional devices.
Face recognition
If it’s not enough just to detect a face, and you need to determine the identity of a person, for example, to establish specifically the user who approached the device, then full recognition is needed. Such a task is much more complex and will require a server since it is unrealistic to do this in the application because it is necessary to keep a large database of people and the local machine or mobile device will not cope with such a load.
Voice Recognition
Voice recognition is a bit more complicated, but it is now very interesting for many projects because it speeds up and simplifies interaction with the software. Here is the first question: can this be implemented in the application itself in our case using javascript or will it be necessary to create a server that will process the voice and return a response? Two options are possible here:
if you need a fixed set of standard commands - this is generally easy and an application is enough for this (a server is not needed). Also, if you need to make voice control with a relatively small set of specific commands, this can also be easily solved without a server. But it will be necessary to train the neural network specifically for the teams needed in this project.
If you need a large number of specific words (for example, street names) or support for several languages, you will have to create your own server that will process this voice and pay extra for a neural network. This is likely to be a big complicated expensive project. Therefore, it is more logical to use existing services such as Google or Azur. Of course, they cost money, but for a startup or for a project at an early stage of development, this is much less risky.
Palm and finger gestures as a way to operate interfaces
In some cases, it may be convenient to control the program using hand gestures. Already there are developments that do it well enough. The model is trained and the recognition accuracy is high. Our favorite technology stack to implement this Python along with Keras + Tensorflow / Theano + OpenCV.
Body gesture recognition
A more exotic option is to manage the product using gestures of the whole body, such as arms or legs, or postures that a person takes. This is unlikely to be useful for a classic program. But it can be widely used to develop simulation systems. We had a project where we had to do Tracking of referee's gestures for training soccer referees - in this project we used virtual reality with HTC trackers and with the help of them we determined both the person’s running speed and all the referee’s gestures. For simple gestures, elementary geometry is sufficient. But if you need to distinguish a wide variety of complex poses and gestures, you will have to develop artificial intelligence and then train it.
Custom hardware
For all such projects, in 99% of cases, a video camera is used, which must be integrated into the device. The video stream needs to be correctly processed and either sent all to the server or processed on the device itself or sent only individual frames; for this, you often have to deal with the hardware part. We work with a company that has extensive experience in the development of electronics of this nature and especially specializes in processing video data. Therefore, if your task requires software and hard, we can easily do this and create a device from scratch or modify existing ones and also develop all the necessary soft.
Technologies we use for touchless user interface development
In most cases, all this will work on a tablet or phone that will have either iOS or Android. But also it can be any other device on which most likely there will be either Android or other Windows or Unix operating systems. In our projects, we have come across devices on iOS as well as smartphones and tablets on Android, but also absolutely custom devices on Unix.
React Native
To develop applications on all of these operating systems, we use React Native because, firstly, it is a javascript that many people know, and secondly, you can compile the project under Android and under iOS and standalone-application under Windows or Unix. We believe that today this is the best solution because it allows you to overlap all operating systems with one source code, while it is very common much easier to find developers and there are a huge number of components and libraries for it. For react native, there is already an Open Source development of the definition of a person in the frame. This is a simple task that does not require a large number of resources, so a server is not needed for this and everything can work in the application itself.
Twilio
We really love this service and after using it in several projects we learned how to work effectively with it. When we develop a SaaS application that requires video calls, we definitely choose Twillio. For maintenance tasks, the touchless interface in combination with Twillio video calls can quickly and fairly cheaply develop an application that connects a user with any kind of agent or consultant. If you add voice recognition with voice bots to that, you can fully automate the process of consulting and communication. By the way, in Twilio there is already the opportunity to create AI bots to automate customer service.
Our Experience
We had a project in which we developed a server that accepts photos of people from the device and our task was to recognize people from an existing database and also replenish it. This device has been used in various company schools or other institutions with a limited number of users. All were entered into the database along with their photos. Our server received the image from the device’s camera, calculated its features, and searched the database to find the most similar face. Thus, we were able to determine with a 70-80% probability which the user was suitable for the device. And to ensure such accuracy, we needed the Dlib libraries. For the Production mode, such accuracy is not enough, and to increase we collected photos from our users, saved their properties in the database, and with them made our solution “smarter” to increase recognition accuracy. This project Soapy is an excellent device, and we hope that great success awaits them!
There was another project, where we developed voice control systems, where we trained her several key phrases with a sample of only 10 people. The training was conducted in ideal conditions, and in production gave a recognition accuracy of 40-60%. Of course, in reality, many more different people are needed for quality training. But we were very pleased. The system perfectly-recognized our specific commands, despite the fact that it worked without a server; everything was done on the native react. The main conclusion that I want to make is that today's voice control is much cheaper than many people think.
Final Thoughts
For a team that develops various software, we simply do not have the right not to master the technology of touchless interaction with devices. This can begin with motion recognition and end with an understanding of voice commands and definitions of the retina.
One way or another, in the near future it will be present even in the most primitive projects. Our team has already begun to master this science and is making progress. Therefore, if this becomes part of your next project, we are ready for this. Share with our manager what kind of touchless interface technology for saas you need!
Originally taken from https://ardas-it.com/touchless-interface-with-recognition-saas-front-end
0 notes
Text
Importance of Working Out UI/UX SaaS Design
Today, there are a huge number of artists who are ready to take up the development of your site or applications. The enormous difference in the cost of the same project among different performers is striking because the price of a site starts at $ 100 and ends with space figures. In this article, we will tell you about the importance of UI/UX for SaaS, its components, about typical misconceptions and myths based on our personal experience working with clients, and help you determine the cost of SaaS product design so that you get exactly what you expect from the designer.
What is the Main Misconception Creating SaaS App UI design
Many clients think that development does not require preliminary interface design because the developer, in principle, can do everything himself. This becomes the main misconception at the initial stage that when using some standard components and approaches from the library, everything will turn out beautifully and conveniently at once. This misconception is most often encountered when creating startups because they are more limited in budget and try to save on everything. Often, the founders of startups do not really understand the values of different stages of development and begin to save on what cannot be saved. In particular, they save on the work of the designer.
It’s even worse when they begin to save on the analyst’s work because it’s the analyst who needs to figure out all the requirements and conceptually draw the architecture of the project, the screen and users, what functions will be, describe iOS cases and so on. That is, he prepares the first materials that are already delivered to the designer, and he, in turn, makes this a beautiful and convenient product. Since many customers like to save money on analytics, as a result, they skip this stage of design. The worst case is when they immediately begin to develop functionality, believing that the developer is professional, which means that he can do everything right as the client wants. This is a huge misconception.
Let's see if it is worth saving on UI UX design and what could be the consequences. What can be lost and what mistakes can be made if this is not done.
3 Myths about Design Practices of SaaS Application1. We are a small project - we don't need UI/UX design
The first myth is that the client believes that SaaS application UI design is something that is needed only for beauty and only for image and only for very large successful companies. In a small project, this is not necessary and you can just do it somehow and they will forgive you because you have no money. If this is a small company and no one knows you, and therefore everything may not be important if only it can work somehow. This is a misconception because users do not forgive the low quality.
2. Developers can design a product - we don't need a designer
The second myth is to think that a developer can do everything himself without an analyst and without Web Design Companies. This is absolutely not the case for two reasons. Firstly, the developer is a technical specialist who sees everything quite differently as ordinary consumers have completely different habits of using software products and a completely different level of readiness to deal with something difficult to achieve a goal that an ordinary person will not do. Secondly, the developer is a person who knows how to create a software product, but he does not know anything about a specific industry niche, about future users, about what market trends are formed, about that stack of products and solutions. Therefore, he cannot, by definition, do this. In the best case, he can make the application convenient and understandable for himself and for people like him.
3. It is too expensive - we are a small startup, we have no money
The third myth is to think that work on UI UX design is very expensive and you can really save on it. This is absolutely not the case. This work requires very little time, much less than it takes time to develop it. It is absolutely impossible to save anything on this.
Consequences of Believing in Similar Myths
The system will either be inconvenient and users will simply leave quickly. Or they won’t understand the rules of use at all, because the training that will be necessary is so long and long that it will demotivate people and they will go to competitors who are much easier. That is, if the product is not adapted to the behavioral characteristics of people, to their habits, to how they would like to use all this, then the probability of failure is 100%. Look at this image below - your customer is that little kid watching those cute fluffy asses rotating in a random direction :)
What is often ignored before starting UI/UX design
Too many companies that do not have real product experience in creating a product and launching it on the market and bringing it to a successful state, design an interface for reasons of component usage standards as recommended, plus their own vision of convenience.
This is wrong because the SaaS UI design of the interface should not be focused on your own tastes and not on your own concepts of convenience, but on the audience who should use this product later. Most designers and analysts are aware of the existence of standard components and some kind of classic interface solutions. They create a beautiful, but ineffective and inapplicable interface in this business because they ignore the following:
Your interface should be at least as good as the interface of your main and best competitors. But preferably even better, not much, but at least a little better. Sometimes this is enough for users to prefer your product. An example here is Airbnb and Booking, and one of the universally recognized advantages of Airbnb is its simple and convenient interface compared to old school Booking. Therefore, before we begin to design interfaces, we are sure to study in detail at least two or three of the best competitors of our client's product.
You can never do the style of appearance based on your idea of modern and good SaaS app UI design. All this must be taken at least from those competitors (or even not competitors), but from those products that have already worked in this niche for some time. Each niche has already developed its own stereotypes and its own trends and standards that must be taken into account. Your product should be a logical evolutionary continuation of the whole story, and not go into any new direction, but be at least one step better than existing products.
A good interface is always created only with a product manager or marketer who knows the audience of future users well, understands their daily needs, and understands how to build their work so that it is convenient for everyone. Complex things should be solved easily and beautifully. By the way, that’s why you can never trust developers to make an interface on their own. But even a designer by himself without a marketer will most likely not create a SaaS UX design that will be really user-friendly.
Often, to save money, the customer makes a static SaaS interface design, that is, a set of screens, instead of making at least a clickable prototype. This is an opportunity to try this interface precisely in dynamics and to realize all the routes through which the user will have to go through to do something. Such a prototype is a very cheap and effective method to test the convenience of an interface on a focus group. It is correctly planned routes that are 80% of the success of the interface because most of the time the user spends to understand what sequence of actions you need to do to get the desired result. And this is by no means just an intuitive arrangement of components on the screen. Although this is also of course important.
Important Conclusion
A high-quality interface is the fruit of the work of 3 people: a marketer (or product specialist) + analyst + UI/UX designer. Yes, these 3 heros save the planet and our brains from annoying and unusable interfaces.
Cost of UI/UX Design for SaaS App
In the SaaS development of the first version of the product, investors usually invest in hundreds of thousands of dollars if development takes place in the United States or Europe. In our company, the same thing will amount to tens of thousands of dollars. At the stage of launching the first version, startups have no room for error - there are no extra tens of thousands of dollars to redo the frontend. If a product does not enter its consumer because of the very complex learning process and development due to the complex interface, then the startup will simply have no money left to redo it. As a result, the project will have to close. Even if there is money, then at an early stage it is very inefficient to spend it on fixing mistakes. It would be much better to use them for remarketing in sales or simply in any other development of the project.
Our experience in SaaS Interface Design
We recently had a very significant case. We were approached by a client who developed his product for two years by a rather considerable team. There were about 4 developers. This is a lot for a startup. Four people developed a huge amount of functionality over 2 years, working monthly and without any single design at the level of products that would take into account marketing or usability. Therefore, they threw one functional on the second and added it wherever possible.
Thus, a huge number of absolutely uncomfortable pop-ups appeared some completely illogical interface solutions for simple tasks. To the developers, this seemed like a convenient solution and structured beautifully, but for a normal person who goes to work every day and needs to use this product, it was very very difficult and confusing. This client contacted us so that we could make a complete redesign of the entire system. Initially, there were about 40 screens and forms. After the redesign, we simplified it to about 27-30 screens and forms, while retaining all the functionality, we made all the chains much more logical, more compact without duplicate information. Everything became available in one or two clicks. For all this work, we spent about 3 weeks of work of one designer and one week of work of an analyst in analytics, that is, a total of 160 hours. At our rate, it is $ 5600. That is, it is less than the salary of one developer per month that this client paid for 2 years.
Therefore, it is obvious that it is impossible to save on design. After the redesign, 4 developers reworked the entire product externally for approximately 2 months. That is, for two months, four people worked to convert a bad design into a good one, and this amounted to about $40,000 - $60,000. As a result, it turned out that analytics plus competent design took about 10% of the time that you need to spend to remake the entire interface of the entire product. It would be simpler and more profitable not to save on design, do it right away and not spend the extra $40,000 - $60,000 to change the appearance. Please, take a look at this example of UI/UX design in more detail.
Final Thoughts
The main thing that any business needs to remember when developing a new project: the right UX / UI design thinks about the simple needs, motives, and goals of a person. A nice shell and convenient functions should work for a real person, simplify his experience of interconnection with the interface. Due to the constantly growing demand in the market, more and more specialists in this field are required, who are able to analyze the behavior of the target audience, to offer quality solutions to enhance usability. Our team will help you avoid many problems that you may encounter too late, and most importantly, it will significantly save your costs. If you need help with UI/UX design for any kind of your software, fill in the contact form below.
Originally taken from https://ardas-it.com/importance-of-ui-ux-design
1 note
·
View note