I am always skeptical about everything which I cannot understand or I am not familiar with. It often leads me to troubles. In such troubles, I realizes I should speak or take decision based on the proper understanding of the things.
Once one of my colleague was worried about the difficulty of implementing a part of a software requirement. Manager asked him to send an email to bring client's attention to the issue. He hesitated to nod. He is too lazy to prepare an email. "If you cannot put the issues in black and white, it means you didn't understand the requirement properly", manager added. It is a realistic observation. But I didn't believe it then. I learned it later by my own experience.
I was stuck with a task at that time. I believed the requirement was impractical. I went to meet manager to blame the requirement. He was not there. I decided to send an email. He can reply when he gets time or he can forward the mail to client to get clarification.
I wrote down all the issues came up in my mind and started inspecting to make sure the issues are not creation of my mind. The inspection proved some of the issues are baseless. I had misunderstood the requirement or didn't understand properly. Moreover, I came up with some workarounds to fix some of the other issues. It taught me to focus on proposing the improvement needed in the requirements than blindly blaming it. It will move the work forward.
If you think a software requirement is difficult or impractical, first write down the issues. Reading the requirement won't force you to understand it properly. But writing will. And you will get some workarounds to suggest to improve the requirement. Preparing the issue-list have the following benefits.
- It will assist you to comprehend the requirement.
- The issue-list will be useful to the manager/client to understand the issues easier. If your understanding is wrong, they can point it out.
- It will improve your communication skill. You can be more than a code writer.