18

Previously I've asked questions regarding the way my manager speaks to me; this is separate from those.

This is my first development job and my manager is not a technical person (at least when it comes to coding). The instructions I'm given are not sufficient, or I don't know how to interpret them sufficiently well. Here's an example:

Requirements specifications for module. Read rules and project attributes.

Module: “tdm_search_attr”

Input:
1. Instance of config XML object,
2. Reference to DB hash table containing columns: intersect_area, main_id (DB=database)

Output (used as input for next module):
1. DB temp table myschema.selected_attr with projected values of TDM attributes (excempt height, volume, weight, info_source) according to projecting rules in the table tdm.pp_preview_rules, columns names in the table selected_attr: maind_id + all the attributes names in the table dd_rules_selected.
2. Starting and completion message

Requirements :
1. Should be invoked by module tdm_project_attr.py
2. For each polygon from DB hash table should check the condition: intersect_area < 51 %, if condition is true then – polygon should be added into table selected_attr
3. For each to be added polygon should loop through the attributes in the table tdm_mm_proj.pp_preview_rules (excempt height, volume, weight, info_source), generate corresponding projected values according to rules, and store them in array object,
4. For each to be added polygon array of projected values should be inserted as a new row to the table projected_attr

Given I know some context I can figure out some of this, but I'm expected to build a program from these instructions (and come up with the documentation for it). The manager gets mad when I don't understand.

What can I do to be more productive? I realize asking specific questions is better than asking vague ones, but when I read this it's more of an overall sense of disorganization.

EDIT: when I ask for clarification the explination given to me is as vague and “gibberish” as the original. After a while I get fatigued and say I get it to take a break from it. Is there a better way to phrase it that I think I have an idea what’s going on but need some time to myself to poke around? Let me know if this is a question on it's own and I'll change it.

  • 6
    These instructions came from someone who wrote them. He/she should be able to clarify. – Jan Doggen Jul 27 '15 at 9:07
  • 7
    You don't say either 'yes' or 'no'. You say that it's going to take a while for you to make sense of it and you'll get back to him with any questions. Who wrote these instructions anyway? – Vietnhi Phuvan Jul 27 '15 at 9:49
  • 8
    @SomeCallMeSam these instructions clearly come from someone who IS technical and summarising so he is probably getting mad because he is passing it on from someone else (maybe a previous employee/contractor's notes) and doesn't know the answers to your questions. – JamesRyan Jul 27 '15 at 11:09
  • 11
    Those are notes taken during meetings when requirements are being discussed with customers, not requirements. A real requirements document should be written based on them (and be way more rigorous in terminology and formatting), and then one can develop on top of that. – Alex Jul 27 '15 at 13:28
  • 9
    Just as a side comment, Sun Tzu once wrote basically that if orders are ever misunderstood, the error always rests purely on the warlord. – Panzercrisis Jul 27 '15 at 15:07
31

From reading your other questions, it seems there's a communication issue between you and your boss.

First, I wouldn't come directly to him with all my questions, as it seems to bother him and lead to deteriorate your work environment. Do what you can from the instructions he gave you:

  • Start small, i.e. you could try building a sample DB request before starting to develop in python. This could make you understand the problematic / the requirements better.
  • After the initial development, you might find out that what seemed to be blocking points appears to be clearer. Also, on non-specific issues, use google and/or other resources to be sure there isn't a simple solution to your issue.
  • Once you've done all you can, identify the blocking points, list them all and prioritize the issues.

You can then go back to your boss for clarification.

There's a big difference between asking:

I don't understand what you mean.

and

On this specific issue, I wasn't able to continue because this and this. I tried that, but I am unsure it would suit your needs. Could you confirm this is the way to do it / clarify your needs on that point?

Basically, you need to be more pro-active on your solution finding, and be more on the point when asking for clarification so as to not bother your boss too often. Some people will see you asking for guidance as pestering, and in those case you need to show them you understand the issue and did all you could before asking them your question.

  • Great answer, looking at the bigger picture. This problem seems part of a series of problems and while all need to be save individually, the larger problem in the background shouldn't be forgotten either. – Mast Jul 27 '15 at 20:32
3

Your manager's language seems quite technical for a non-technical person. He may be concerned about your level of expertise or understanding, and is trying to compensate by specifying tasks in a more technical way.

I suggest you ask your manager for more contextual information, starting with the business case (how the project will benefit your organisation) and what the program is supposed to do for its users, and go into progressively more detail on the individual features you are working on.

Avoid discussing programming specifics with a non-programmer - you mentioned in a comment that your manager says it's a developer's job to understand the details of how a feature is implemented and he is broadly right. You may have a senior developer in the team you can ask for technical advice, otherwise there are plenty of places to ask online including Stack Exchange.

In your comment, you mentioned one thing that was not included in your original question that is quite important: that your manager's requests and specifications are emailed to you. Email is a pretty bad tool to communicate around development work as it's all too easy to lose important details and it doesn't track important project information such as priorities and deadlines. You should suggest to your manager that you use some kind of ticketing or project management system to specify and manage the development tasks. This will allow you to develop specifications for features collaboratively and make responsibilities clear. For example, it will show when a task is assigned to your manager for more input and the discussion between you, and your manager will be able to clearly set priorities and track the progress of the project. There are many free and open source solutions available, for example Trello, Bootcamp or Redmine.

  • 2
    What he specifies doesn't look technical to me, but what we use the technical term "gobbledygook" for, more commonly known as "gibberish". – gnasher729 Jul 27 '15 at 16:54
  • @gnasher729 I think you're really just saying the same thing Tvjp is. The point is that it's full of specific references to programming technologies (like XML), specific data elements (database tables and columns), specific code modules, and implementation details. It's an attempt at specifying the entire algorithm instead of specifying what the actual feature being added is. A "non-technical" person has no business going into that level of detail; I think the OP is running into a situation where someone with authority thinks they know more than they do. – jpmc26 Jul 27 '15 at 17:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.