📜 ⬆️ ⬇️

Design, development and testing cycles

Having worked with different teams, I found out for myself a few development rules that I want to share with you.

Design


  1. It is better to spend more time at the design stage of an information system than to lose time and money later.
  2. Errors in the design can lead to: delaying the timeframe, multiple cost of the project.
  3. It is necessary to design the system entirely from the beginning to the end (without adding additional functionality) or to provide for modularity:

    - development and refinement of the concept in full.
    - development of a very detailed technical task.

    - development of database schema
    - development of controller scenarios
    - design development of presentation templates
    - development of user behavior script (it’s a test script)
    - CEO
    - ...
  4. It is better to create a tender for the creation of project documentation and technical specifications, and then conduct an audit. Perhaps at the initial stage you will spend more money, but you can save many times more in the future.

Development


1. In the development, use ready-made and stable solutions: this means that it is better to use the MVC (Model View Controller) framework or ORM (Object Relational Mapping) or AR (Active Record) for working with the database, and CRUD ( Create Read Update Delete) is a generator that generates code without errors.
')
Nobody will appreciate your skill of a low-level developer, but if the system works stably and without errors it will be a much greater advantage.

2. Document the code.

3. Create a good and understandable technical documentation.

4. Use the docker.

5. Use automatic versioning systems.

Team work organization


  1. Use version control systems, I used git in my work.
  2. Separate the work of developers according to different functional modules, so that when the branches of the version control system merge into one, there are no conflicts.
  3. Do not do extreme programming on your knee when the task is allotted from several hours to several days.

Set tasks for at least a week and a maximum for a month before the next build.

Testing


  1. Do not use the system of setting and correcting tasks for testers.
  2. Use automated tests: create a software test module that will run every time before building and test the entire system automatically.

Development cycle


After you have created a high-quality technical task, you can proceed to the development, then I will give a recurring cycle:

1. Setting tasks to developers in various systems for monitoring task execution so that they do not affect each other’s code, for example, by dividing the system into modules, each working in its own branch.

Tasks must be completed within a week.

After completing each task, the developer must run automated software tests that cover the entire system.

2. Every Monday, each developer’s code is merged into the main branch.

After the result of the work of the whole team appears in the main branch, each of the developers copies to itself the main branch.

Then the cycle repeats.

With this approach


  1. The number of errors as a result of performing tasks will be minimal.
  2. You can create a better software product.
  3. You will save time.
  4. You will save money.
  5. The team will work faster, more efficiently, more harmoniously (without conflict in terms of code changes).
  6. You will be able to complete tasks on time.
  7. Completed tasks will be better.
  8. You do not have to make additional tasks, such as: changing the design, functionality or something else during the course of work.

That will make the result more predictable and simple and clear.

I have been programming for more than 10 years, all interesting and successful projects!

Source: https://habr.com/ru/post/442704/


All Articles