How 1C:Enterprise Drives Agile Development

Alex Lashkov
Yellow Universe
Published in
6 min readDec 27, 2021

--

Agile methodology has become a golden standard in software development — most IT outsourcing companies are now using this approach as the primary one. However, there’s still a large number of software developers who’re struggling to implement efficient workflows since they do not use agile-native development tools. Instead, they spend time and effort mastering third-party tools or hiring additional staff who’d deal with these tools for them. And this is more often the case than it might seem.

Today, we’ll discuss the differences between the agile and traditional, or waterfall, approaches to software development, look at the stages of the agile process and find out how 1C solutions fit into them.

Note: We understand that Agile is not a new concept, and lots of people understand the basics. Still, this is one of the most efficient methodologies, and it is crucial to understand how to get the most out of it.

Waterfall vs Agile development paradigms

Generally speaking, the waterfall approach implies a linear, sequential model of development, whereas the agile methodology is an iterative and collaborative process.

The waterfall methodology stems from that of offline manufacturing companies where the development stage would only begin after all the requirements are collected, and the entire system is thought out and carefully documented in every detail. The whole project is done within one iteration — there is no cyclic going back to previous stages.

For example, if there’s a task of developing a new vehicle model, it has to be fully functional from the very first version. In other words, you cannot develop a vehicle iteration-wise, component by component, adding or removing parts along the way — it just won’t work. So, in this case, the first thing to do will be to devise full documentation, including drafts, drawings, descriptions, specifications, manuals, etc. The development phase does not start unless the stage of collecting system requirements, analysis and design is complete.

This approach has been applied to software development and used for decades until recently. Its distinctive feature is very long development stages where every stage results in a market-ready, fully functional product. This might be useful when creating such systems as an airplane autopilot, or a real-time missile navigation system, that is, the systems that cannot operate without every little detail implemented. But for most commercial software products like websites, mobile apps, or business software, this approach is too slow and ineffective as compared to the agile one.

The agile model is far more flexible and works perfectly well under uncertainty and in the case of quickly changing requirements. The development process is broken down into short iterations (sprints), each followed by a feedback/testing stage that helps define the next steps and adjust the development trajectory correspondingly. Therefore, such an approach works a lot better under uncertainty than the waterfall one.

The manifesto of the agile methodology

Instead of building a fully functional product at once and then finding out it doesn’t perform well or is lacking some crucial functions, we take shorter iterations and assess what is working and what’s not. This is because, at the end of a sprint, developers receive feedback from real users rather than from managers or coders.

For example, if you’re developing a website using the agile model, you start with a few assumptions, or hypotheses, about what users might want to see on this website. So, you formulate your ideas, user cases and user personas, as well as their pain points. On this basis, you compile a list of features to be developed (the project backlog). Next, you need to analyze these features by estimating their weight (importance), the number of users that will need them, and how many resources are required for their implementation — this is called backlog prioritization. And then you test your hypotheses by opening public access to real users, collecting feedback from them and making adjustments when needed.

The stages of agile development

As already mentioned, the agile development process is split into sprints which are usually 2–4 weeks long. Basically, at the beginning of each sprint, the project team chooses some features from the top of the backlog and starts to develop them. The overall product development process can be divided into three distinctive stages.

1. Testing hypotheses

First off, the general concept of a product and its features need to be thoroughly tested. To do so, a number of prototypes are developed and demonstrated to potential users who are then asked to give feedback, which usually takes a few first sprints. The less effort and time is spent to get the first feedback, the more effective and less costly this stage will be.

Traditional development “from scratch” using С++, Java, or other programming languages takes too much time and resources, this is why it’s considered non-optimal for this initial stage. What you need is a quick and cheap method to test your assumptions without building a complex application. Various 3rd party prototyping tools, both online and offline, can be of help here.

1С:Enterprise has its own prototyping no-code tools incorporated into the core development platform, so you don’t need to invest your time and money into any additional tools. Besides, to get a working prototype, you’ll just need to outline the data structure using a drag-and-drop interface, so there’s no need to engage experienced developers. This is a speedy and cheap way to put prototypes together and test them.

2. Building an MVP

Unlike prototypes, an MVP (minimum viable product) already entails some useful functionality. Usually, it includes one of the key features of the future product.

However, it’s presented as a rough approximation since there’s still uncertainty regarding how exactly it should work and look. For example, such components as visual design, workflows, interfaces need to be tested and optimized.

As a result of further iterations, an MVP is often completely redesigned since many features are added, while many others are removed. It’s often too wasteful to use a full-code approach at this stage, so external tools are often used. For example, with 1С:Enterprise platform, you can quickly convert your prototype into an MVP by using the low-code approach and adding some pieces of code here and there, which, again, spares you from the need to engage highly-skilled software engineers at this stage.

3. Launching the end product

The main characteristic of an end product (version 1.0) is that it’s now fully functional and publicly available. However, this doesn’t mean it’s devoid of bugs and defects — these are being fixed as developers receive users’ feedback. Further evolution of the product occurs in sprints as well. Today, new versions of products are released every 2–3 weeks. This is why your development platform should be perfectly tailored for continuous development and updates.

Besides, when using traditional development environments, the need for massive refactoring often occurs. Early versions of a product are developed based on an early understanding of its functionality and technical requirements. However, as the product evolves, many architectural or coding solutions might end up being ineffective. For example, the product might work slowly or go down under high load, etc., which can be solved by refactoring the code, adding or removing certain functions. Often, large chunks of code have to be completely rewritten. This requires more time and money.

The issue of refactoring is less pressing in the 1С:Enterprise environment since there’s less code in the first place. The no-code prototype turns into a low-code MVP, which is then upgraded to an end project by adding some more code and functionality — and all that is done within one and the same working environment. There are outstanding code recycling opportunities, so nothing goes to waste.

Final thoughts

The agile approach to software development is one of the most successful methodologies nowadays. By using an iterative model of development, you can quickly adapt your product to the customers’ needs and make it highly competitive in the market. 1C:Enterprise platform is perfectly suited for the agile product development and management process since it enables faster and easier ways to create prototypes, MVPs and end products within a single environment.

--

--