In How to ask questions the smart way, Eric Raymond provides guidelines for effective interaction with the open source community. If you haven’t yet read this essay, please do so before proceeding.
Communication is one of the most important software engineering skills to develop, and asking questions the “smart way” is one of the most important communication skills of all for a software engineer.
For this experience, you will use StackOverflow to provide examples of the positive outcomes that can potentially occur when software engineers follow the guidelines, and the negative outcomes that can potentially occur when software engineers don’t.
First, search StackOverflow for a question submitted by a developer that demonstrates the “smart way”. Such a question should follow the precepts established by Raymond. In addition, the answers provided by the community should demonstrate that asking a question the smart way leads to both efficient and effective help. Note: You should have no trouble finding an example as the StackOverflow community is rigorous in enforcing high-quality questions and answers.
Next, you will search for a question submitted by a different developer that demonstrates the “not smart way”. In other words, this question violates the principles established by Raymond. In addition, the answers provided by the community should demonstrate that asking a question in a “not smart” way does not lead to both effective and efficient help. Tip: You may have trouble finding a not so smart question on Stack Overflow. If you do, you can make one up perhaps with the help of ChatGPT. Try prompting “Give and example of asking a question on Stack Overflow that violates the principles discussed in http://www.catb.org/esr/faqs/smart-questions.html”. You can subsequently follow up with a prompt “give examples responses to the question that does not lead to both effective and efficient help”
The goal of this exercise is not to “prove” that asking questions the smart way is always better (although it would be quite interesting to design an empirical study using StackOverflow to actually gather data on whether “smart” questions do indeed, on average, lead to more effective and efficient answers). Instead, the goal of this exercise is to help you form a deeper understanding of what constitutes “smart” and “not smart” questions so that you are more likely to ask smart ones in the future.
Write a technical essay that discusses why smart questions are important for smart software engineers, how the chosen questions fulfill (or not) the precepts for smart questions, how the responses reflect the smartness (or lack thereof), and the insights you gained as a result of this experience.
Be sure that your essay includes a textual summary of both the “smart” and “not so smart” questions, as well as a link to the StackOverFlow pages where they are located. Don’t just put the URL to the questions and force the reader to visit StackOverFlow to read the question there, then switch back to your essay to continue. Your essay should contain enough detail about the two questions so that the reader doesn’t need to visit StackOverFlow to make sense of your essay.
Be sure all URLs in your essay are clickable. This requires learning Markdown in TechFolios.
If you have previously taken this class, you must find new questions and answers to analyze.
By the time and date indicated on the Schedule page, write a technical essay regarding this module. You can use the issues above as a starting point, but write a stand-alone essay: don’t just answer them like it’s a homework assignment! Once you’ve finished the essay submit it using Laulima.
Please note the following:
Your submission should be a URL providing a direct link to your (HTML formatted) essay contained within your professional portfolio website (not a link to the home page of your portfolio website, not a link to the essays directory page of your website, not a link to the markdown source or a google doc or a PDF etc). Here’s an example of an acceptable URL: https://philipmjohnson.org/essays/kahala-challenge.html. Here’s an example of an unacceptable URL: https://github.com/philipmjohnson/philipmjohnson.github.io/blob/main/essays/kahala-challenge.md. If the link does not work, you will not get credit for your essay.
An entry for your essay must also appear in the Essays page of your portfolio. Check this before submission. If it is not listed, it’s probably because your YAML front matter is incorrect. See the Essay Content section of the TechFolio documentation for details.
Be sure that your essay is ready for evaluation before submitting it via Laulima. I often click on the link as soon as I receive the submission. If the essay is empty or only partially complete when I click on the link, you might not receive credit.
Your essay must be original content, written during this semester reflecting your current views and writing style. You cannot submit essays that you wrote previously for this assignment. The purpose of this assignment is for you to practice writing right now, this semester.
If you use ChatGPT or other AI to support your writing, you must attribute the way you used it. Note that using AI to write your assignment, rather than assist with grammar and so forth, is unlikely to result in a good essay that reflects your “voice”. If you use AI to write your essay and do not indicate this in the essay itself or in the submission form, you will receive a zero for the assignment.
[ ] Name the essay file according to its subject.
[ ] Create an interesting title that draws in the reader.
[ ] Use appropriate spelling and grammar.
[ ] Write for the world, not the professor.
[ ] Format code appropriately.
[ ] Use internal headings to structure your essay.
[ ] Format and attribute quotations.
[ ] Include pictures or other media.
[ ] Don’t be boring, don’t be inappropriate.
[ ] Review your post’s content and appearance.
[ ] One paragraph is not enough.
[ ] Indicate that you used AI or discuss use of AI in essay.