views:

197

answers:

2

G'day All. First time question-asker.

A recent question (http://stackoverflow.com/questions/505404/what-are-good-programming-competitions) asked about good programming competitions. This got me thinking.

My question is, What competitions exist for the Solving of Business Problems?

Yeah, I know Real Life is the actual competition, but humor me :)

All the competitions I can find are mostly solving pretty hardcore "coding" problems.

What I'm interested in is people wanting solutions to, for example, "Bobby needs an online Document Management System for his 1000 client offices. One central database. One central login. Go nuts. You have 24 hours before Bobby goes all 'breakfast menu'."

Perhaps this would never work. But I thought I'd ask you guys, see what you thought.

+1  A: 

If you're looking merely for the learning experience and fun rather than the actual competition, I can highly recommend the DesignFest events at the OOPSLA conference. They're open, noncompetitive, and there's no prize involved though.

People usually submit problems (the call for problems for next year is still open), and then during the conference different groups meet and work out the design. They don't do implementation, but they usually work up the main details.

I've done it a couple of times and it was very informative. Afterwards I spent a few years studying these sessions for research so I got to see how different teams approach the same problems. It's a lot of fun and you generally work with some really good designers from all around and get exposed to how they do things.

Uri
Uri,Thanks for the info. I _was_ more thinking about implementation at the time, but you've got me thinking.I guess the implementation can take more than a nice 24 hour period. But then they do game dev comps for 24 hour periods and wotnot. Hmmmm.
Stu Andrews
Game Dev's are different because that's "MeWare", they're designing software for themselves (or at least for an audience that they are a member of).You can't develop a solution until you understand the problem. And if you're not an expert in the problem domain, you don't understand the problem.
Clay Nichols
+2  A: 

That's a great idea, but there's one complication. You might be able to overcome it, if you understand the problem of understanding problems.

This is a recursive answer.

The answer to your question is that you need somehow to understand the problem domain in which the business problem exists before you can solve said problem. But I need to explain why that is before I can give my answer. (I.e., you need to understand the problem domain of business domain problems. Really.)

Solving real world problem involves understanding:

  1. The problem domain
  2. How the user will use the program to solve the problem
  3. How the computer works.

It's the first two that are really a challenge. A good programmer understands #3. Someone with strong Usability skills might be able to get #2 right, but they still have to understand the problem domain. And that's the challenge because folks who understand the problem domain and are doing a repetitive job suitable for automating just don't think like a computer. It's a completely different skill set. If they did think like a computer, they couldn't do such a repetitive job.

I once had someone ask me to distribute their educational software. (I write software and couldn't find a distributor 15 years ago so I started a company distributing the software, but that's another story.)

But here's how their software worked:

  1. The program shows a prompt (picture, etc.)
  2. Student speaks an answer.
  3. Teacher decides if it's correct and clicks on a "sticker" button and it displays a sticker for the student.

That's it. Yes, that's all it did.

(I won't even get into the problems with this fostering Extrinsic motivation which diminishes Intrinsic motivation- i.e., this would demotivate students in the long run because they lose interest in speech for it's own natural benefits (you tell a joke and get a laugh) and they'd get bored with the little stickers.)

Here's someone who was a subject matter expert and went to all the trouble of learning how to write software (or worked with someone who did) but they didn't take advantage of the computer. They used it like a sticker book.

When I taught SW Engineering I always told my students you have to solve the problem manually first.

Project GreenLight is a great model for this If you have a contest for Business Problem/Solutions as well as Programmers and then put them together you might have a winner. This could work kinda like Project Greenlight where they had a contest for a Script and for a Director. The winning Director had to make a movie out of the winning Script. They let the contestants vote on the best script and director. Even then, the Director and Screen Writer might not get along and have a shared vision.

The real trick is going to be grading the Business Problem/Solutions that are submitted. There are an infinite number of them. And it probably requires Domain Knowledge to evaluate them. Barbie the Real Estate chick isn't going to understand Harvey the Hog Farmer's need for tracking his hogs.

You'll need a Domain Expert who really understands his job well enough to know the right way to solve it manually. And most people aren't particularly good at what they do. They aren't constantly looking for ways to do it better. If they were they'd be programmers already .

Clay Nichols
Clay,Thanks very much. Appreciate the wisdom you've given here.
Stu Andrews