How to recognize important problems

Hamming, the famous scientist, once suggested that researchers should focus on the most important problems in their field (in You and your research). I believe this suggestion may apply to anyone and not just researchers.

It sure sounds like good advice, but putting it in practice is difficult. First, we have to define what an important problem is. There are a few telling tales. For example, if there is a chasm between what the current theory says and what we observe experimentally, and most people are willing to recognize the gap, then you have an important problem lurking. More generally, an important problem can be recognized as a widely-felt unsatisfied need; the need to explain, by a theory, the experimental evidence, being one instance.

Back in 1996, finding good Web pages was hard. I think that most people would have agreed. Many people, me included, started Web pages for the very purpose of keeping track of good Web pages. Yahoo! made a business of maintaining a taxonomy of Web pages, and it was hard. Google came along and basically fixed the problem. It is moderately easy now to find good Web pages; at least, people around me no longer complain that they cannot find good Web pages nor do they pay people to do it for them.

What are the important problems in 2007? The ones we should all be working toward? Any ideas?

To be honest, I am not sure. The technology works pretty well as it stands. My laptop is good. I do a lot of hard work, but I am not sure I would want the software to take over tomorrow. All tools could use more of a finishing touch, to be sure… but a serious need? I am a pretty content person. I do not get frustrated much by technology these days.

This is not to say that I do not feel like my research is important. I think I do some pretty cool stuff, but I would not say that I work on a big problem. I do not know anyone around me working on a big problem as defined above. Some would say that the quest for AI is one such problem. Maybe. Proving that P=NP? The unification of the laws of Physics? Cheap electricity through something like nuclear fusion? World peace?

See also my posts The big scientific questions in computing have been answered and You and Your Research.

4 thoughts on “How to recognize important problems”

  1. Right off the top of my head two current problems:

    – Management of large collections of digital media (photos, video, audio). People are accumulating more and more and it is getting harder to find and share items. Microsoft has very good research on this.

    – Digital preservation. The long time preservation of digital content is still unsolved and is an active research field.

    I think that there are a lot of important problems related to UI. Technology is still hard for non professionals.

    Nice blog 😉

  2. I grant you these Sérgio.

    Having a system to manage data is a hard problem. As a database researcher, I try to contribute toward this problem and I think collaboration is part of the solution. We are slowly moving away from top-down solutions, such as rigid taxonomies and ontologies. So maybe I could say I work on this problem, if indirectly.

    Digital preservation is a nasty nail. Project Gutenberg is one instance where it works ok. I also worked on this.

    So, maybe I am working on some important problems, after all.

  3. My vote goes to “better programming methodologies”. There is still a huge chasm, IMO, between informal software specifications and formal programming paradigms. So far, we have “imperative” (c, pascal, modula2 etc.) “functional” (lisp, haskel, miranda etc.) “logic” (prolog, goedel etc.) and “object oriented” (smalltalk, c#, java etc.) – but none of them are terribly satisfying? Some UI ideas in StP (Software through Pictures) ended up in UIs for UML etc, but I feel quite sure that there’s lots of room for improvement.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax