Bez kategorii

MVP application – Minimum Viable Product

MVP application – Minimum Viable Product

In today’s article, I would like to introduce you to what the MVP application is. Let’s start with a simple definition which is an abbreviation. This abbreviation means a product that represents the minimum acceptable value.

I often like to use real examples that are easy to imagine. Let’s say dear reader you want an MVP bike. This means that this bike has minimal functionalities that define it as a bike and you will not confuse it with a scooter. Thus, such an MVP bicycle has wheels, a frame, handlebars, a saddle, pedals, and a brake. What will the MVP bike not have? Derailleurs, auxiliary brake, lighting, bell, mirrors, it will not be made of light materials, etc. I hope you understand the main message. But here we come to a very important feature of the MVP product. The product, in our case a bicycle, will be fully functional, i.e. we will not say that it is partially done or non-functional. We can say that it is not very elegant, fashionable or comfortable, but it works, and moves us safely from point A to point B.

coffee clock

What benefits will you get from the MVP application

Okay, I hope now a disturbing thought appeared in your head. Why do I need such a “weak” bike when we have so many beautiful looking bikes on the market with various amenities, and we even have electric bikes that do the main job for us. Often, when we buy something, we try to buy something very good, so that it will serve us for years and thanks to this, we are able to spend more money on such a product. Why shouldn’t we do the same with apps?

Products that are mass-produced, such as bicycles, televisions, cars and many more, were invented a long time ago and have been constantly developed and improved since then, undergo millions of tests and receive feedback from customers. Most applications are completely different. The software is very often written for specific market or customer requirements, therefore it is created from scratch and only some modules have been checked and verified by the market. If something has not been tested by customers, there is a very good chance that it will not work. Therefore, investing a lot at the very beginning may not be fully justified. Maybe it’s better to do something basic that might give us minimal value and something that we can test in a real scenario.

increase profile

Can every company achieve the assumptions of the MVP application?

Theoretically, every company can implement the assumptions of the MVP application for you. Unfortunately in practice only companies that fully understand Agile technology can do it. You might ask why? The answer will not be direct and simple. It’s like answering the question: Why is one actor great and successful and the other not? In acting, you must have a spark of talent and work very hard and take your life seriously. When translating it into business, the company must be mature, understand the business, know your needs, be able to advise you but not spoil your idea, respect your budget and be focused on the goal. Sounds like a “wet dream” 🙂 Probably that’s why it’s not that easy to create MVP products.

How the MVP application is created in practice

Now let’s move on to practice, i.e. how to build such an application? There can be many paths to the goal, I will use my proprietary approach here, developed over many years working in the Agile system. For this purpose, I will use the following list of individual steps:

  1. Customer’s needs identification.
  2. Development of templates or graphic designs (documentation).
  3. Development of a detailed scope and schedule of works.
  4. Working in Agile mode.
  5. Weekly / Fournigh meeting to update the progress, scope and schedule of work.
  6. Completion of the project.
people in front of the computer

Let’s expand on the individual points of this schedule. In the first phase of working on the application, before we start creating anything, we need to get to know the details of how the software works. We try to understand the deep motivation and the basic goal that the client sets for this application. For our part, we advise on the best approach to the subject, not only from the technical but also business side. At this stage of work, we are not “smoothie” who applaud your idea, we try to criticize it positively so that you can benefit from our experience.

In the second phase, after getting to know the client’s needs and the tasks facing the application, we create technical documentation, which, depending on the complexity and project, may take various forms (diagram, description, graphic design). Already at this stage, we are able to detect weaknesses and strengths of the application and react to them quickly.

Then we prepare a schedule in which we describe the main functionalities and deadlines for their implementation. In my experience, documentation and schedule are one of the most important elements of the MVP application development process, right after working in Agile mode.

After these stages, we only start programming. We work in a very flexible way, i.e. every week or at most every 2 weeks we do demo sessions with the client to show him how the application currently works and whether we are going in the right direction. Why is it so important? The main point is to check whether the application has not already achieved its MVP assumption earlier or whether we do not need to adapt it to the changing market. We repeat this stage in cycles until the end of the project.

What’s next? Now comes the time to market and verify the application in practice. If the market positively accepts the created application, customers usually come back to us with new functionalities and the application from MVP becomes a real web application.

Pros and cons of the MVP app

Time for an initial summary of the advantages and disadvantages of the MVP application. Please do not treat this as an oracle, but rather as my subjective opinion. Remember also that the features of the application will be assessed differently depending on the requirements of the web application and the business situation.

Low financial outlayA longer process of achieving the final effect
Testing your idea at low costBigger commitment on the part of the client
Getting to know potential customersA more difficult application development process that must include a lot of flexibility
Quick launch of the basic version of the software
Early identification of the strengths and weaknesses of the web application
Reduced investment risk
Potentially quick investment profit


I hope this article has brought you closer to the concept of the MVP Application. In business, even a small difference at a large scale creates leverage that is able to take your business to the next level. In my opinion, every thoughtful action in the development of the company brings profit very quickly, especially innovation recognized by the use of software for companies in various forms, be it desktop or Internet.

Remember that even a 1% reduction in production or product management costs has an incredibly large impact. In particular, the use of the MVP Application will allow you to minimize costs, research the market, and receive feedback from customers. Is it worth investing in web applications? I’ll answer with a quote from Richard Branson: “My philosophy is: if I have any money, I invest it in new ventures, I don’t let it sit still.”

Bez kategorii

The application prepared wisely

What is a technical documentation

Probably non-technical people wonder what this technical documentation is and why they should pay attention to it. I think that it is easiest to compare it to other documentation prepared, for example, during the construction of a building or other infrastructure. In the case of building a house without such technical documentation, it is impossible to start work for legal reasons. Have any of you wondered why officials require this? Of course, there are many reasons for this, but I will use one factor – safety. If a potential project was to endanger human life or health, then of course such a project will not be approved.

Ok, we talk a lot about the technical design of buildings, but what is the technical documentation of the application about? Well, it is similar. Such documentation should contain the most important assumptions about the application such as:

  • environments and on which systems the application is to run,
  • what potentially traffic is to be handled,
  • and of course the most important, the description of the functionality.

If we use the analogy of safety in construction projects, such technical documentation of the application gives a sense of safety to both parties, the ordering party and the contractor, each party knows what to expect. So the rule of win – win.

As we already know what it is, let’s move on to another bothering issue – why do we need technical documentation? What can motivate us to create it? People are usually lazy, and that’s good, because we would live in the jungle and hunt mammoths so far, and thanks to the fact that we are lazy, we have what we have, i.e. technologies, medicine and other luxuries that fill our lives like xbox or tik tok 🙂

If people are lazy, you have to find some other way to create very good quality products. Any written arrangements are the solution to this. If a project lasts more than a few weeks, it’s hard to remember all the details that were agreed at the beginning. If we did not write it down, either we would waste a lot of time re-establishing something or redetermining something could negatively affect the already existing elements of the application. When we create documentation, we know from the very beginning how a given application is supposed to work and at this stage we are able to detect inconsistencies or conflicts in individual system modules, and the earlier we find them, the more we will save.

Who should prepare the documentation?

Personally, after many years of experience, I believe that the documentation should be prepared by both parties of the contract. The contracting authorities know best what they want, and the economic operator should support the contracting authorities with its technical knowledge.

I encourage everyone who professionally deals with designing and creating applications to create their template for technical documentation. For their part, in the further part of the article, I will indicate what should be included in such documentation.

Why do I encourage you to create such a template? Because it will help both sides frame their needs. More than once I have come across the fact that clients came to me with 30-page documents describing in a very laconic way how the application should work, despite the fact that there was so much content there. Entering this in the appropriate template will help both sides to control unnecessary word formation that does not affect the description of the functionality in any way.

Of course, the contracting authority may not always have the appropriate knowledge, and sometimes to describe everything accurately, so the division of these responsibilities should be established at the very beginning and I think that you should be very flexible at this first stage. It is a good idea to organize sessions to discuss the various stages of creating this documentation.

Do I need a graphic design when creating technical documentation?

I think a short introduction to what is a graphic design of a web application will be useful here. As you can guess, it is an image or set of images (graphics) showing what the application will look like. If someone has already encountered the graphic design of a website, he/she can of course easily imagine what to expect. It should be noted, however, that when it comes to graphic design of the web application, we do not focus so much on the beautiful graphics in itself, but on the usability of the application.

When it comes to usability, one of the motives that pushes us to create a graphic design is to find out if our application will be convenient for users before we start building it. In this way, we will save a lot of time, if at the end of work on the application we suddenly find that some of its elements are not functional from the point of view of the future user.

Since we already know what to consider when deciding whether to commission a graphic design, we still have to answer the question: Who should prepare it? The answer immediately comes to mind – Graphic Designer. However, this is not entirely correct as there are different designers. The application design should mainly present the data flow and how future users will use our application, so it is the best to prepare the project by UX Designer, a person specializing in user interface design. UX Designer should work closely with the owner who knows best how the application should work.

It may not seem obvious at first glance, but working on a graphic design is much cheaper than the work of developers who would have to unnecessarily change functionalities after their implementation.

How to prepare technical documentation

To answer this question in detail, a separate article would be needed. In this part, I will focus more on the general information in order to better understand what such documentation is. At the beginning, I would like to point out that there is no model or scientific study for this document. In my example, which I will try to describe here, I rely on my experience in creating such documentation.

To make it easier to navigate through the documentation, it is worth structuring it (divided into chapters). An example structure may include:

  1. Project’s title
  2. Project’s description
  3. Defining the requirements
  • language
  • technical
  • traffic
  • graphic
  • SEM & SEO
  1. IT infrastructure
  2. Functional description of the project
  • description of the individual modules of the project
  • requirements for forms and their validation
  • possible functions that the user can perform in the given module

However, before we start describing our application, I recommend that you prepare mock-ups (you can make them by hand, with a pencil or with the help of specialized programs) that will graphically present how our application is to work. This action, as well as the preparation of a graphic design by UX Designer, will help us notice some gaps in the application logic, and will also serve as a great basis for creating a professional graphic design.

Of course, this point about creating mockups can be omitted when the application is very small or when we have such a vision, but from my experience I recommend spending a few additional hours to do it.

Finally, I would like to present other forms of preparing technical documentation. We can distinguish:

  • descriptive documentation – textual presentation of the application functioning (it can be in the structure I proposed.
    The advantage of such documentation is that it can be used to describe individual tasks for programmers.
  • descriptive and graphic documentation – it is a combination of text and graphic documentation. This is the form of documenting the application that I recommend,
  • graphic documentation – presenting the operation of the application in the form of graphics presenting individual states of the application,
  • block documentation – one of the cheapest and fastest to prepare, but from my point of view it brings the least tangible benefits, but very good, as a basis for the preparation of more extensive documentation.

Why is it worth creating documentation

We kind of answered this question between the lines. Here, however, we will try to summarize what we have said so far about the technical documentation, with an emphasis on why it is worth it.

In order to quickly answer this issue, it is worth considering whether our application will be large and complicated. If the answer is yes, then we should definitely make these efforts and this investment will certainly pay off in the form of fewer fixes and changes in functionality. If our project seems short, e.g. 1-3 months of work, you can use less complicated documentation, e.g. graphic or block.

It is known that the creation of such documentation will involve some time expenditure, and thus also a financial outlay. However, believe me, from my experience, these outlays are a drop in the ocean if we compare it with the subsequent expenses that have to be incurred when something has not been fully thought through.

Life cases when projects did not have documentation.

At the end of this article, I would like to warn you against the lack of technical documentation and functionalities written on the basis of my experiences and the experiences of my clients. It is known that the preparation of documentation and designs, graphic models takes a lot of time, in addition, the development of the entire concept of a complex application may also take a lot of time. I was a witness when such a process took a year. A lot? It depends, of course, in the project in which I participated, I would say that it could be done in 6 months, but I do not think that a year with very advanced projects is a lot.

Now let’s move on to the failures I have faced in my career. The first of them was our private marketing project, the technical documentation of which was written on the knee and when it was implemented and something started to emerge, it turned out that: 

  • first, it doesn’t look nice (no graphic design),
  • second, logical deficiencies in basic functions began to emerge.

Our application seemed quite simple and small, but we finally stopped working and are currently working on the technical documentation and graphic design for it. As a result, the software gained additional functionalities and was thought out in terms of business as a SaaS solution.

Another application in which we had the pleasure to participate was a parabank system that had certain frameworks described and even graphic designs prepared, but in the middle of work on the application, we stopped analyzing further functionalities and preparing appropriate projects, and therefore our work was very slow and we had to do a lot at the end, redo things.

I learned the next lesson from the application supporting HR processes. It is a very advanced application which, due to the complete lack of technical documentation, has been changed so many times that it is impossible to remember it. In the end, the application saw the light of day, but in my humble opinion it could be written in a budget 4 or 5 times smaller.

I think that nothing speaks louder to entrepreneurs than money. So please think about this topic and do not always choose the fastest and cheapest way in the tender, because it may lead you into serious financial problems. I hope that after reading this article you are armed with knowledge that you will be able to use when signing contracts and agreements to make software for your companies.

Bez kategorii

Web Application – Automation

Briefly about internet applications

I think that no one needs to describe for the millionth time what is a web application.

What I would like to point out are the benefits of using web applications:

  • no need to take a computer with us with the firmware installed,
  • access to your company data from anywhere in the world,
  • the ability to check important data even from a mobile phone.

As entrepreneurs operating today, we must take into account our mobility and flexibility to changing market factors. I do not think this trend will go in any other direction than the increasing integration of our business with technology. I even think that in the next decade, innovation in the company will be on a par with marketing. But enough about applications, let’s read about what these applications can really give us.

The benefits of automation

One of the greatest benefits of using the application in the company is the automation of repetitive processes, thus saving time and minimizing errors during data processing. We will characterize some of them using a simple application to process your clients’ data:

  • repeatability of processes – when entering data into the IT system, thanks to the use of forms, we obtain constant repeatability of the entered data,
  • flexibility – in the course of running a business, it is almost certain that some changes will occur, thanks to the fact that we have data in electronic form, we are able to easily adapt them to new requirements, 
  • fewer mistakes – while entering the data can be automatically validated by the system, thanks to which we minimize the number of mistakes,
  • scalability – the same data can be processed by many people and automatic processes,
  • more time and savings – although the application may seem like a big expense at the beginning, after some time we will start to notice benefits and real savings.


Automation of contacts with customers

One of the examples where we can use a web application as an automation tool is the contact with customers. These types of systems are known as CRM. This is obviously an English abbreviation (Customer Relationship Management). What can such a system do? Well, a lot, I will give a few simple examples. 

The first is communication with the client. The system can fully integrate with an e-mail account, thanks to which it will receive and send messages grouped into the appropriate category. It is not difficult to lead to a situation where when we have 100 customers and we contact them at least once a week, these specific messages simply disappeared in the maze of our inbox. I do not have to mention that we can filter these messages by looking for some key terms or sort by date or appropriate priorities. Automation is not yet visible, but the more data we enter into the system, the more we can get. For example, imagine a situation that we want to send a new promotional offer to the most active customers, i.e. those who have contacted us in the last 90 days. It’s easy for such a system. The system will search for such customers and send a promotional offer to each of them.

Another example is something similar to what I described above, but using a different means of communication, namely a telephone. After installing an additional application on the phones of our sellers, the system can monitor calls made and received from our customers and send and receive SMS. What can it do for us? Well, we can set the system so that it sends notifications to the sales manager that a customer waits for a response longer than 6 hours, thanks to which we can react to such a situation.

Another example is arranging meetings with clients and integrating with the company’s calendar. The system can analyze the effectiveness of such meetings and the occupancy of the calendars of individual salespeople. In addition, it can alert sellers to attempting to book consecutive appointments at intervals that prevent you from reaching the venue at the specified time.

The last but also a very important example of the use of CRM is collecting feedback from customers automatically. The system can do this periodically after each contact event or after a specified number of contacts. It will automatically record customer responses, and with the appropriate definition of questions, it can also analyze the customer satisfaction index.

Automation of ordering

Let’s imagine that we already have an application that manages the sales processes in your company. However, it is an internal application used by sellers, warehouse workers and courier companies. Currently, customers order goods by phone or direct sale. The 2020 pandemic has shown us that this solution has significant disadvantages. So how to enable the further sales process without involving direct sellers or call centers or expand the current sales target also on the Internet?

The solution to all these problems can be a dedicated website, let’s call it a small online store, through which customers are able to make and pay for the purchase, and all information goes to the main system that you currently use in your company.

What do you get:

  • full automation of orders placed, thanks to which your employees have more time to perform more important tasks or you can even minimize the costs associated with the management of these orders,
  • after making a purchase, you can send customer surveys assessing the purchasing process and the product itself,
  • automation of the after-sales process by automatic sending of e-mails regarding order details and payment,
  • you do not have to build the application from scratch and incur higher costs, but integrate the store with the existing application.

Automation of counting working time

Another example of automation thanks to the use of a web application can be presented on the example of an application for counting the working time of employees.

Suppose you are the owner of a factory, shop or other enterprise where employees come to the workplace at a specific time and work according to the planned schedule. If there are five employees, it is not a big problem to make sure that everyone came at the specified time and worked for the specified time. The problem with supervision appears when there are more than 20, 50 or even 100 or more employees.

How can you solve such a problem with one application? Well, each employee receives a card (generated by the application) with a unique code. Then, when entering or leaving the workplace, he is obliged to scan his card, the application will do the rest.

What can we gain:

  • very big time savings,
  • financial savings, we do not have to hire a person who would be responsible for the registration of your employees’ working time
  • current information on the number of people at work,
  • the possibility of keeping a work schedule, holidays, sick leaves, etc.,
  • employees can access their schedules through the application, which minimizes human errors resulting from failure to provide information,
  • the system can automatically calculate salaries and order transfers to the bank,
  • the possibility of integrating the application with ZUS,
  • the ability to report efficiency and many others.

Is it worth investing in the automation of your company? I think this description leaves no doubt.


Automation of preparing offers for customers

In my work, I often come across inquiries from clients regarding the preparation of a dedicated application for them. It can be said that this process of preparing an offer is a repetitive process, of course, personalized for the client, but some elements in web or mobile applications are repeated. If something repeats itself to a greater or lesser extent, you can use automation to speed up this task.

An example of such automation will be the application that we prepared for one of our clients. The purpose of the application was to prepare service points based on the entered vehicle data, which could be modified and improved in the car. What previously took about an hour has been reduced to a few minutes. Of course, the application not only generates offers but is also a simple CRM system that maintains customer relations, reminds about the next service dates and sends notifications to customers.

So what can we achieve by using this type of application:

  • saving time,
  • quick edition and update of offers,
  • the ability to prepare offers in a few minutes without even being in the office,
  • maintaining the history of contacts with customers,
  • sending additional marketing offers within a specified period of time (e.g. the appearance of new software).

So is it worth getting interested in automation in the company? First of all, the time that we can save is priceless. If the company is in a stable position, I think that such an application will have a positive impact on its further development.

Bez kategorii

Review code – how to do it right?

Review code (CR) – for some people unnecessary nightmare, others will say that it slows down the development process. In each of these statements, there is a grain of truth and, unfortunately, negative truth. And what if I told you that CR can be a source of knowledge, team motivation and accelerator of the application development process?

For those really uninitiated, a very simple definition. Code review is a process aimed at detecting errors made during software development, which improves the quality of the product being created.

In this article, I am going to focus more on the theoretical and psychological side of the issue. The technical part will appear in other articles.

Why do this?

The main purpose of browsing code is to draw attention to its quality. It is extremely important to be consistent with generally accepted or internal standards. Thanks to that, the new person who will join your team will feel that the code was written by one person. Such code is then easier to maintain and modify. I don’t mean good editorial standards here, because ESLint should do it for us. We should focus on architectural aspects, code structure and design patterns used, its readability and performance.

In my work, I often come across unreadable code. I do not want to talk here on what it means that the code is readable or not, but I refer to the great book by Robert C Martin “Clean Code”. I will briefly say that if you can’t read what the line is doing, it means the code is too complicated.

The second very important aspect is finding possible errors. This task presents a difficult challenge for code reviewers. Finding errors by looking only at the code, you need to have extensive experience and a lot of practical knowledge. This is a difficult task and is not always successful. Even the most seasoned eye will sometimes not see hidden errors. How to protect yourself against such a situation? You need to accept the fact that you won’t pick up everything. Errors should also be caught by automated tests and that’s what developers write them for.

To sum up this part, I think that the first aspect is more important – structure, architecture and broadly defined code quality.

Psychological aspect

Every artist, craftsman, and here I will put a programmer on an equal position because I think they are such a modern craftsman, trying to make his product of the highest quality. Therefore, he often identifies personally with his work and is associated with it emotionally. When you are doing someone’s code review, you must remember that you may offend them accidentally criticizing they work.

Let’s put ourselves in the role of a software developer. We tried to do our job as best we could and now someone criticizes us and thinks that our ideas are bad. How to find the border between the viewer and the creator so that everyone understands each other well. More on this later, but here is my advice. When you write a comment to someone’s code, try to make it constructive and assertive. Using wording that this part of the code is simply bad or you can’t program like that is not a good comment. Justify why something is bad and suggest how to do it differently. Post an interesting article on this topic to broaden knowledge. Then this person reading an additional, outside opinion on a given topic will understand that they have misinterpreted this part of the code and will also have the satisfaction of learning something new. 

When you are the creator of the code, put pride in your pocket and do not treat it as an attack on you because it is just code. Check what the reviewer wrote and if he was right thank him for teaching you something and if you disagree with him let it be constructive, support yourself with articles or examples.

Bez kategorii

What do we get from blogging?

What is a blog? According to Google, it is a regularly updated website or web page, typically one run by an individual or small group that is written in an informal or conversational style.

Blogging for companies, ventures, or anything else that could earn you money has a very simple aim â€“ to place your website higher in Google SERPs, a.k.a. to improve your exposure.

As a company, to keep selling your products and services, you depend on customers. You rely on blogging as a new business to help you meet these customers and draw their attention.

Without blogging, your website would remain invisible, while running a blog makes you searchable and competitive.

The more regular and good your blog posts are, the higher your website’s chances of getting your target audience noticed and visited. In other words, a blog is an effective tool for lead generation. Add a great call to action (CTA) and turn your website traffic into leads of high quality.

So, a blog’s main purpose is to bind you to the audience concerned. Another is improving your traffic and adding value to your website.

It builds trust with your audience when you use your niche knowledge to create insightful and engaging posts. Great blogging makes your business look more credible, especially if your brand is still young and unknown. This also guarantees visibility and authority.

What is the difference between blogs and websites?

A majority of people still wonder whether there is any difference between a blog and a website. What is a blog and what is a website? It’s even more challenging to differentiate between the two today. Many companies are integrating blogs into their sites to perform the same function.

Blogs cultivate great interaction with readers. Readers have the opportunity to comment and voice their numerous opinions to the audience. On the other hand, static websites consist of the content displayed at static pages. Owners of static websites seldom change their pages. Blog owners update their site with new blog posts on a regular basis.

Key elements defining a static site blog post include a date of publication, author link, classes, and tags within a byline. Although not all blog posts have all these line elements, there are none of these things on static website sites.

From a visitor perspective, the content on a static site will not change from one visit to the next.

Bez kategorii

Your website as your digital strategy opportunity

Marketing has developed, human behaviour and marketers should continue to do so. “Digital approach is a method that is constantly evolving with which we always strive to be better and more effective. Deeper insight leads to a better approach and both are pushing for increased ROI campaign.”

It’s simpler than ever to build a website. It is the basis of your digital strategy and one of the most efficient ways to advertise your products.

It can be an interesting method to create, refresh or update your website, but it can also become stressful in the brief run. 

If you’re developing a website for a college, users could include everyone from your prospective applicants, to parents, to students, to faculty, to alumni, and so on. Beyond those audiences, you’ve also got internal teams who will be using your site to complete their administrative and communications

With various voices weighing in on how the site should look, sound, and operate, and competing for “must-have” characteristics and content kinds jostling for attention, even the most patient user experience pros, designers, and developers will face some significant hurdles.

The best way to ensure you’re making the right choices is to put the focus on your website users.

Wisely select your off-site channels. To guarantee that your internet audiences and customers are focused, you will need to create decisions that match their digital practices, including where they spend their time online, the kinds of mobile devices they use and how they use them, and the kinds of data they seek in different locations. You’ll have to find out how online they want to communicate with you. Ramping doesn’t make sense.

There is no shortage of digital platforms accessible to communicators beyond your website today, including emails, SMS, social media accounts, and even media and messaging based on apps. In reality, the sheer variety of possibilities could rapidly become daunting — unless you concentrate on selecting the correct channels versus using all the channels.