Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Consider there is a manager and a programmer in a project. A manager crates a task which a programmer performs.

In this situation who should check that a programmer didn't make some non-testable mistakes like using non thread-safe map in a singleton service? And who checks the overall project code structure?

share|improve this question
8  
Usually I'd answer "peer review" or "team lead", but without peers, without a team, I can only guess that the answer is "nobody". –  user281377 Feb 24 '11 at 9:47
2  
codereview.stackexchange.com ! –  Michael K Feb 24 '11 at 15:05

5 Answers 5

I once worked in a company that had standardized on a process so that every single task had a manager, an implementer and a tester, who all had to be different people. Manager was whoever submitted the task, and he typically hand-picked the other two.

That worked rather well for development tasks.

In your case, if theres' no specific tester, it's of course the manager who should check if the task was really done. Definition of Done might help.

share|improve this answer
    
No, my question was not about checking that task is performed. The question is who performs code expertise? –  Andrey Feb 24 '11 at 10:03
    
Still: the manager. If the manager cannot, perhaps he shouldn't be the manager. –  vegai Feb 24 '11 at 10:07
    
@vegai: managers manage people. code review should be done by programmers, not managers. If you are the only programmer then you are in trouble. –  Matt Ellen Feb 24 '11 at 12:10
2  
@Matt Ellen - If having someone reviewing your code is the only way you'll follow the rules, that's trouble. Code review is preferable, but there is a lot of quality software created by lone programmers. –  JeffO Feb 24 '11 at 14:57
    
@Jeff O: yes, I agree. What I meant to say is that a code review by yourself, on your own code is an exercise in futility. –  Matt Ellen Feb 24 '11 at 15:30

Regarding the "non testable" mistakes:

At the end of the day, this has to be done by a human who is skilled in software development. If the manager is not also a programmer, then the programmer just has to be extra-diligent.

This kind of problem can be reduced by using static analysis tools like pmd, findbugs or lint.

Alternatively, the programmer could post to codereview.stackexchange.com.

Regarding the "overall structure"

Who cares?

I mean that literally. The person who needs to check it is the one who cares about what the overall structure should be.

share|improve this answer
    
posting your employer's IP on the internet is probably not a good idea –  jk. Feb 24 '11 at 14:05
    
True, I should qualify that: "Given appropriate permission, post to ...". –  Paul Butcher Feb 24 '11 at 14:12

There is not one right answer because this will vary from each company structure/culture. Although, typically I would assume if the manager is a technical manager than he/she might be the one responsible for the overall code structure and for enforcing best practices.

share|improve this answer

If a manager with no programming experience is responsible for a developer, there is no choice but to trust their coding. Usually in this case, they just want the application to work and they don't get caught up in the how.

My boss has a programming background, but I've been allowed to: choose the languages, coding style, design methodology, source control usage, etc. I'm on the honor system when it comes to sticking with it.

We discussed future growth of our team and he mentioned we could hire a junior developer. I told him if I was smart, I'd suggest they add someone who is better than I am. It's the best way to improve.

share|improve this answer

I work in a medium size shop (20 - 30 programmers). We have a committee that does what you're describing, review code, check the overall structure, and provide technical oversight or guidance. Some of the projects we look at have only one programmer, and most have 2 or 3 programmers.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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