Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
2  
The permanent challenge in enterprise is to keep their programmers from hanging themselves out of endless boredom... – user8685 Feb 20 '11 at 17:08

migrated from stackoverflow.com Feb 20 '11 at 16:39

4 Answers

up vote 6 down vote accepted

Usability

Unfortunately 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:

  • Are forced to use them and waste much time
  • Don't use it and grow frustrated that seemingly simple data is unable to be accessed easily
  • Don't use it and miss the benefits of manual workplace processes becoming automated

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:

  • Better architecture to separate data model from presentation so that user experience experts can design the application without concern for the data model
  • Designing high-performing solutions so hugely varied datasets can be displayed to vast amounts of users in an instant (think Facebook)
  • Distributed systems for both scale and performance
  • User interface expertise so that new and better human-computer interactions can be easily and consistently deployed across a wide variety of applications (think iPhone)
  • Even in the web, there are so many poor practices that a good user-interface programmer can think about the details and take advantage of methods that have not been utilized well before (jQuery and other advances).

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."

share|improve this answer
Unfortunately I don't think any of those qualify as "breakthroughs in the enterprise programming field". They're all existing techniques which just aren't being taken advantage of. None of the uninterested consultants involved have gotten around to that yet. Maybe in 30 years... – Matti Virkkunen Feb 20 '11 at 18:51
@Matti Virkkunen - That's thinking like a computer scientist. I didn't say these problems haven't been addressed by someone, somewhere. In the enterprise field, software engineers must find out how to solve and implement these problems within the context of their own environment. But, it's probably a lost cause to hope for Comp. Scientists, or other scientists, to look at an engineering discipline with any degree of appreciation. – NickC Feb 20 '11 at 19:17

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.

share|improve this answer
1  
Computational Linguistics suffers the problem of being too interesting. By that I mean: there are so many challenges, gotchas, and tricky idiosyncrasies in natural language that no NLP method has 100.0% accuracy, for anything! And, the only places to work in CL are a few universities and maybe two dozen companies, mostly small. Even the big efforts like Google Translate, and IBM question answering are done statistically, approaching NLP as machine learning problem. – Anas Elghafari Feb 20 '11 at 15:28

The hardest thing to do in enterprise programming is to scale linearly when exhausting a given resource.

Common resource painpoints are:

  • CPU cycles in a computer.
  • Database I/O
  • Network bandwidth both internally and externally
share|improve this answer

Voice recognition is an unsolved challenge (on Enterprise, yes, companies are dying to get a fancy voice-controlled products, like in Star Trek Enterprise :))

share|improve this answer
1  
Voice recognition is a core Computational Linguistics research areas. It certainly does not fit with ERP, CRM, etc. – Anas Elghafari Feb 20 '11 at 17:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.