Question

I've recently started a new job and I've been tasked with completing a feature that another developer didn't finish before he left the company.

The existing tests are out of date (i.e useless)... technical debt everywhere. I think it would be a very bad idea to implement features without tests, I've put this across to him a few times and he keeps saying that we'll complete this feature and then I can do tests.

But the previous developer didn't get around to updating the tests, so it seems that my manager just says that, but doesn't mean it and keeps pushing for more features.

This latest feature is a big one, and I think it would be a really bad idea to finish it without writing tests for the whole application first. I understand that my manager has his own deadlines/pressures etc, but this feature needs to be done right, or it could come back to haunt both of us.

So how can I put this across to him in a way that will sink in how important this issue is?

I should also mention that I'm the sole developer, and the manager is non-technical.

Was it helpful?

Solution

I know this problems from my company and after a nearly failed project the management decided to put more effort in testing. But that's of course not what you need.

I would try to explain him, that the later a bug / error is noticed, the more expensive (money & time) the correction will be. Show understanding for his requirements as he also needs to fulfill his own tasks but show up, that you can not guarantee the fulfillment of requirements in time. According to that, the "project success" is on risk.

As he is the project manager he would have need to explain to his bosses why he decided as he did. (This is implicit, I don't think you have to even mention it after your explanation)

What's really important is, that you communicate an a common knowledge level. Use language he understands and ask him for his sight on the topic. This way you get a discussion on the same level and hopefully he stops to block. I hope this helps you out ;)

OTHER TIPS

I'm here assuming your project has more or less been used at this point.

Do not write tests for things that are already used. Such features are tested by the users themselves. Only write tests when a bug is encountered, to ensure that it doesn't happen again.

As for the new features, however, you should test them. You should maybe even test them before they exist (TDD). Do not work on another entity before the other one has been tested, and say that a feature is "not ready" if it hasn't been tested (which is true). Perhaps even include the testing time in the estimations for every task, when you feel it is indeed mandatory.

If tests will help you deliver faster and more effectively, write them as you go (particularly possible in the form of asserts). He's hearing that you would like to waste time, because he has no basis for whether or not tests are a useful thing.

Licensed under: CC-BY-SA with attribution
scroll top