I have wrestled with the question of whether or not biologists and programmers need to be the same person for most of my career. The short answer is that in my opinion, you often need those skills to reside in one person.

I've been working in bioinformatics in some capacity since the late '90's when the field started to really take off. My skills are pretty much 50/50 computer science/biology, so I think I've got a pretty good grasp of things now.

On the programming side, there are LOTS of micro-decisions you need to make as a programmer. I think to myself many times how spectacularly screwed up my code could be if I didn't have a biology background. There are huge issues in the area of data modeling in particular that are very complex and require deep biological understanding to get your models right. This is mostly because you need to have a sense of where biology is headed and make allowances for the future. A good example case was that I once worked with a system that had a 1:1 relationship between a person and DNA genotype results. That system worked fine for years until they tried to expand into cancer. See, it turns out tumors have their own genotypes (owing to mutations) different from their host. The system was completely unable to handle that scenario. Someone with sharp biology skills MIGHT have recognized that was an issue. Being a biologist doesn't make you immune from making bad assumptions though. For years biologists insisted that large pieces of DNA in our chromosomes had no function and called it "Junk DNA". This is in spite of all kinds of evidence from other organisms (like bacteria for example) that organisms generally are efficient about what "legacy code" they drag around. Now it's generally accepted these regions do have a purpose.

On the flip side, the problem I've seen with many biologist/programmers is that they haven't had the rigorous programming training one needs to write good code. There are a ton of "hacks" whose code is low-quality and inefficient. Most of these people learned to code on the side, so they haven't had the benefit of being forced to learn the things that nobody wants to teach themselves. You might have hated your compiler or algorithms courses in college, but that's the stuff that makes you a better programmer. You can learn those things on the side, but it's very hard to do when programming isn't the core part of what you do.

I think the data revolution in biology is going to eventually force a change in how undergraduate biology programs are designed (at least in the US, I can't speak for other countries). There is a real need for a radically different program that doesn't force people into a "biologist bucket" or a "programmer bucket". I know many universities offer bioinformatics programs, but these aren't enough. They sprinkle in some programming courses from the CS department, some extra math, maybe a course or two actually in bioinformatics where they teach you about all the 10 year old bioinformatics technology and how it works. The real trick is to integrate all that stuff together coherently. I would venture to guess that few if any bioinformatics programs have a bioinformatics lab course where students need to build software to solve a particular biological problem.