1

This question already has an answer here:

I recently started working in the IT department of a "slow" company. We have almost no documentation for our code and systems, neither as wiki nor as self descriptive code/comments. I have to do QA for a software application on which only one developer ("James") works.

Through gossip, I have learned that James worries about job security. In my interactions with him, it seems that he tries to help as little as possible, almost as if to stall other people's progress. To make matters worse, we don't work in the same office. So, I can't even see if he is really busy or just trying to avoid me as much as possible. Furthermore, I have asked help from other developers who had briefly worked on small parts or bugs of "his" app in the far past, and the knowledge transfer was excellent & informative. Unfortunately, those developers don't know the whole app and have to direct me to James for help for the "bigger" issues.

How do I get information out of this person so that I can do my work ? I am thinking of putting it in front of my manager after observing James some more, but I am not sure how to do it.

UPDATE -

How exactly is he stalling you ? By giving as little information as possible and avoiding me as much as possible. He does not tell me he is busy.

Do you need ongoing input from him or are you trying to divine what his application is doing to set up tests? I need ongoing input from him about the app and tests.

What exactly do you mean by "observing" ? I want to give him a few more days to see if he changes his approach to knowledge transfer. But, by not learning fast enough, I risk jeopardizing my job.

marked as duplicate by IDrinkandIKnowThings, Chris E, gnat, Michael Grubey, Masked Man Jan 14 '17 at 15:03

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Welcome to the site. Couple of clarifications: how exactly is he stalling you? Not answering questions? Avoiding you? Do you need ongoing input from him or are you trying to divine what his application is doing to set up tests? What exactly do you mean by "observing"? You can edit relevant information into your question. – Lilienthal Jan 13 '17 at 20:49
  • Edited the title but I'm not that happy with the new one. Edit again if you can reword it better. – Lilienthal Jan 13 '17 at 20:51
  • 1
    You're doing QA - that's testing not coding. Do you have any documentation as to how the app is intended to work? I assume that once you know how the app is intended to work, you can design tests on your own to verify whether the app is working as intended. – Vietnhi Phuvan Jan 13 '17 at 21:07
  • Is anyone in charge at your company? How are they not aware of the problems caused by the lack of cooperation? – user8365 Jan 13 '17 at 21:57
6

If this person is behaving in the manner you're describing, then this is in fact a problem that needs to be dealt with by management. It is however key that you, as a non-manager, approach this strictly from the angle of an impediment to you doing your job.

Do not go to management with any statements about 'James' putting job security interests ahead of the company's interests. Instead, the place to start is by talking to whatever 'project manager' is in charge of the project you're working on. Tell them you're blocked on <INSERT QA TASK> because you don't have the information you need. Ask if there's a knowledge base on this system. Make sure they're aware that you don't have the information you need, but don't try to blame 'James' as the cause. It's very likely that they'll tell you at some point to 'try reaching out to James, he works on that system'. At that point, you'll continue to reach out him as you've been doing, but you'll CC this manager on all of your requests of help from James. For a lot of people, just having that CC on the email will suddenly change both the turnaround time and the tune of their correspondences with you. But if it doesn't, just keep making sure the manager has visibility into what's going on.

If your project does daily standups, your standup report should include something along the lines of "I am still having trouble finding the information I need on <BLANK>. I couldn't find anything in the knowledge base. I have tried reaching out to <OTHER PEOPLE YOU'VE TALKED TO> and James. I am still waiting on a followup.". If not, try to make frequent status reports to the manager saying "I am not able to get these questions answered. It takes a long turnaround time when I have to bug the developers frequently. I think a knowledge base for this system would be very valuable. Any suggestions?". Try to always make sure you're not coming off as 'blaming James'.

Eventually, if 'James' is indeed the problem, it will be obvious to them, and they will take the actions necessary. Or, if management fails to act after extended visibility to this issue, perhaps 'James' is just a symptom of a much deeper management problem, and this company may not be the right environment for you.

  • 1
    +1, particularly for the knowledge base idea, but if you have a reasonably good relationship with your boss, the degree of caution here is a little excessive. You don't want to speculate on why James isn't helping, but noting that "James is very slow to respond and provides incomplete answers" would not be out of line. – jpatokal Jan 14 '17 at 0:42
  • Thanks for the detailed response. My only concern is that the other person should not become more hostile and try to derail my efforts in improving things. Its a common understanding that the "bus factor" of the team should be improved. – ThroughFireAndFlames Jan 14 '17 at 1:51
1

Things to try:

1) Get him to meet with you at your office, or wherever your boss is. Schedule a formal meeting and just for kicks, have someone else from your office join you to help take notes.

2) Record your interaction. Use Skype, or some facility over the phone. Make sure he knows your interaction is being recorded as a memorandum. If he's dragging his feet, you have evidence.

  • I think both of these are good ideas. #2 is a little bit extreme, but I've heard it suggested in my office. #2 never came to pass in my office. I agree that the OP's managers need to get involved, otherwise, they're little more than "absentee managers"...asleep at the helm. – Inquisitive Jan 14 '17 at 0:09
  • #2 may land you in legal hot water if you don't inform James he's being recorded, and would come off as quite hostile if you do. Emails of you requesting things and James not replying should be plenty of "evidence". – jpatokal Jan 14 '17 at 0:44
  • @jpatokal The e-mail chain is a real pain, especially because James may avoid it completely by never responding and just calling. – Xavier J Jan 14 '17 at 19:33
1

I am wondering how you're planning to do any QA if you don't have any written specs for how the application is supposed to work - it sounds to me like you've been given "Mission: Impossible"

  1. Tell your management that you haven't found any written documentation as to how this app is supposed to work. Ask your management where you are to find this documentation.

  2. James is worried about his job and in my opinion, rightfully so. Because I would have fired him long ago for not documenting his work and therefore making his code unmaintainable. Along with the punk who commissioned this app and supervised the building of this app. I don't know what management processes you see in this app, but I see dereliction of duty and abdication of responsibility. But let's hold off on the rant for a moment.

  3. Explain to management that the absence of documentation makes it imperative that James cooperates fully and enthusiastically with you - I don't care if he has to fake his enthusiasm. Explain to management that you won't be able to do anything without James doing your bidding. Have management explicitly mandate James to cooperate with you in every respect and explicitly tell James that he will be held accountable for cooperating with you.

  4. Work out a testing protocol designed to elicit how this app is currently working. You need to find out what this app is doing in response to inputs and at this point, this is information that you don't have.

  5. Review how this app is working and report to management on any behavior of the app that you don't like. The management should tell you "yes, that's the output we expect from the app" or "This output does not make sense. Flag your test. We probably need to correct this". At this point, you have a basis of reference about how this app is currently working versus how it's supposed to work.

  6. Have James work out and implement any code fixes. QA the app again.

  7. Tell your management that you have QA'ed the app to the extent feasible and have them sign off on your work.

If James fails to cooperate in any way, report him to management and have management crack down on him. When I don't get the cooperation I need, I extort it.

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