Tag Archives: Experience

Starting work with JavaScript, the question of choosing a framework immediately arises, although this is where the whole essence of this language lies. JS – aka JavaScript – is one of the most popular programming languages ​​and there are a lot of options for front-end frameworks for it, but three are especially popular: Vue, Angular and React. There are a lot of materials on this topic on the net, but we will try to figure out what is still better based on the experience of our developers.

And before we get into the top three reviews, let’s take a look at the star rating of risingstars.js (2021 JavaScript Rising Stars)

For the first time ever in JavaScript Rising Stars, React is the number one UI framework, but when you consider the fact that Vue.js is split into two repositories (for versions two and three), it’s actually the leader.

The Svelte framework, which ranks third before Angular, made its own adjustments to the rating. More and more tools or components include Svelte as a target framework (eg Vite).

Here is what the top front-end frameworks look like:

DISCLAIMER: the choice of a framework is a personal matter for everyone. We do not insist on the absolute universality of our three, and they are just the most common in our team 🙂

 

Vue – a universal soldier guarding the front-end

This framework has become especially popular in recent years. From “one of the hundreds” he went to a leading position and became a favorite in a professional environment. Today, Vue is considered one of the most suitable frameworks for asynchronous rendering on the server side.

Professional Vue.js for developers is a relatively recent framework designed to increase performance and accelerate loading. But these are not the only strengths that often distinguish Vue.js.

Evan Yu created Vue.js, working in Google by a creative technologist. Thus, in a sense, it is similar to the Google Angular JavaScript frame, for example, in the use of a virtual DOM plus Vuex to control status in the Redux style.

Vue.js allows you to create amazing web and mobile interfaces, as well as one-page applications are much easier than other frameworks. And since Vue is not only one of the most famous JS-frames with open source but also one of the largest libraries, it is used to create various components of the site. The versatility and reliability of the frame has been repeatedly proved by large companies. For example, the Netflix streaming website uses Vue.js as Facebook for marketing news tapes.

Nevertheless, it is designed to solve problems that exist with Angular and React. Of course, Vue.js has both pros and cons. It has an open source code and is supported by donations from sponsors and partners, including Vehikl, Modus Create, Rangle, Laravel, Storekit, Devexpress, and many others.

Of the undeniable advantages, you can highlight:

  • Lightness in training. The developers love Vue.js because it is universal and light but does not lose anything in its functionality, which competes with heavier frameworks, for example, Angular. The only necessary condition for understanding this is the understanding of the “big three” web development technologies: JavaScript, HTML, and CSS.
  • Progressiveness. Vue.js can be added to your HTML code as a simple script tag, and it will gradually expand, adapting to your needs until it can control the entire layer. That is why in some circles it is called “new jquery.”
  • Community and support. Angular is supported by Google, REACT is supported by Facebook, but Vue.js is fully supported by an open source community, which relies on the contribution of local developers and donating sponsors to advance forward. Nevertheless, the latter managed to challenge Angular and React as a preferred structure for web development.

83,400 questions on StackOverflow by tag #vue.js and more than 187,800 stars on Github are talking about the popularity of Vue.js.

 

React.js – pull Facebook, also pull the rest 

React.js was created by the Facebook project team back in 2013, but not only has it not become outdated and has not lost its popularity but, on the contrary, has become even more in demand due to its characteristics. The React.js library was created in order to separate the interface into parts and make the development of the final product easier and faster.

React.js introduces special JavaScript code, a preprocessor step that adds an XML-like syntax to JavaScript. This helps to assemble readable code, and save it into one checked file. Being able to discard HTML in the render function without string concatenation is excellent. Through the use of a specific JSX Transformer, the HTML is converted into functions.

React.js creates an efficient virtual DOM known as the Document Object Model or vDOM. This allows you to create a lightweight DOM tree and store it on the server side.

Programmers have no particular complaints about the React.js framework. For the most part, this is due to the fact that this environment is undergoing a stage of active development and improvement, which makes it stable and accurate in operation. A clear feature of the framework is that it is essentially a library. However, due to its wide functionality, the tool allows you to use it without using other services. React.js does not need to be integrated with other services. The front-end implementation of this tool demonstrates high efficiency.

 

 From the advantages of React.js:

  • Optimization and acceleration of the update process.
  • Implementing block readability with JSX. It shows how components are connected or combined.
  • React Data Binding – sets the conditions for building dynamic applications.
  • Live rendering. Using the includes methods to minimize the number of DOM operations helps streamline and speed up the update process.
  • Tested. Native React tools are offered for testing and debugging code.
  • Optimization for SEO. React introduces the first load experience through server-side rendering and hooking up user-side event handlers.
  • Thanks to React + ES6/7, the application becomes high-tech and suitable for high-load systems.

 

Angular is an eternal competitor who does not stand aside

Angular is the most valuable framework in the technological arena, the most mature and proven. At the same time, he produces updates in accordance with the trends in the industry.

The first advantage is bilateral data binding. Thanks to her, the developers get the opportunity to create templates faster. Any changes made in the performance or layer of presentation are automatically and instantly displayed in the model. Simply put, Angular is built on the basis of MVC architecture (Model View Controller), which allows developers to make changes easily. In case of any changes made to the “model,” “view” instantly changes.

Another advantage is manipulations with DOM – a software interface for HTML and XML, which helps developers determine the logical structure of documents and manipulate the document. The developers receive the simplicity of DOM management (object model of a document) thanks to a bilateral data link. Moreover, this is impossible with other JavaScript frameworks. Manipulations with DOM help developers save time because they just need to translate and update DOM elements.

 

Of the pluses, you can highlight:

  • A mature framework, which has good support from the participants and is a Full Package;
  • It is used with Typescript and has exceptional support for this (checking static types can be very useful for large applications, as well as add performance to developers working on Java and C#);
  • Angular-Language-Service-provides intellectual capabilities and auto-performance of the HTML component template;
  • one -sided data binding, ensuring the exclusive behavior of the application, minimizing the risk of errors;
  • Structure and architecture are specially designed for a large scalability in the project.

 

In conclusion

 

The choice of framework is an essential task at the first step in development. And the final choice of the framework depends on the project that needs to be implemented, so it is important that the team has experience working with them and can objectively evaluate the pluses of the minuses and choose the most suitable project for specific purposes. The ITERA Research team has specialists working with all the key frameworks because each project has its tasks so we will find an approach and a solution to any project.

 

Every year, the importance of digitalization is felt more and more strongly, and firstly, it is felt by non-IT companies. When a company decides to keep up with the times, a dilemma arises: hire your staff or use outsourcing. Today we will talk about the benefits and challenges that companies can face using the example of one customer story.

 

The agony of choice

So that no one is offended, the name of the company will remain a secret, but we will share the specifics of their work. The company was engaged in collecting data on partner violations, doing reviews, and solving the legal problems of the customer. The key problem was the lack of automation in certain areas of work. That is, the operator receiving the call had to fill out a questionnaire and describe the problem in order to conduct a review and give feedback after that. All this took a lot of time and human resources that could be optimized.

This is how the idea of ​​creating a platform arose, where the client could fill out an application and transfer it to specialists in an already prepared form. This would significantly reduce the burden on the support department and make it possible to unify the application system.

But an idea remains an idea until it is realized. The company’s management decided to hire one developer per staff, as it seemed that it would be cheaper.

 

Recruitment difficulties

When hiring a developer in your company, you need to clearly understand that modern IT specialists are far from those old system administrators who were part of any team back in the early 2000s. The modern IT market is already a full-fledged ecosystem with its own characteristics, requirements and interests. There is a metaphor, if you put a fresh cucumber in a jar of brine, then over time, it will become salty. In the case of developers, this statement will not work. Rather, the brine will turn into the water then the developer will easily join the team of bankers or lawyers. On such adventures, most often, low-level specialists go. This is because working with a non-technical team creates a number of difficulties and problems in the work of a developer, plus most often, developers do not like to work in such an environment where there are no other specialists with whom to discuss tasks, and the work culture is very different. Most often, all these issues will lead to the departure or dismissal of the developer.

 

Outsourcing? – No, it’s expensive!

Let’s imagine that a law firm decides to open a dental office for employees in their office. To do this, she vacates the premises, purchases the necessary equipment, looks for a specialist and introduces him to her team. The last step, although it seems optional, let’s face it, they will all have to contact within the office. How comfortable will the dentist be surrounded by lawyers? From the point of view of the work of any HR department, such a mixture will rather interfere with and reduce the level of employee motivation rather than vice versa.

That is why companies often conclude an agreement with a specialist, as they say, on the side. The execution of such contracts allows all employees to receive the necessary services and at the same time does not create difficulties in the work of the team or the company, and also saves from unnecessary expenses for premises and equipment. This is one of the reasons why the outsourcing market is growing stronger. Today, it is more profitable to hire a team for a specific project and then leave 1-2 people to support it than to pay thousands of bills for paying specialists whose qualifications and work cannot even be assessed with the risk of closing the department.

 

How did our story end?

In general, it is already clear that the company did not succeed at the very beginning of its history. After some time, they were able to find a specialist who took up the job, but the case ended before it even really began. For the developer, there was no exact TOR, the developer could not just take and do what he wants. The TK, as he understood it, was set by one of the company’s managers, of course, the smartest, but he did not know the knowledge of how to develop software projects, and what stage it was needed at, so he set the tasks as he understood. As a result: there is no product, and the funds are wasted.

Then they turned to an outsourcing company, where they underwent a business analysis stage, at which they worked out all the requirements, made a prototype, and it became clear what exactly needs to be developed directly by the developer and what kind of specialist needed for this.

The moral of the story is very simple: outsourcing is a tool in the hands of skilled management that can meet the needs and complete the tasks while saving time, money and nerves.

 

Implementing new technologies is a complex process. In addition to creating the technology itself, there is the human factor. People are not always able to immediately grasp the essence of changes and accept them, even if it makes their life easier. This idea was especially noticeable in the project to create an ISA device. This project aimed at developing cities according to the Smart City principle and focused on simplifying the control of meter readings collected by housing and communal services.

 

The city wants to develop, but what about its inhabitants?

When we got a project idea, we had been working in the software development market for more than ten years and tried to do hardware development. We had a customer with a software project. During our long-term work, we learned that our client could not solve the problem with hardware development. He turned to various hardware developers. Every other convinced him that it was impossible to make an acceptable or inexpensive solution, that they were experts, and nothing would come of this venture. So we wondered since we have already worked with software for this domain.

You will learn how we implemented this project below, but the result deserves interest. We created our hardware development department, created a device for the customer and continue to work on this project.

Are you sure you want to hear all the details?

The qualitative implementation of the project requires a business analysis stage, which is particularly important for a serious task. We started with BA. We learned that in residential buildings, there is a planned replacement of old meters with smart ones. The plan was as follows: to install 500 units per year. It was possible to install 250 units, and it was necessary to install 10,000 units. At such a pace, the plan in 20 years turned, at best, into 40, or even never at all. In addition, the same scheme for collecting indicators looked “slightly” outdated.

It turned out that some “unknown” number of people were walking around the city and taking meter data. At the same time, the city’s power company is doing the same. Due to the difference in the removal dates, the indicators do not match, leading to conflicts and the inability to track the amount of electricity consumed.

During the verification process, it turned out that some metering devices were not installed at the facilities in principle, but data were regularly taken from them. Because of such situations, the relevance of all data tended to zero.

If it were necessary to make the most unreliable system for the operation of something, then this would be its example.

 

How to solve the data transfer issue and not pay several billion for it?

The idea of the project was simple – to simplify the data transfer procedure into three steps: take a picture, recognize and transfer the data to the server. The critical problem was cost reduction. Otherwise, there is zero practical sense in such a solution.

The situation turned out to be interesting. In the process of in-depth market research, we found the following: most meters are either induction or already smart. They have a digital interface and the possibility of remote transmission. But in both cases, there were nuances. Smart – super expensive, and induction gave a significant error.

 

If the others can’t, we’ll do it ourselves

The solution was to use the standard set of components. That is, hardware engineers (in Ukraine, by the way, these are electronic engineers) used a relatively common set of parts for the board.

In searching for the correct answer, we were so carried away by the idea that we already intuitively felt this could be done. Having hired our hardware-electronic engineer, we set him a task. By the way, our new teammate was very optimistic.

A hot young engineer calculated everything, and we concluded that two months would be enough. And as a result… we spent more than a year on the first version. A few more months were spent adapting the device for operation in actual conditions.

 

Half the battle is to invent, and half the competition is to implement

Having reached the stage of practical use, the question arose – which camera to choose. It seemed like the best option was to select the cheapest one, but then we failed. It turned out that the form factor of the cameras is very different. As a result, they went through hundreds of cameras but found the necessary one. We installed it. And then, it turned out that you need to read the readings but do not remove the device from the meter. We will not describe the entire path of searches, selection of the required dimensions of the device, calculation of the focal length, and struggle with exposure. One of the main problems was the lack of connection at the counter installation sites. Many meters are located in the basement.

After the first report, it turned out that half of the devices could not send information. Of particular pleasure were the public utility workers. The illuminated meter became a topic of conversation for them for a long time.

 

What did we finally get?

Throughout the project’s development, there were many reasons to refuse and stop, but we did not give up. We took on this project and confidently moved forward with our clients, supporting each other through tricky development turns. Fighting humidity and temperature regulators, setting up a data recognition system using neural networks, fighting with the local population so that new technologies are not hyped for spare parts, and much more.

Not to mention the manufacture of the devices themselves using 3D printers. Of the required five, there were only two, but it must be necessary. Then our 3D printers appeared in our arsenal.

Now, ISA devices are actively used by the state energy company “Oblenergo” to take meter readings. In the future, it is planned to develop systems to transition all city services to the concept of using smart devices.

And perhaps, the central insight of the project was thinking out of the box. In an attempt to find outsourced performers, we often encounter blinders. At the same time, our goal was to complete the project in any way and fulfil our obligations to our client. Therefore, despite the beliefs of hardware engineers, software engineers and neuroscientists, the project was successful and integrated into urban systems’ operation.

 

The Itera Research team always tries to be at the center of all the coolest events. Therefore, we did not manage to pass by such a major event as the 2021 web summit.

In addition to vivid impressions, we managed to find out where the world will move in the next few years and breakthroughs in which areas we should expect next year.

So we decided to share insights, because experts, as always, are very excited about the latest technologies and developments in the field of AI and how it can radically change our lives in the near future.

Since working with AI is a new direction for our company, we have prepared five use cases for AI, demonstrated at one of the world’s largest technology conferences, which returned to Lisbon after the 2020 conference was canceled due to the pandemic.

 

Healthcare

Iker Casillas, the legendary Spanish footballer whose sporting career was ended after a heart attack in 2019, has become an investor in a startup that uses AI to detect irregular heart rhythms and helps to alert the user and help services in advance of possible heart diseases.

Madrid-based Idoven is analyzing data from home-based heart monitoring kits to monitor people’s heart conditions and, most importantly, to identify impending problems.

“We are the first company in the world capable of doing this,” CEO Manuel Marina-Breiss told AFP.

 

AI is also being used by mental health startups

Woebot is a chatbot that helps people get rid of anxiety by adapting their responses based on information about a person’s emotional state obtained using artificial intelligence.

“If someone is in trouble or really feeling bad, Woebot will offer them to work on it or just get rid of it,” explained its founder Alison Darcy, a clinical research psychologist.

The idea of ​​pouring your heart out to a chatbot may be unnerving for some, but the Silicon Valley startup points to research that people sometimes prefer to trust an unbiased robot.

 

Environment

AI is not the solution to climate problems.

According to researchers at the University of Massachusetts, training a system with a single algorithm can use nearly five times the emissions a car makes over its lifetime.

But artificial intelligence is also making a wide range of industrial processes more efficient, from cement production to data center cooling.

It can also be used to reduce the amount of garbage we send to landfills.

British startup Greyparrot is using artificial intelligence to recognize different types of waste moving along a conveyor belt, picking out recyclables from plastic to glass better than the machines used by most businesses today.

 

Road safety

Can AI stop traffic accidents? Irish startup Provizio is developing technology that uses machine learning to analyze data from sensors attached to a car.

Founder Barry Lunn hopes that in the future, emergency braking systems will engage 10 times faster than before.

 

Сoding

The era of artificial intelligence, which avoids any need for human assistance and writes its own computer code, is much closer than you think.

A joint project of the software development platform GitHub and the OpenAI research lab presented a joint project called Copilot.

This tool can independently search and fill in gaps in the code, using AI to understand what the developer wants from this program.

But researchers at New York University suggest that computers still need us: about 40% of the time there are still bugs in the code.

 

Deep Fakes

In recent years, there has been a growing concern about deepfake technology, which can be used to create realistic images of people who act as the creator wants.

On the example of Tom Cruise’s deepfake, which was quite popular this year. Many people began to seriously think about how far this can go, and what crimes can be committed by pretending to be another person.

Reface, an American startup founded by Ukrainians wants to use AI deepfake for more gaming purposes, allowing the user to change the head of Justin Bieber or Mona Lisa to their own.

But co-founder Ivan Altsybeev envisions a future where people can do entire remakes of their favorite TV shows with themselves.

 

AI is developing at a rapid pace, and what was called state-of-the-art six months ago may turn out to be a mid-range development today. Whereas previously a narrow layer of specialists was employed in the field of artificial intelligence, now, with such a huge demand for solutions, there are simply not enough qualified personnel capable of coping with the constantly evolving technology.

There are situations when the deadline is not just burning, but specifically, the chair on which the customer is sitting is already being burned. Taking on a project that is a month away from delivery, and the process has barely crossed the starting line, is not an easy task. Most experienced teams refuse such projects because these are big risks, but our team knows how, as they say, to play at limits and bring any business to the end.

 

What is all the salt?

The customer, – we will not divulge the name, let it be John, – met the team a couple of years before the “hot” situation at one of the conferences. After talking more closely, he handed over his project for an estimate, but in the end, he chose another contractor due to the lower cost. In fact, our team estimated the project twice as expensive, taking into account all the difficulties and risks.

The story could have ended there, but after a personal visit to the Ukrainian office and a closer acquaintance, John takes on a small team for another project. A month later, he asks to pick up another project, which we have estimated earlier. It turned out that there was only one month left before the completion of the year-long task, and 30% of the work still had to be completed.

 

Take or refuse?

Such situations in the development market are not uncommon. All because of basic mistakes in planning (we talked about this in another article, which can be found on the blog).

Finding himself in such a situation, John asked for help, because in case of failure he faced heavy fines since the customer company is a large enterprise. After conducting a preliminary assessment, our team assessed the starting conditions and came to the conclusion that to finish the project in 3-4 weeks, one of which will be spent on coordination with the client, the collection and onboarding of the team is a very big risk. Risky, but, as our PM said, it is not impossible. The system was written by a different team, the available documentation was in chaos, and there is no direct communication with the client – all of these reduces the chances of closing it on time, and our team tries not to take on the project if it cannot guarantee successful completion.

Even realizing the likelihood of failure, John asked to take on the project, since the professional team was his straw. In this case, it was better to try something than to do nothing at all.

Like any customer, John was worried about what the budget would be, and what would be needed, and asked for estimates for completion. There was no time to make an estimate in such conditions, and the work was carried out in the support mode and research with “gestures”. All for the sake of minimal planning, with the transition to further full-fledged analysis.

To give an estimate, it was necessary to understand the project, to understand all the functionality, modules, and a complex data structure, to conduct an assessment, and there was simply no time for it. As a result, we calculated the budget based on the number of people in the team and the number of weeks before the deadline.

Now there was a new problem.

 

How to beat time? Gather a good team

In such situations, without a good team, as without hands. In the literal sense of the word. When work on the system started, a huge number of problems emerged, ranging from lack of documentation to lack of staging, unstructured code, and an absolute break in communication.

In fact, the problem was much more global than can be described. Due to the fact that the code was written by many developers, while everyone wrote as he wanted, there were simply an uncountable number of bugs not fixed in the tracking system. The functionality was isolated within a certain page, there was one thing in the mockups, but in reality something else.

Despite the enterprise level, there was no documentation, not even the design of the system. To say that difficulties arose because of this is to say nothing. Even the same button was implemented differently in different parts. There is even nothing to say about testing, no one has done this a priori.

There was a lot of work, so we rolled up our sleeves and got down to business.

 

What was done?

To ensure minimal planning, we switched to Scrum with short sprints. Organized dev, demo, test, and production development environments, and implemented CI / CD.

Since the transfer of knowledge on the technical organization of the project and the business component was carried out in the development process, the following decisions were made:

 

Planning

Estimation of tasks by the developers was made on the basis of their previous experience in developing such systems without being tied to the existing code.

The resulting estimates were modified by coefficients related to the developer’s current level of boarding in the project and the individual performance of each developer.

We have simplified the estimate approval system: everything that was less than 4 hours was done without confirmation.

 

Testing

The final testing and preliminary analysis were taken to the client’s side since we could not fully accept the project in such a short time.

 

Systematization of development

To get quick results, the development was initially carried out without changing the architecture and refactoring. In parallel, an analysis and description of the architecture were carried out, a system of requirements was organized and a list of technical debt was formed.

 

After 4 weeks …

All planned tasks were completed on time, the system was stabilized, and the team was assembled and onbordered. In addition, the foundations were laid for the further systematic development of the project. The guys worked overtime and did the simply impossible, especially considering all the difficulties in development, which only increased the term of work. But in the end, the team backed up what John promised the client by the end of development.

In this case, the PM did a great job of team building. The guys were from different teams, and it was very important to create an atmosphere for productive work. As a result, the whole team was ready to work overtime.

The customer liked the project, and after it came the next proposal for cooperation at a more relaxed pace.

 

One of the most important aspects of project management is an estimation. All projects require a budget and stakeholders want to know what it is before the project is started.

Project estimates are an estimate of the time or effort required to complete a project. When you are working on any project, the estimate – it is also the estimate of the time/money of the project – cannot be 100% known until its completion. Most frequently, a buyer will want to know the price of any project at the outset. In order to somehow calculate this estimate, there are 3 types of assessment one can use:

  • Order of magnitude rough estimate or ROM estimate – accuracy (-25% to + 75%)
  • Budget Estimate – Accuracy (-10% to + 25%)
  • Final grade (Definitive) – accuracy (from -5% to + 10%)

Let’s try to figure out what will give a more accurate result for the ROM or the Final Evaluation.

Assessment and its types

An approximate order of magnitude estimate is considered rough or less accurate than other types. Reasons for this vary because of the fact that it is done in the early stages of the project, usually at the initiation stage, when there are still many unknowns. This estimate is usually requested by the client to decide on when to start the work.

  • With ROM, the difference between the estimate and the actual figures can reach 75% or more, making it 25% or less accurate.
  • The final estimate is used at the last stage of the project. Usually, in the case of the final assessment, the range of accuracy is from -5% to + 10%, both in plus and minus.
  • In addition to the ROM and the Final Evaluation, there are several other types of estimates: preliminary and budget. In the case of a preliminary estimate, the deviation range can be from -15% to + 50%. Budget estimate from -10% to + 25%. And, of course, the final estimate is 100%.

The accuracy of the estimate may change as the project progresses. It is like a funnel where the initial spread can be large, but over time it will narrow.

 

ROM versus Final Evaluation

For clarity, we will take the PMP Exam study project, and in practice, we will illustrate the degree of accuracy of the assessment.

At the very beginning of their preparation, applicants may have little or no knowledge of the PMBOK examination program and guidelines. The time period for preparation is about 3 months of distance learning, which is considered a rough order of magnitude (ROM) estimate. 

The actual study period cannot be known for sure, as the only way to estimate it is through the experience of other examiners.

After the exam preparation course, the PMP applicant should be able to understand the topics and fill in the knowledge gaps. This means that the approximate study time will be 100 days. At first glance, it seems like it looks more like a final assessment.

Usually, at this time, you need to immediately book the date of the exam, which can serve as an additional incentive.

 

Mock exam question

The project runs for 3/4 of the projected duration, and the last component needs to be built to improve the accuracy of the system. The project manager updates the cost of the entire system.

How accurate is the estimate?

  1. Preliminary estimate
  2. A rough estimate of the order of magnitude
  3. Budget estimate
  4. Final assessment.

 

Helpful Memo: Approximate Order of Magnitude

Early in the project, you have very little information, and the management has asked you to quickly provide a budget estimate. In this instance, you will provide a ROM of the budget estimate. It is likely that you will find the accuracy of this estimate is lower than you would after more information is gathered. The accuracy typically ranges from -25% to + 75%.

You will probably find this value by comparing any similar types of projects completed in the past, or simply by looking over a wide range of work and then making a decision about it.

In this instance, you are rapidly estimating and finding a cost estimate that is likely less than you will spend.

 

Answer:

The correct answer is choice #4 because the project is nearing the end and most of the costs are already known. The only variable is the “last component”. It can be concluded that the estimate of the cost of the system should be in the range from + 10% to -10%.

 

Now you are guided by the difference between the ROM and the Final Grade, and at the same time, you have acquired something new and useful for yourself.

 

 

Why throw a system away if it works?

This dilemma exists not only in the post-Soviet space but throughout the world. Inevitably,  there comes a moment when a company needs to decide that “it’s time”; when the complete replacement of an obsolete mechanism or process will make a striking difference.

Understandably, not everyone is ready to take the step of completely replacing older systems, at least not all at once, because it means investing money and time. An internal rule of Itera Research is: if you can do the money/time analysis – do it. In this article, we examine the reason why we adhere to such a policy and what it tells us. 

Starting point

This case was particularly difficult, primarily because the ERP system was written using outdated Microsoft technologies. The task was to uncover missing functionalities and provide further support and development. There were two options for development: 

  1. To refine the existing system OR
  2. Transfer the functionality to a new platform and continue development on new software.

The customer company for which the system was developed has been producing prototypes for precision sheet metal components for mobile, automotive, medical and industrial products since 1995. As it turned out, the customer lacked essential functionality to meet the current needs of the industry. In addition, the code was developed so long ago that there were simply no specialists who could support the current systems in place. These are rare dinosaurs that are difficult to find, to put it mildly. It had undergone several changes and been updated and refined by different developers and, ultimately, no longer satisfied the business owner’s needs.

As stated before, the system was very old. It was developed 15 years prior, at the start of the business. We easily uncovered several issues. Not only was the system developed and maintained by different developers, but there was also no documentation of the updates. So, in this case, it was simply impossible to evaluate the project. It was also extremely challenging to evaluate the development of a new system because it was not clear what was needed and what could be eliminated.

Furthermore, the purchase of ready-made software, in addition to the high price, did not meet the needs of the company. As a result, it was decided that it would be more cost-efficient and timely to create a completely new system.

Why Business Analysis Matters

Before starting the work, it was necessary to choose an approach: Evaluate time and materials or walk through the stages of business analysis, with additional technical analysis included.

This initial evaluation found the following: a lack of documentation, tasks that were superficially constructed, and no time to clarify details. When working with someone else’s code, it is difficult to determine the weaknesses and vulnerabilities in the architecture, which in turn, can lead to latency. Upon initial analysis of the current system, it was found that the segment of missing information was too large, thus it was decided to conduct a business analysis. 

Consistent communication is crucial throughout the stages of business analysis. We conducted a number of workshops, where our business analysts communicated with different departments, collected user experience, and found out, in detail, the flow for each employee. The client and his staff came to our office to improve the process several times throughout this process.

In addition, we conducted a full analysis of the competitors’ systems in order to find out all the disadvantages and advantages of the current functionality and find ways to improve those.

As a result, the customer understood the following:

  1. The approximate level of costs
  2. The duration of possible development 
  3. They received 
    1. an understanding of the details of the system
    2. an outline of the functionality 
    3. Documentation of the plans, assuring any development company could understand what it is and how it works, regardless of who is involved in the project.

Find. Throw it away. Refresh.

Our cooperation began in July 2019. After a series of workshops, we plunged into business processes to think over the addition of old modules and the functionality of new ones. In the process of studying the technical side of the implementation, the architect found a number of technical problems that, in the case of using the old system, resulted in future business problems.

This information was a clear sign that development of a new system was necessary. After providing all the necessary documentation for the new modules and calculating the number of hours for new development, in the case of working with both the old and the new system, we transferred the data to the client.

Having jointly assessed the risks, and the pros and cons of each of the options, it turned out that the development of a new system was even more profitable than adapting the old one.

As a result, a new ERP system was created.

Outcome

Thanks to timely business analysis, the client saw the positive and negative sides of the existing system, estimated the risks and costs, and made a balanced and rational choice.

 

 Imagine: The Development of the World

The world was created in seven days (168 hours), and another thousand years (many hours) for testing and adjustments. 

Developer: Here’s the thing, it was just that the technical task (TT) was unclear, and I had to make a few changes. Yes, according to the plan it was two weeks. Well, they didn’t take several things into account, or they were mistaken, so we had to make some adjustments. We had a difficulty rating of much lower than it actually was (10/10). But it’s not a problem, we can clean it up now, and somewhere in a thousand years it will be ready! 

This story is not uncommon. No, this is not about creating the world as a whole, but about the ability to correctly assess the timing it will take to create it. The same word that exists in almost all modern industries – estimate. If it isn’t already obvious from the word itself – estimating is about calculating the time and man-hours it will take to complete a project.

 

How to estimate deadlines correctly

According to McKinsey’s research, 66% of projects ultimately require more resources, and 17% are completely different once the project is complete. As a result, the amounts of time required for revisions are two to three times higher than those initially stated. The blame could be placed on the teams working on the project, but in reality, the actual estimate of the deadline is to blame.

The cause for such discrepancies are often caused by vague descriptions of technical tasks (TT) and may include reasons like the abstractness of the final product, or unpredictability of volume. Taking into consideration that each project is something unique, it is not necessarily surprising that mistakes are made in the evaluation process.

 

What questions should you ask for an accurate deadline estimate?

Prior to starting the estimate, it is imperative for the developers’ team to gather information through conversations with the customer. It is in this conversation that insights are gleaned about each project. While, to the customer, it may seem that the task is quite obvious, and can easily be carried out without fail, it is at this point that the most inconspicuous mistake lurks, primarily due to a lack of information.

Now stop and think: 

What questions would I ask before making an estimate? Have you thought about it? Write your questions down on a piece of paper so we can compare.

Below are some of the questions that should be asked in order to make an accurate estimate:

  • What are the business goals of your project? An obvious question with which to start, but for some reason, everyone immediately rushes to learn about the product, its benefits, and other, little-needed information. In reality, it depends on the business goal for which the product or service is created. The final product will depend on whether it is to triple your company’s income, increase conversion, etc. As an example, if you are an environmental company with a goal to expand your client base, you could talk about ecology for 3 hours, but in the end, the goal will still be to expand the company’s client base, which is where the focus should remain.
  • What is the purpose of the project?  These points look similar, but if we are talking about a company-wide problem, the specific numbers are important here. To ensure success, the customer will need to share specific details. For example: Our goal is to onboard 100 new clients each month.
  • Is there a “killer feature”? Does your product have a killer feature that makes it unique from others like it. Highlighting this feature is essential, then, and needs to be included in the estimate.
  • What is the value of the project? What about the benefits?  When offering a product or service, value is a multidimensional factor where all the conditions need to be met. While the value is important, it is critical to stress the benefits to your audience. The developer will be able to include these factors in the estimate and narrow the focus for development.
  • How will you get started? Here is where you can get stuck for a long time. It can be tricky to make the decision to ask for support from a development team or order a business analysis service, etc. It is worth considering all the options. Perhaps in this particular situation, it would be more beneficial to cut the scope and invest in the best outside option for launching.
  • Is there an end-to-end solution?  That is, is there a plan to go through the entire product from start to finish? A full-cycle contractor can help with this.
  • Are there technical clarifications from checklists for the sale of specific services? Providing these checklists and technical clarifications will streamline development and help clarify the details involved.
  • How and how often will your company deliver the product or service?  Thanks to regular demonstrations, it is much easier to take into account all the needs that arise along the way and immediately adjust for your tasks.

Now you can start the discovery phase, according to the results of which you should have wireframes and at least a high-level specification or prototypes. Now there is everything for an estimate! 

Only with all the information, can you count on an adequate assessment of your outsourcing partner or developer. It is worth mentioning that most likely, at least 90% at one point or another have not conducted a full assessment. 

As an example, if your contractor is especially self-confident and brags that “yes, I will do everything here in a week and it will be fine,” then you should doubt because a specialist or developer can forget to take into account some features which will ultimately result in additional unplanned money and time. It is this reaction that can help you determine how experienced the person is sitting opposite you.  

For the most part, “pessimists” are already experienced workers. They have more experience with these cases, so they know bottlenecks and take into account more scenarios and pitfalls that will appear during implementation. It is these experienced professionals who have compiled a set of tools (templates) for drawing up a project assessment.

In the next article, we want to tell you what estimates of projects you can get, depending on the accuracy of detail.

Over the past ten years, the number of educational startups has grown immensely. We understand that interest in developments in the field of education is directly related to digitalization. As such, we decided to share one of the recent case studies related to the educational system in Germany.

You never know for certain where a problem will arise, and what will delay the release of the MVP (Minimum Viable Product) for presentation to investors. Inevitably things change, and more often than not they change more than a few times. These changes can start with the MVP itself and end with changes in the goals of the project.

 

Let’s analyze the situation

Let’s say there is a client with a fixed budget, tight deadlines, and bloated functionality. 

Prior to the investor’s arrival, there was a clear deadline for the implementation of the MVP and its demonstration to investors. But without the investors, further, development was impossible, because a large chunk of work was related to the development of APIs (Applicable Programming Interfaces) for providing third-party services. The API itself was very crude and untested, and funding was needed to perform necessary tests and adaptations.

Thus, the work had not yet begun, and things were already getting tense.

This is how the development of an educational startup, “My German University” began. It started as a web application for students looking for a master’s degree program in Germany.

 

There are no unsolvable problems, there is only a bad BA (business analysis)

Before connecting all resources, our Business Analyst, based on client prototypes, formulated a brief for “User Stories”

It was with a short and understandable description of the functionality in hand, that we were able to define a scope. After that, our experienced Project Manager formulated a task prioritization and a tracking plan for all intermediate stages of work.

To keep the project within the budget and finish on time, we proposed simplifying the non-critical functionality. This allowed us to create a working application that could be easily demonstrated to interested parties.

To optimize budget and speed up development, we used an iterative approach with weekly sprints and releases.

 

We know what to do and how to reduce risks

In the beginning, we warned the client about the risks of integrating third-party services that do not have documentation for their API, and whose actual performance is unknown. We discussed the risks of changes, clarified the requirements, and potential adjustments.

After assessing all potential risks, we took responsibility and started development. For continuous monitoring, we proposed a task tracking system and regular meetings, and in the end the project was a huge success.

 

Eventually (In the end)

In the end, having won in early 2020 InnoRampUp (IFB Innovationsstarter GmbH), one of the most attractive government grants in Germany – the company moved from Berlin to Hamburg. 

According to their website, in May 2021 the number of unique search queries exceeded 237 thousand, and the number of views approached a million, while the viewing time was 05.08! The number of current programs has grown from 1660 at the time of launch to 2231, and 30 universities have already signed an agreement to provide unique offers to students.

We are proud to be involved in the success of such fulfilling projects, this creates a passion for us to continue to take on new ideas and improve our own skills.

 

With mobility, technical expertise, and a deep immersion to provide quality business results with robust solutions would soon endow Itera Research as one of the top software solutions and services providers in Ukraine at GoodFirms.

 

Overview of the Company:

Founded in 2004, Itera Research is a software and hardware development company catering to the International market with outsourcing and outstaffing. Located in Kharkiv, Ukraine, and having the representative offices in Germany and the USA, the company has gained many competencies to serve the clients of Education, Smart City, Tourism, Logistics, and Finance. 

Moreover, the company offers IoT, eLearning, CRM, ERP solutions for business automation, and various projects for global clients. The experts profess flexible and quality solutions to the clients by converting the most ambitious business ideas into profitable, secure, durable, robust applications. 

Itera Research gives first-class client service rendered by PMI and UPMA certified managers assigned to every client. Besides this, the group offers Web, Mobile, Desktop custom software development – UI design and coding, implementations on any CMS – outsourcing/outstaffing – Cloud solutions.

 

GoodFirms’ Research Process:

GoodFirms is a research and reviews online platform that judges different business people who provide their services to the service seekers by exercising its inclusive critique process based on the three primary perspectives, viz Quality, Ability, and Reliability. 

Same way, the GoodFirms unit also assessed Itera Research and found that with its outstanding services and solutions, the firm gets entitled as the leading company in e-commerce development services. 

Besides this, the researchers also concluded that Itera Research would soon get dubbed amongst the leading software development and mobile app development at GoodFirms.

The summary from the evaluation, as mentioned-below, describes Itera’s working patterns.

 

Software Development:

Itera Research produces various solutions for different industry verticals that traverse mobile, web, and desktop platforms. The professionals offer a full-suite package of custom software products and application development services.

Itera Research holds a team of project managers, developers, and quality assurance engineers who have experience in developing solutions satisfying clients’ technological business requirements, including E-commerce, IT & Telecom, Education, Healthcare, HoReCa, Tourism, and Entertainment industries. The group takes full responsibility for rendering to clients with quality solutions within time. 

At Itera Research, professional engineers combine their experience and ability to create software and ensure the development process is effective and reliable. The group also guarantees that systems developed matches with high-performance requirements for maximum secure domains.

Thus, equipped with such an experienced and knowledgeable engineers’ team catering to the clients’ requirements would soon bequeath Itera Research as one of the top software development companies in Ukraine at GoodFirms.

 

Mobile App Development:

At Itera Research, the app developers accouche mobile app services compatible with devices such as tablets and smartphones that are used much more often than traditional PCs. Itera Research practices in developing mobile apps, including cross-platform mobile applications such as iOS, Android, Windows 8+.

Moreover, the professional team creates apps to help the clients positively impact the world. Besides this, the app development team specializes in native and hybrid solutions that span millions, change attitudes, and set the standard for innovation in industries. 

The app development team employs a thoughtful approach to design, usability, content, and performance to produce pixel-perfect apps across iOS and Android devices. Thus, collaborating with incredible businesses to bring ideas to life and transform the way iOS and Android communities interact with mobile brands would soon facilitate Itera Research as one of the top mobile app development companies at GoodFirms.

 

Ecommerce Development:

Web commerce requires unique solutions emphasizing a safe and fast processing payment system, a reliable alert system, and simple purchase management. The professionals hold expertise in e-commerce technologies guaranteeing 100% satisfaction for clients.

Itera Research produces Content management systems and eCommerce solutions of any size and complexity. The developers’ team holds vast experience in implementing eCommerce projects that allows them to develop, test, and support eCommerce applications to assure a resilient and efficient system for marketing and selling clients’ services or products to the world.

The developers fully integrate order processing, receiving payments, and inventory management with clients’ sites and give them an ideal shopping experience. Thus, offering high-performance e-commerce solutions for online businesses right from startups to enterprise-grade e-commerce stores facilitates Itera Research as one of the top ecommerce development companies in Kharkiv at GoodFirms.

 

About GoodFirms

Washington, D.C. based GoodFirms is a maverick B2B research and reviews company that helps in finding software development, mobile app development, and e-commerce development agencies rendering the best services to its customers. GoodFirms’ extensive research process ranks the companies, boosts their online reputation, and helps service seekers pick the right technology partner that meets their business needs.

 

About the Author

Anna Stark is presently working as a Content Writer with GoodFirms – Washington D.C. based B2B Research Company, which bridges the gap between service seekers and service providers. Anna’s current role lingers in her to shape every company’s performance and critical attributes into words. She firmly believes in the magic of words and equips new strategies that work, always in with ideas, something new to carve, and something original to decorate the firm’s identity.