Greetings all.<p>I'm currently comanaging my first project - a fairly featured HRMS system - and have run into a bit of a bother.<p>We are an agile-ish firm and some of the higher ups believe that every programmer should get a holistic view of the application design, the argument being that eveyone works better when they have the big picture and know what they are working towards. Others believe that every programmer must be told only about those classes he is working on, the argument being that 1) the programmer makes no assumptions when he codes, and 2)the design concept remains secure.<p>I am managing a seven man team and of those there are a couple of potentially unethical guys. This has till date remained the only reason I have gone with the 'Blinkered View' camp. What does HN think?
By partitioning your team such that each member works orthogonally, you are severely handicapping the team's ability to improve the overall design of the project. Frankly, I would consider such a management strategy to be pretty arrogant, because by locking your team members out of the design process, you are tacitly telling them that your design is so good that their input is unnecessary. That's a great way to sap people's motivation.<p>As for the "couple of potentially unethical guys," what are they doing on your team? They should be fired. Why would you even consider keeping an unethical team member? How could their work output possibly outweigh the fact that they might steal from you, or worse?<p>Hiding the overall design isn't going to stop someone who is very motivated from compromising the system you're designing. To prevent that, I'd start with frequent code reviews and restricting access to production systems.