My experience with programming came from a field, computational linguistics, where there LOTS of unsolved problems (computationally modeling natural language, or having effective statistical approximations). This is not an exception: many other fields (like computational biology) have big unsolved problems, and promising breakthroughs. Yet, most of the programming that is done (and most of the money made from it) seem to be in areas like Enterprise Resource Planning, Client Relation Management..etc. Companies seem to be able to churn out new versions of such software and make more money year after year, and clients keep spending money upgrading to newer versions..etc. So, as an outsider to that world, I am wondering: What are the great advancements spurring this growth? Were there some grand challenges that got solved or are getting solved?
|
migrated from stackoverflow.com Feb 20 '11 at 16:39
UsabilityUnfortunately if you are talking about computational problems alone, then the enterprise world is certainly not a hotbed of either research or discovery, though certain enterprise applications have more than others. That's mainly the ground of computer science, and you don't see many enterprise job-postings for "Computer Scientist", do you? However, I'm not sure if you've noticed this but most of the software created for the enterprise over the past 15-20 years (roughly the time period for software which is still in use) is shockingly unusable. Employees and customers alike either:
I have to strongly disagree with the other answer, and say that many programmers, software engineers (myself included), and possibly even some computer scientists, find the opportunity to improve this situation to be vastly rewarding, and also very interesting. Just a few of the problems to be solved to make software more usable:
Computational linguistics is certainly a different class of problems than these. The world of enterprise software is much more of an engineering practice - as said by Stephen C in What discipline does Computer Science belong to?, "the desired outcome of a engineering discipline is things that work." |
|||||
|
|
There are no theoretical breakthroughs or any of that in the "enterprise programming world". Half of it is writing basic CRUD operations over and over, one fourth is writing convoluted SQL queries for reports that take half an hour to run, and the rest is equally as boring. All the interesting stuff like optimizing the algorithms they use in the "enterprisey" stuff are done by people not involved in making the actual software. Hell, most of the people doing that stuff aren't probably even programmers or computer scientists, but rather consultants who know the business and can (maybe) also write some (mediocre) code (on the side). If you come from a field as interesting as computational linguistics.... I'm sorry to say this, but you're in for a big disappointment. |
|||||
|
|
The hardest thing to do in enterprise programming is to scale linearly when exhausting a given resource. Common resource painpoints are:
|
|||
|
|
|
Voice recognition is an unsolved challenge (on Enterprise, yes, companies are dying to get a fancy voice-controlled products, like in Star Trek Enterprise :)) |
|||||
|
