Skip to content

Instantly share code, notes, and snippets.

@ilyar
Last active March 2, 2025 19:43
Show Gist options
  • Select an option

  • Save ilyar/d4f31bcdd4d54d00c1ffa3855adc5f29 to your computer and use it in GitHub Desktop.

Select an option

Save ilyar/d4f31bcdd4d54d00c1ffa3855adc5f29 to your computer and use it in GitHub Desktop.
SMART — an algorithm for formulating a question

by Bruno Murai

SMART — an algorithm for formulating a question

SMART / SMARTER — is a mnemonic abbreviation used in management and project management to define goals and set tasks. The first known use of the term is mentioned in the work of Paul J. Meyer in 1965 and later in November 1981 in the work Management Review by George T. Doran

This approach can be used to formulate questions, resulting in the following components:

  • Specific — My task... (explains what exactly needs to be achieved)
  • Measurable — It should result in... (explains the expected outcome)
  • Attainable — I do... (explains how the goal is planned to be achieved, here you need to provide code or a sequence of actions, etc.)
  • Relevant — I get... (a description of the actual result, images, error quotes, etc)
  • Time-bound — When the answer should be received (defines the time frame by which the answer will still be relevant)

Example:

  • S — Need to compute the factorial of two pre-determined numbers 3 and 6; the solution should be in C++
  • M — As a result, the console should output the result for each number on a new line
  • A — I wrote the program, source code main.cpp where you can also run it
  • R — It compiles without errors, but I get everything in one line: "6720"
  • T — I need to figure it out by the end of the week

In real communication, it goes something like this:

Hi, I'm computing the factorial of two pre-determined numbers 3 and 6, and the console should output the result for each number on a new line, here is the source code; there are no errors, but I get everything in one line. It's not urgent — can you tell me what the problem is?

By formulating the question in this way, we show respect for other people's time, focus on the problem, and increase the chances of a prompt answer, otherwise, either no answer will be received, or the respondent will have to ask many clarifying questions

In order to ask a question you must already know most of the answer

Ask a Foolish Question 1953 by Robert Sheckley

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment