views:

535

answers:

24

Do you think it would help if programmers were more adept at scheduling, public speaking, communicating, accounting, etc.? Or would this just be a distraction? I know this might make someone a better company man, but would it really make you a better programmer?

On that same note, do you think people who manage programmers should be required to take some classes or training on programming?

A: 

Why should a programmer working on control software for nuclear power plants be required to take business classes?

And who is going to require these courses? The Government?

John Saunders
good point. Also, I changed the title, thanks that was worded oddly.
Robert Greiner
+8  A: 

Taking some kind of communication course is key. Communication in a team environment can make or break a project. Meanwhile, this would grant a lifelong skill that can be applied to all aspects of life, not just your 8+ hours a day in front of a computer.

Chris
+1 true, at the very least you could consider it self improvement.
Robert Greiner
+1, what good is code when you cannot explain it to anyone?
Matthew Jones
Well, I took a communication studies course, and to be honest I didn't get much out of it.
hasen j
Nathan Koop
+2  A: 

I think it would definitely help developers if they were better at public speaking. As your career grows that will become part of your job. It may be limited to a small group of people but you will need to be able to give competent presentations in a semi-public forum.

Communication is also a win. Communication is they key to intra and cross group programming. If you can't communicate your solution you'll have a rough time.

I'm so-so on scheduling. Yes I'd like to be better at scheduling. But various computer laws like Hofstadters law say that it's impossible to be on time anyways ;).

I haven't ever found a need for accounting in my job and I don't see that as a general purpose programming skill either.

JaredPar
A: 

Would you want your electrician/architect/etc be required to take these classes as well?

Jason Watts
+3  A: 

I think yes this would help any programmer who programs business applications to understand more about the business needs he has to transalate into code.

I don't think there is anyway to require training of either programmers or managers except on an organization by organization basis. It is helpful if managers understand a bit about programming but beyond the first or second layer of supervision, unlikely that they will.

HLGEM
+3  A: 

Yes. Most definitely. In almost any development situation, the developer will be thrust in to some part of the business. Without any kind of exposure to that world, they'll flounder. A well rounded candidate will always be better than a lopsided one.

Justin Niessner
+7  A: 

It helps if a programmer is familiar with the industry in which they are creating products/services for. If I worked at a nuke plant then it would be wise to be very familiar with the related chemical reactions etc. If I worked at a financial firm it would be wise if I was familiar with the markets and economics.

As far as general scheduling and communication, well, that is something everyone should have some training in if it isn't second nature already, regardless if they are a programmer or not.

Marc
I was working for porn company, so i stared in a few movies just to understand the business better. its a lot different that you might think. now i know that title column should have more than 45 chars.
01
+3  A: 

On the first note, it depends. If the classes are useful to the programmers career then yes (i.e. they are implementing highly business critical applications and the only way they can verify them properly is by understanding more business - take business classes).

For the second - YES! People who manage programmers should understand programming. They should understand that things take time, that programming isn't easy, and that managing programmers is like herding cats.

workmad3
+3  A: 

Any programmer working in a team should learn how to communicate. If they don't know how to do that, they should be trained.

As far as public speaking, accounting, et al, I've always thought that it's good to have the big picture in mind when you're working in your little corner. So some of the etceteras (domain training, understanding the company's revenue stream) make sense, while others (public speaking) make less.

micahtan
+2  A: 

It doesn't matter how technical you are. Your success will always be determined by how well you interact with people.

If you can't communicate with clients or end users about what they need and you can't communicate with your managers, then you will be less effective at producing software that people actually use and find valuable.

Dennis Palmer
very good point.
Robert Greiner
A: 

I don't think they should be required to because some people may not be interested and it'll be a waste of time for them, but they should be given opportunities to improve communication skills if they want.

I think its more of a problem when people with supposedly great communication skills who are given positions of responsibility don't have very good technical skills, and therefore make bad decisions which have a large negative impact.

Charlie
I disagree, I took several accounting classes during my college training and that put me in good stead at my first job (despite not working in the financial industry) it is very helpful when you can communicate with the accountants or any of the financial staff. I would be very surprised if there are any companies who don't have some portion of the programming staff that do work (either with the ERP system or simply customizing excel) with their accounting department.
Nathan Koop
Yes I'm not saying its not helpful to do courses to broaden your skills, the first point I was making was that these things shouldn't be forced on people who don't want to do them. The second point I was the overvaluing of presentational and communication skills and the undervaluing of technical skills. Both skill sets should be as important as each other for a person to move through the ranks of an organisation.
Charlie
+1  A: 

Yes. While not "absolutely vital" these are important concepts. Especially for developers in non-IT industries, it is quite common for a project to be put in your lap with the expectation that you already know the business logic. Knowledge of business concepts (accounting has been mentioned, but others as well), communication, and other such things can often be key in getting the information you actually need from the process owner who is sponsering the project.

AllenG
+1  A: 

I took public speaking in college, which also covered doing job interviews. And I've had plenty of job interviews, sometimes just to practice or to see what's out there, not because I want to leave my job.

I also had to learn Visio and management of projects.

But I was just an MIS major so what do I know :)

But yes I definitely think all of these things should be required in school. Or on-the-job training if possible. It would help all kinds of people coming out college.

MattK311
A: 

I think it would definitely help developers if they were better at public speaking. As your career grows that will become part of your job. It may be limited to a small group of people but you will need to be able to give competent presentations in a semi-public forum.

Taking some kind of communication course is key. Communication in a team environment can make or break a project. Meanwhile, this would grant a lifelong skill that can be applied to all aspects of life, not just your 8+ hours a day in front of a computer.

In almost any development situation, the developer will be thrust in to some part of the business. Without any kind of exposure to that world, they'll flounder. A well rounded candidate will always be better than a lopsided one.

Ranjith
Jon Schneider
+1  A: 

I believe that as far as business classes go, ones that emphasize business letter writing and public speaking may prove to be useful, however classes such as accounting may just get lost in the background.

Joel Spolsky (CEO of Fog Creek, www.joelonsoftware.com) says that for humanities and these types of business classes, microeconomics is where the most interesting and pertinent subjects occur for computer scientists and those related in the field.

mduvall
+2  A: 

Yes to both questions.

I've been at it for 11 years now. The first half of my career was rough because I was the typical introvert with poor communication skills. I used to get a lot of complaints about being too abrasive with non-tech people. While I didn't take any courses, I learned how to "talk nice" to the non-techs and now my career is MUCH better in every aspect. Some basic business courses would be beneficial too as you won't be so much in the dark when you are in meetings and they are throwing around terms like "P&L" or "GL."

As far as the management taking programming course, I think that there should be (if there isn't already) courses that teach management what is possible in a given time frame and what the advantages/disadvantages of implementing things such as daily builds, test-driven development, etc. bring to the table. Taking an actual programming course wouldn't really give them a good idea of what real-world programming like - they'd just know how to write "hello world" and bubble-sort apps ;)

Dabas
+1  A: 

Developers of any kind should have an understanding of the applications of their work. A number of university programs around the U.S. have emerged recently to address this issue.

Two that I know of:

Raikes School of Computer Science & Business Management

The Peter Kiewit Institute

noluckmurphy
+1  A: 

I think all developers should have some kind of communication training. Even a technical person must communicate his ideas and should be able to gather and share information qith his peers. Some developers are part of the company's suppport and need to I communicate with customers.

I think that business related education (such as an MBA) is inportant (in a "nice to have" way) in order to understand the full picture on any project as well as being able to gice real value to customers.

I believe that all managers should have some training either courses on managing people or business school to be effective.

Dror Helper
+1  A: 

Yes on the scheduling, public speaking, communicating, time management, business process management and other areas that most people do or should do at some point in their job. Accounting isn't in this list as not everyone is into finance and understanding that domain.

It makes one a better programmer in having to deal with people which I'd guess 99% of time is true. How do I get the requirements out of another person? What design considerations should I know? Can I present my implemented solution for testing in an easy manner? All these require the ability to communicate in both asking questions and giving answers as there may be questions for me in this process as well.

People who manage programmers should be required to take some classes on software development methodology, yes, but programming in general, no. The difference may appear subtle but the idea is that I'd expect the manager to know what the main steps are in my work at a high level, not necessarily how to code up FizzBuzz. The scale and complexity can also be a factor as sometimes when coding on big systems, it isn't easy to give an introductory course on that material. Examples would be ERP or CRM system that I'm not sure I'd want to picture the curriculum to cover that in a Programming 101 course.

JB King
+1  A: 

It can't hurt.

I think Writing courses and perhaps public speaking/speech courses can be quite helpful as well. Communication is key to anything, and the better you are at communicating, the better for everyone.

Plus it's always good to know a little bit about everything.

Jack Marchetti
+1  A: 

Yes. As a programmer advances in his/her carreer you get farther away from the code and closer to a managerial position. Being able to talk to your team, manage and balance its budget, and a million other things is essential.

Team-leader, supervisor, manager, etc are chosen not by their programming skills but by their managerial/people skills.

Accounting is not essential, but it will help to have SOME notion of it.

Rostol
+1  A: 

Yes, absolutely they can help. You'll get a broader perspective on business; be more effective in talking to management; be able to sell project ideas better; be able to grow into management; become a better communicator; gain knowledge about a number of important application areas (finance, inventory, accounting, HR, etc.); be better able understand your managers' perspectives; and so on. Some business programs have specialties in areas like technology management and project management, and these will be more directly helpful.

One thing that I didn't see mentioned is the help business courses give you if you ever decide to do a startup or begin your own consultancy.

Business courses will help some in writing and speaking skills, though there are more direct routes like writing classes and Toastmasters.

Jim Ferrans
+1  A: 

I think you should take a project class where you must work in a group to finish some technical project. In that type of class they should teach planning/scheduling, you should have to give technical presentations and have a hard deadline (end of semester). I think this better replicates what you would see as a real engineer but allows the instructor to guide you in best practices for the entire project.

I had two classes like this a robotics class and my senior project. In the robotics class we were given a problem and had to come up with a complete solution, hardware, drivers, algorithm from scratch. In the end the grading criteria was cost of parts and how well your teams solution did against others. You can see how this class emulated much of what you will see in the "real world". I probably learned more from that one class than anything else I ever did in undergrad academia. So, yes those concepts are important but I would really have to question whether sitting through a semester of some business class is really the most effective way to learn it.

stephenmm
A: 

Do you think it would help if programmers were more adept at scheduling, public speaking, communicating, accounting, etc.? Or would this just be a distraction? I know this might make someone a better company man, but would it really make you a better programmer?

Well, without meaning to provide a recursive answer, but just take a look at the "rock stars" on stackoverflow.com: those with really high reputation are usually not only known to be highly capable software developers, but obviously also excellent communicators.

Go figure ...

On that same note, do you think people who manage programmers should be required to take some classes or training on programming?

It would certainly help to improve the mutual understanding

none