📜 ⬆️ ⬇️

Catch in the shortest possible time - development stages

We are given tasks and set deadlines. Sometimes deadlines are not realistic. A possible reason is that the task was not designed, it was not divided into stages. It is difficult to set deadlines based only on intuition and experience.

To me, as a website developer, such tasks come across. The deadlines for these tasks are set on the basis of business requirements. I will share my experience - how, under narrow deadlines, it was possible to successfully implement the requirements of a business.

I cite tips that I myself am guided by and which have helped me out more than once. Each statement requires discussion, reflection and criticism.
The tone of the article seems to be categorical. Immediately apologize for that. For the sake of brevity, I omitted the phrases “I think,” “I suppose,” and so on.

I will share experience on the basis of an example. Let's invent the following task. Figures and terms conditional.
')
We are developing an e-commerce site that sells children's toys. Payment in cash only. We realize cashless payments with the help of:


The manager has set a deadline - a week.
You rummaged in the ready-made code, studied the architecture, thought about these requirements. They remembered that 5 more tasks are hanging on us, which no one has canceled. And realized that in a timely manner you can not cope.
You approached the manager, explained the situation. The manager responded as follows:


These options do not suit you. There is not enough time. You were at an impasse and thought about these decisions:


How to be?
Here will help the book by Stephen R. Covey "7 skills of highly effective people"

  1. Be proactive
  2. Starting, imagine the ultimate goal.
  3. First do what you need to do first
  4. Think in the spirit of winning - won


Be proactive - suggest a solution to the problem. Some managers even have a corresponding sign hanging on the door “do not enter without suggestions”.

Starting, imagine the ultimate goal - the ultimate goal here is not to solve the problem, but to satisfy the current needs of the business.
First, do what you need to do first - this is the solution to the problem. Independently find out the priorities and divide the task into stages!

Think in the spirit of winning - winning - phasing will allow you to release a ready-made function even earlier than the deadline. The manager is more willing to accept a proposal for the stages if he gets the necessary function early.

Let us also recall the definition of the Scrum-methodology - this is a set of principles allowing in rigidly fixed and short-term iterations to provide the end user with working software with new features for which the highest priority is defined.

Actions such:
  1. We divide the task into subtasks - a proactive approach. Do not ask the manager, do it yourself.
  2. We find out the priorities of each subtask.
  3. We break a task into stages.
  4. Together with the manager, we adjust the timing.
  5. Gradually solve a big task.


Subtasks turned out such:
  1. implement paypal,
  2. realize yandex money
  3. implement QIWI wallet


The manager adjusts the list of subtasks. Priorities were set based on the percentage of customers who would like to use payment systems. Got the following steps:
  1. Yandex.Money 60% of users
  2. QIWI Wallet 30% of users
  3. PayPal - 10% of users.


Together with the manager set the following dates:
  1. Yandex.Money - 3 days
  2. QIWI Wallet - 4 days
  3. PayPal - 2 days.


Results:

It turned out that we do not hope to solve the problem in a week, but much earlier we will release a useful function for clients.

The splitting into stages I showed on a simple task. In practice, the tasks are much more difficult, there are more stages; managers do not agree with the proposal. For justification we use UML diagrams.

The diagrams clearly show that the task is complex, each element contains many details and features. Based on such a visual description, you justify why it is impossible to implement the task in a timely manner.
The timing of the performance of individual elements is estimated more precisely by the timing of the performance of a large task.

Findings:
  1. Instead of excuses and complaints for inadequate terms, you proposed a constructive solution - break the task into stages.
  2. With the help of diagrams, you proved the complexity of the task and proved that this task is divided into stages.
  3. The manager is satisfied - the first release (stage 1) took place ahead of schedule, useful documentation appeared.
  4. You improved your communication skills with management, avoided inadequate deadlines and big rework.
  5. You have improved your design and documentation skills by providing some kind of ready-made solution that your experienced colleague has improved.
  6. The work has become more interesting - you have learned additional information about the project (user priorities)


Conclusions in the form of tips:
  1. Come with a ready solution. You will receive an additional bonus - errors are corrected.
  2. Do not spend a lot of time splitting tasks into subtasks. Meaning - to prepare a draft for discussion.
  3. Do not proceed to coding. Even if the manager designed and drew the schemes to you. Sketch your own interpretation of the problem. This will clarify unclear points and save you a lot of time.
  4. Try to prioritize yourself.
  5. Design yourself and do not expect the manager or team leader to fully manage and adjust the steps. They have no time for this.


References:


PS
  1. Waiting for your links and useful tips in the topic - add to the article
  2. If the topic is interesting - I will write an article where I will analyze the process of designing and dividing the task into stages using a complex example.

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


All Articles