Collaboration and Programming: Important or Not? [modified]
-
I'm an old timer and personally I think collaboration of any kind is an excellent way to bring the level of productivity and inventiveness down to the level of the worst member of the collaborators.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
Welcome in the CP's Memorable Quotes page [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
Welcome in the CP's Memorable Quotes page [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
I'm an old timer and personally I think collaboration of any kind is an excellent way to bring the level of productivity and inventiveness down to the level of the worst member of the collaborators.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
Could be worse. The intelligence of a committee is equal to the IQ of the dumbest member of the committee divided by the square of the number of members. Suddenly govt antics begin to make sense. :-D
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
I've been in the industry as long as you have, and I agree. Back in the day, we had to think for ourselves and learn to think outside the box. It became almost as natural as breathing. Enter today's youngsters that didn't start programming for a living until long after our 20th year in the business. Someone somewhere thought "extreme programming" was more productive, but I disagree. It might be for less experienced developers, but for us old guys, it certainly isn't.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
In principle nothing is wrong with talking. But I've found that much of the talking hasn't been productive or rich with ideas. And don't get me started on the "team" metaphor. Overall I haven't found teams to be managed well, with the most vocal member many times being the most valued, whether or not their actions were best for the application. Note that I changed my post to read "which tends to translate in my mind to just lots of unproductive talking.".
My experience is that a collaborationist should be shot ;P Really, collaboration works best when the team is small enough to fit in one room (even if that is a 12 man room) so that everyone can pretty much hear what is going on with everyone else. Also, it requires that peoples egos are wrapped up in quality production, not in personal production.
Silver member by constant and unflinching longevity.
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
Constant collaboration for business applications which are usually ill defined up-front. Collaboration for up-front design phases on non-business / well defined applications.
Todd Smith
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
I'm an old boy too - and I 'invented' collaborative programming back in '84. Two programmers working together on one source - it was important that both programmers were of high caliber and reasonably evenly matched (otherwise it's either tutoring or the blind leading the bland). The software produced was the most bug-free and stable that the company had ever produced - and it was on time and under budget. Pros: No 'silly' errors - the typist has a second pair of eyes, so questions like 'shouldn't that be less than or equal rather than just less than' get asked - and therefore thought about - early on. Well thought out logic at every stage. 'wouldn't it be more efficient to do it like this' or 'Hey - and if we did it like this, then we could re-use this here' Opportunity to keep 'in the zone' - for example one programmer can go off to enter some test data, write some support routines, look up some help etc. while the other continues to program in the main flow. When done in short stints this speeds things up as it doesn't break the flow. Learning opportunities - even v. experienced folk (like myself) can learn from others - even when it is just down to keyboard shortcuts, clever ways of doing simple things etc. Big Bus Safety - if one gets hit by a big bus, the other is fully competent to continue the task. Cons: Selling it to management - the assumption that it will take twice as long / cost twice as much. Matching programmers well - Both I think need to be experienced and reasonably evenly matched. Temperaments are important - programmers need to be more than willing to share their knowledge One note - I think it is important to note that this is in collaboration and PROGRAMMING - analysis, design etc. is another kettle of fish altogther
If I knew then what I know today, then I'd know the same now as I did then - then what would be the point? .\\axxx (That's an 'M')
-
I've been in the industry as long as you have, and I agree. Back in the day, we had to think for ourselves and learn to think outside the box. It became almost as natural as breathing. Enter today's youngsters that didn't start programming for a living until long after our 20th year in the business. Someone somewhere thought "extreme programming" was more productive, but I disagree. It might be for less experienced developers, but for us old guys, it certainly isn't.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001John Simmons / outlaw programmer wrote:
but for us old guys, it certainly isn't.
Isn't that just because we're grumpy old b*stards that don't want to talk to anyone face to face if we can avoid it?
If I knew then what I know today, then I'd know the same now as I did then - then what would be the point? .\\axxx (That's an 'M')
-
I'm an old timer and personally I think collaboration of any kind is an excellent way to bring the level of productivity and inventiveness down to the level of the worst member of the collaborators.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
John C wrote:
I'm an old timer and personally I think collaboration of any kind is an excellent way to bring the level of productivity and inventiveness down to the level of the worst member of the collaborators.
2 years ago, i would have said you were off your rocker.... collaboration could work. Then we hired again.... :doh: so here is a 5....
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
I have 25 years of programming experiance and I've tried collaborating with other people on various projects. I've found (apparently) I don't think like most other people and I take different directions than a lot of people. While I'm collaborating with others, typically I have to do a lot of explaining, a lot of convincing, a lot of talking. It takes a lot of time. But when I just code it up, with comments of course, and let other's peer review it later, they typically say, "Hey, that's cool way of doing it!" and it takes about 1/3 the time as when I'm "Collaborating".
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
It's not collaboration that is the problem, I find - it's enforcement of collaboration at all points of the process. I'm a better analyst and algorthmist than most of the programmers I know, thus enforced collaboration means to me that I spend far too much time explaining, more than once, exactly what I'm doing and where I'm going with it. On the other hand, if I'm not certain of what I'm doing and where I'm going with it, I seek collaboration. Thus, I truly enjoy anything that makes collaboration-when-I-need-it easy and effective. One scenario where I've always advocated collaboration is in deadline coding, where I've found pair programming to be much more effective than solo programming - i's get dotted and t's get crossed more reliably. Another is when your design is complete and you're about to get to coding. Here is where one NEEDS to justify your design to someone else, because if you can't, it is probably a bad design. At all points, though, you need to collaborate with someone whose skills range from just slightly less than yours to much better than yours. This, unfortunately, is where enforced collaboration often throws crowbars into the gears of project progress. To put perspective on this, I'm a 20-year developer who has worked in DOS, Unix, Windows, and Web, for development groups ranging from two to two thousand, in just about every role in the SDLC.
-
I'm an old timer and personally I think collaboration of any kind is an excellent way to bring the level of productivity and inventiveness down to the level of the worst member of the collaborators.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
LOL .. How brilliantly put. I'm kind of the same mind. I do collaborate with a couple of independant developers (like myself) on a few projects with mostly rewarding results. But there are times when I have to say (or would like to say) .. can you all just sod off and let me do this so that it gets done and someone gets paid. A balancing act!
The only thing unpredictable about me is just how predictable I'm going to be.
-
I have been lucky to work with good and smart people during most of my career, and it has been a pleasure collaborating with them. To me programming is a team sport, and I always liked basketabll players like Magic and Bird who could bring the quality of the whole team up.
Old Ed wrote:
which tends to translate in my mind to just lots of talking.
What's wrong with talking :) ?
Nemanja Trifunovic wrote:
What's wrong with talking Smile ?
From my experience its because poeple have opinions. Ewwww ;P
The only thing unpredictable about me is just how predictable I'm going to be.
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
I'm an old-timer, programmed for the government for 33 years. After initial overall design, I found that often time spent in collorabative meetings is largely wasted. I recall a project where almost two years were spent in top-level design, structured walkthroughs etc. During that time, not a line of code was written. After two years, high level management hired outside consultants, who concluded that such a project would not work. We then had an expensive mini-computer, (about the size of a refrigerator in those days) part of the grand design, sitting idle. Since I had some time to spare and the equipment was idle, I coded the entire project, got it working just fine, and it ran as a major component of our organization for many years!
73
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
You can only collaborate with workers that know (mostly) what you know or visa versa. If that's limited to standard library features, then that's all you can collaborate on. However, if they understand your domain and the problem you're trying to solve at the time to a deep level, you can co-write lines of code. Organizations and management that likes to have their people be experts in non-overlapping domains create an environment where collaboration is limited. Those that like to have their workers cross trained enable more collaboration. Sometimes individuals themselves don't like to have others knowing what they know, or don't believe anybody else could possibly know enough to give valuable input. They also tend to be the most defensive of their little domain fiefdoms and the least desirious of outside input (i.e collaboration). I'm a collaborative type, so I don't tend to work well with the (very few) people I've met that are like that. I've worked at both ends of that spectrum and many places in between. I find I like the cross trained end more because there's more collaboration available when people need it, which is probably why I've encouraged my team to cross train and become that way. Deep forced collaboration would probably not sit well with me, but I've not had to work in such an environment yet.
patbob
-
Hello all, I've been a programmer for over 30 years, enjoy it, and am constantly assessing industry trends. One trend that has gone over my head is that of collaboration. Even when working in teams, I've always had an area of specialization and collaborated very little outside of initial design meetings, pre-launch debugging, and problem resolution. The environment I currently work in stresses collaboration, which tends to translate in my mind to just lots of unproductive talking. I'd like to hear from programmers across the spectrum, from recent college grads to old timers, on how collaboration works (or not) for you, its pros and cons, etc. Thank you...
modified on Wednesday, January 14, 2009 1:21 PM
I have mixed feelings. I have been working on my Masters recently and pair programming/collaboration are a focus of most of the classes. IMO, it is good for the team in the long run, because better programmers teamed with lesser programmers are forced to bring the lesser programmers to a higher level and in teaching you sometimes get better yourself. In this way, the overall quality and capability of the team improves quickly and steadily. On the other hand, it does bring down personal productivity because if forces better programmers to share with lesser members of the team. The key to successful collaboration is being able to remove ego and personal ownership of the code that is written so when someone else has an idea they are more likely to try it rather than keep to themselves because their life will be made a living hell for challenging someone else. So, if you are concerned about the big picture collaboration is probably a very good thing. If you are concerned about showing off how much better you are than everyone else, maybe not so much. Dave
-
I have mixed feelings. I have been working on my Masters recently and pair programming/collaboration are a focus of most of the classes. IMO, it is good for the team in the long run, because better programmers teamed with lesser programmers are forced to bring the lesser programmers to a higher level and in teaching you sometimes get better yourself. In this way, the overall quality and capability of the team improves quickly and steadily. On the other hand, it does bring down personal productivity because if forces better programmers to share with lesser members of the team. The key to successful collaboration is being able to remove ego and personal ownership of the code that is written so when someone else has an idea they are more likely to try it rather than keep to themselves because their life will be made a living hell for challenging someone else. So, if you are concerned about the big picture collaboration is probably a very good thing. If you are concerned about showing off how much better you are than everyone else, maybe not so much. Dave
I'm disappointed so many people are anti-collaboration. I've been coding for 20 years and the most productive, enjoyable projects have been where there has been good collaboration. I've been reading a fair bit about XP techniques like pair programming and scrum. They sound really cool to me. I'm using some agile techniques but i'd love to try working in a true Agile/XP environment. After reading this thread I'm wondering if that's such a good idea. Actually that's a lie. I refuse to believe all the pessimists. I'll give it a go anyway! :)