среда, 25 февраля 2015 г.

About RS, time pressure and forgetting

Original in Russian: http://18delphi.blogspot.ru/2013/04/blog-post.html

To forget is human. Everyone forgets. That’s axiomatic.

Managers, designers, analysts, customers (stakeholders, to be brief) – sometime do not answer ALL questions put to them. That’s an assumption. You’re lucky if it is not your case Then, this post is not for you. Do not read it. Sleep in peace.

But! It often happens that when RS comes to developers, it raises questions.

Do your job honest.

There is nothing worse than the unclarified questions hidden deep in your code of genius. All the same no one will appreciate its value.

Have respect for your colleagues coming in about “ten years after you”.


And STRIVE to get answers.

If during the implementation of RS you have a question that calls up stakeholders to answer, then, in order to maintain the “stream” state and to keep up the pace of the developing, I recommend you the following:

1. Ask the question.
2. MAKE SURE it reaches addressee.
3. Write an ASSERT. Yes, right! The trivial assert with a condition you don’t understand.
4. Formulate the HEART of the question in the commentaries to the code.
5. Name the DATE and time of the question. On CVS it is tedious and we are too lazy to do it.
6. Name the number of “ticket” in data base or give a reference to the discussion if it takes place electronically.
7. Prepare rather meaningful message to log for user version of the system. DISABLE ASSERTs in user version of the system.
8. Write - EXIT. In case further you have written another code of genius.
9. Wait for the answer and continue to implement RS.
10. If after a “reasonable” period of time you don’t get the answer – update your commentary to the code with details about “when, who and where”.
11. If you do not get answers – close the task and delegate it to Quality Control Group. It is better to give the list of unclarified details. May be the QCG will help you and roll back the task giving the details.
12. If you get the answer, say “thank you” to the one that gives it. He has “done part of your work”.
13. Delete the ASSERT.
14. Write a sensible code taking the answer into account.
15. Write a test. This aspect of the system has taken time and nerves of lots of people. It already WORTH being covered with test.
16. Sleep in peace till some ASSERT wakes you up.

Try it. May be you will like it.

I warn you that stakeholder may not like it. Anyway, I’d try.

After all – they do their job well. Honest. THINK of those who will come to replace you. They may be not that genius as you are.

And if you think – “oh, I have 800 unfinished tasks, oh, this is too hard for me” – look here:

That’s just an self-irony, you know…

P.S. There are alternatives. But, as for me, they are not that effective.

That’s how I see them:
1. Do not ask questions and rely on your resources. Don’t you consider yourself too genius?
2. Do not ask questions and leave just as it is. As for me – you do not think of the future.
3. Ask questions and turn your attention to the other task. Choosing this option you waste your time and exert yourself with context switching, leaving one “stream” and entering the other. This is wasteful.
4. Ask questions and wait for all answers. And do nothing. That’s not for me. Idleness starts to torment me and I lose my self-respect.
5. Call for RS to be improved and forget about it. “Till all this bureaucracy shakes loose”. That is the least constructive way. If you choose it, think if you should be a developer. “Simple making money” can be somewhere else. For example, on Forex. Or other “bubbles”.

Комментариев нет:

Отправить комментарий