How to develop a good web application and avoid mistakes – experts answer

About the development context

Any application is written to solve a specific problem. Software for business tasks must be flexible in responding to changes, and the simpler and shorter the reaction time, the more software is viable in a particular environment.

Accordingly, the developer (both the project manager, and the product owner, and the end user) must from the very beginning realize – what and what for.

Without answers to these questions, starting to develop is stupid.

Fast prototypes and instant customer feedback

We use tools that allow you to quickly test the hypothesis and decide on the launch of some features in production. It can be a framework with ready-made tools or a project management methodology or established design patterns.

Here Ruby on Rails / Laravel / Nest.js / Django show themselves well. Such things help maintain a high pace of development. Otherwise, the business may change the concept, reduce the budget or even close the project. And participants in the development without obvious results run the risk of simply burning out.

About the environment

Web services can be accessed by completely different users from a variety of devices, browsers, with distributed geography, connection speed, and so on.

Now layout for different screens is the most minor concern. We live in a time when that pain is no longer in the era of IE6-7-8-9. Today it is much easier to work with interfaces, especially with the widespread transition of browsers to WebKit.

It is more important to think about network latency, since the server and the user can be at a decent distance from each other. If for one connection there is a quick answer, for another – a long one, then this will be a completely different result for the user.

Speaking about the logic of building interfaces, it is worth remembering that despite the abundance of various frameworks (Angular, React, Vue) that offer to simplify front-end development, inexperience build monstrous systems without thinking whether this code is needed on the page. The page is overloaded, it takes a long time to render, it does not work well on mobile devices. As a result, users abandon the application, the business is losing customers and money.

Remember security

Today, many argue about how to exchange data – REST / SOAP / GraphQL – and at the same time transmit important information in unencrypted form. Just recently, we came across a project that we received for revision, and found that if you disconnect the Internet at the time of authentication, the application gives an “ERROR” error and displays a login / password pair.

About decomposition

If we talk about the organization of processes, then you always need to keep in mind that there should be a production environment and a test environment where you can test and verify everything. And yes, backups are needed all and always. Creating software should always be decomposed into separate sections, each has its own work – backend, frontend, testing, not to mention analysts, UX & UI designer, engineer devops.

Full-stack is cool, but risky, you can and should use it, but in a metered way. Still, the front and the back should be separated, otherwise people will quickly burn out or the pace of the project will slow down, especially when work is underway on a large application.

About important

Not so important, MVC or MVP.

It is important as soon as possible to achieve a common context for all project participants: developers, analysts, customers.

It is important to speak one intelligible language.

It is important to decompose the entire development into small elements and use exactly what you need at a particular moment.

It is important to know your tools.

Isolate what you can. Believe me, there will be less pain.

Everything that I said above is expensive and time consuming, but in Enterprise-development it is impossible without it. The better the level of isolation of things, the calmer the application and developers will live in the future.

Remember 12 factors

Everything that I told, and even more, is contained in the principles of a 12-factor application – an open methodology for creating web services that contains general declarations of software development, regardless of platform, development language, purpose, etc. These 12 factors are the 12 rules for writing applications correctly.

Unfortunately, these 12 factors are most often discovered in the middle / senior position, when they are already being burned for mistakes that could have been avoided. Use it as a guide in any projects!

Similar Posts

Leave a Reply