Tag Info

Hot answers tagged

68

Wait: Chris is the team lead. Chris wants them to do OOP. They don't. Right? IMO there's a management problem to address in the first place. Your target should be Chris, not the other programmers. Tell him that those programmers aren't going to train themselves just by being made fun of. And then you could propose that you teach them. This could bring you ...


60

Is it meant to show that this is a collaborative project - you're welcome to add improvements? Yes: you don't have the right to push a commit directly at their repo. But you do have the possibility to fork their repo, which makes it your repo, and push commit from there, preparing pull requests.


45

He is 100% right that you must provide enough information to make the bug reproducible - otherwise there is no chance to find out if any fix he provides will really work. But - he is IMHO 100% wrong that this must be in form of a unit test. If you can describe a test scenario in a way so he can reproduce the failure (at least with a high probability in a ...


38

Pair programming. You discuss design TOGETHER, and come up with solutions TOGETHER, so there is no feeling of "he is condescending me and forcing his way upon me" because you mutually decide what is a good design and WHY it is s good design. The discussion gets him to see the value in the different object oriented principles.


35

If possible, may be spend some time to check if this defect can be reproduced by putting some sleep or block in your application code. But do not spend too much time. As this issue is due to multi-theading (and also as you observed), it's occurrence will be rare. My advice is not to sweat over this too much. Continue your work. Whenever you come across ...


31

Remove code-ownership from the team. Spread the workload. Do code-reviews. Organise knowledge transfer sessions, wait a few sessions and then ask them to do a presentation on their area. It is, of course, imperative that if you're not the manager then you have your manager's backing, but if everyone on a team is regularly sharing information, there are only ...


30

You should deal with Chris first. He is an OOP ally but he's not helping improve the team because he is being a jerk. But the fact that Chris feels comfortable dumping on his colleagues in front of you means that you have enabled it or at the very least allowed it to go on unchecked. I'm not sure how you might go about grounding Chris but here are some ...


30

I believe that Gerald Weinberg was referring to this exact type of person when he commented in The Psychology of Computer Programming (paraphrased because I don't have the book in front of me), If you notice a programmer trying to make himself indispensable, fire him immediately. 25 years later when he reissued the book, he commented that no other piece of ...


30

Is he right is probably a question that can't really be answered without knowing your company. However, he certainly isn't being very helpful. I would raise the bug with him (which you've done), if it is causing an issue with your project then I would raise it as a blocker with your project manager and make it very clear that you've raised the bug with ...


30

The "Fork me on Github" badge is meant to show that it the project you are granted the right to contribute to the project or use it as a starting point for your own project. It kinda shows that "it's a collaborative project and that you're welcome to add improvements." It allows you to play around with the code or make a spin-off of the same project ...


29

It sounds to me like you have a dysfunctional team with a cowboy culture and you're trying to figure out what the root cause is. You are proposing a hypothesis that maybe developers don't respect test because of some sort of implicit hierarchy or length of service or some other factor, but you're not necessarily presenting evidence for the case, you're ...


29

You can't really enforce a TDD (test first) approach on an open source project where patches can be submitted by the general public. What you can enforce is that all patches must have a set of test cases for the fixes included in the patch and that those test cases, as well as all the existing test cases, must pass. You can enforce this by only giving ...


23

As a member of our company's QA team, I frequently get entirely unenthusiastic feedback from developers in their responses to test results in our agile, web-based software-as-a-service shop. That's because: Our product owners are vacant: acceptance testing doesn't exist, and user stories usually are only one sentence long, and don't provide the ...


20

There is no "start from scratch in a collaborative way" (unless, you're all starting as a team). Linus once put it in a way that always remained stuck in my head. Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think ...


20

On the flip side, your solo-developer skills are getting sharper every day. You say this is your dream job. If you aren't looking to move to a different job, why worry about the skills that less-optimal jobs require? You can't have all of your skills maximized at the same time. Throw yourself fully into the problems you face in your current job, and gain ...


19

If you design your application properly, with adequate separation of presentation and content, you can bring in your web designer, who can provide you with the needed CSS and graphics, and it shouldn't matter what language you develop the backend in.


18

I would say YES! Two quick reasons for it: 1) If code is in production, you cannot assume that it is correct. Any change elsewhere in the system can introduce bugs. I think it is very important that code be checked regularly. This way, refactoring is done on a regular basis, keeping the code neat and "more" correct (up to date is probably bettter). 2) ...


16

The Scrum team is self organized so there can be somebody who is little bit more dominant and other ask him for his ideas about tasks they are working on but that dominance must be under control. What you can do: Motivate others to be independent but collaborative - this can be best achieved if you cooperate with their boss and HR who will set some ...


14

It is a lot easier for a lone wolf to get accustomed to a new pack than it is to take any other wolf out of the pack and expect it to survive. The Lone Wolf is already tough as nails and proved it by surviving with no support. Not everybody is cut out to be a Lone Wolf. The biggest problems a Lone Wolf faces while adjusting to a new pack are small in ...


13

Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it's more important than it is likely at that stage. Or worse - you might be scared away by the sheer size of the work you envision. So start small, and think ...


13

One of the keys to avoid offending the rest of the team is to broadcast your advice. Don't focus your efforts on a particular person or group of people, or it might appear that you feel they need extra help that others don't. Also, you may be able to get your teammates wanting to teach themselves. If they are shown (preferably indirectly) the benefits of ...


13

Presumably, the reason for this question is because you feel that the team is somehow under-performing because of this dominant person. Perhaps because the rest of the team aren't contributing 100% because, well, what's the point? As a manager, if you are, it's your responsibility to make sure that all of your employees understand what their roles are. ...


12

I tried starting several projects over the number of years. They ALL failed. The main thing i got out of it was 1) Do all of the work yourself. Everything. Just keep programming and doing it. It sucks no one is helping you but thats how it goes but also 2) Get involve with the community and make occasional post. Like progress every month or so. Tell ...


12

We use Skype and Team Viewer for remote communication and pair programming. Both have free versions, but Team Viewer's license means you should pay for it if you are using it for commercial use (it's not too expensive). In terms of project and code collaboration, we use Assembla. With its wiki, ticketing system and hosted SVN repositories, it's the perfect ...


12

Have you tried the time-tested tradition of telling the truth in a constructive manner? "Guys. Something has been bothering me for a while and I want to address it today. Chris: it is my perception that you can come across as arrogant and condescending when you master a concept that others don't. You two: I admire your ability at procedural programming, ...


12

Standard disclaimers apply: we're making an engineering solution to a social problem. However, this is a project hygiene issue, so it's a bit like saying toilets are an engineering solution to a social problem. Have a job hand off the RSS feed from Hudson. Count the number of tests in the Hudson report. If it diminishes, sound an alarm. Have an auto-da-fe' ...


12

Since it has already been discussed in other answers why pair programming isn't a solution for you, I will discuss what we have currently experimented with, and are satisfied with the results. In my view what you can do to increase collaboration is to have two people together on each project. Each of them works on a different part of the project, but ...


11

Even if you're pretty sure that this is a "fundamental design flaw," remember that you're an outsider. It could be in there for a good reason. Or, depending on how old the project is, it could have been put in there for what was a good reason at the time and now it's still around for historical reasons. Instead of "blasting this on the mailing list," try ...


11

Give them what they want - assign them all the maintenance work and tasks that only he/she has the knowledge to do. No, they can't do new work because no-one else can do these other very important maintenance jobs. Yes, the new hires are getting the fun work and playing with the shiny new toys but you must do these very difficult, high priority and ...



Only top voted, non community-wiki answers of a minimum length are eligible