On October 20, 2016, the site on the Stack Exchange network that was previously known as Programmers was rebranded as Software Engineering.
The original proposal that let to what is today Software Engineering was launched on June 3, 2010. The original proposed name of the site was Not Programming Related. The idea was that this site would capture questions that didn’t fit on Stack Overflow because they were too rooted in opinions – debates about style and tools, recommendations for books or resources, and other things more suited to discussion forums. Many of the proposed questions that were used to originally define this site were of this style:
- Tabs vs. Spaces: What is the one proper indentation character for everything, in every situation, ever?
- What is your favorite programming joke?
- Should I work for a company that makes you wear a suit?
- What is your favorite editor / IDE?
- How do I cope with a manager who’s always interfering in what I do, but doesn’t really understand it?
With this scope, the site went into private beta on September 1, 2010. This provided an opportunity for the people who worked on developing the idea behind the site to seed it with good questions and come up with the community standards. These questions were very similar to the proposals:
- “Comments are a code smell”
- Getting non-programmers to understand the development process
- How do you stay focused at work?
- Which (programming) specialities are needed in a good web development team?
Many were informative, enlightening, and generally interesting, resulting in large numbers of views. However, it was quickly learned that they weren’t a good fit for the question-and-answer format of Stack Exchange. From the beginning, Stack Overflow, and then the rest of the network, was pitched as a place to go to get answers, without the need to wade through discussion and chit-chat. There were plenty of sites that supported discussions, but not many that supported easily finding the specific answer to a specific question.
On September 29, 2010, the Good Subjective, Bad Subjective blog post was published. This is one of the definitive posts on subjective posts on the Stack Exchange network. One of the sites explicitly discussed was Programmers. Stack Overflow was great in getting answers to questions that programmers had, and was a very popular format. There were 6 criteria defined for judging what makes a subjective question a “great subjective question”, and questions that met a higher number of these criteria tended to be the kind of question that fits well into the vision of the platform, while questions that score lower are less likely to be a good fit. On the same day, Jeff Atwood made a post on the Meta site to announce the enforcement of these guidelines on the site and updated the site’s documentation to reflect this.
On December 16, 2010, Programmers launched from public beta to a full-fledged member of the Stack Exchange network. For the next couple of years, the community fought hard to better define exactly what the scope was, what makes a good question, and how to represent ourselves to the rest of the world, both within the Stack Exchange network and when talking about the site to other people in the world. One of the biggest struggles was to avoid becoming the black sheep of Stack Exchange or be seen as Stack Overflow’s toilet bowl.
In June 2012, all of these discussions culminated in a request to change the name of the site. The site name of “Programmers” did not match the description of a site, which was “conceptual questions about software development”. Instead, the scope was widely interpreted as “any and all questions that can be answered by people who are programmers”. We were fending off people asking lower quality questions on a regular basis, often due to this misinterpretation of the site’s scope. However, at this point in time, the idea of rebranding was flat-out rejected.
For four more years, we went off and tried to do what was suggested – advertise the site using appropriate methods, solidify the scope and define it on Meta and in the documentation, and address the issues using the tools that the community and elected moderators have access to. So we did this, but we continued to face people who didn’t understand the scope that was defined in the late beta stages of the site. One big hurdle were explaining the scope change to users on Stack Overflow who weren’t active participants, but continued to suggest that users cross-post their highly subjective questions. We leveraged various tools (including some open-source software that interacts with the Stack Exchange API to monitor comments and the various Meta sites across the network) to respond to and educate people. Another problem was growing the site, as experts in some parts of the scope were turned off by the name Programmers as they didn’t consider themselves to be programmers.
In March 2016, we once again asked Stack Exchange to revisit the idea of a name change. This time, they agreed. And we began the process of ensuring that all members of the community understood the scope of the site, developed a plan to properly communicate that commonly understood scope using the Tour and Help Center, and ironed out a few details. On October 20, 2016, everything finally came together and we had a name that actually matched our scope.
So, exactly what changed? Not much, other than the site name and subdomain. Our Tour was refreshed and we defined ourselves as “a question and answer site for professionals, academics, and students working within the systems development life cycle who care about creating, delivering, and maintaining software responsibly” – a fancy way of saying that we tend to be professionals who work in software development (although some members of our community may be students or work in academia) and our primary focus is not just delivering software, but delivering software in the right way. Our Help Center’s explanation of what is on-topic and within scope was reduced in length and complexity, taking advantage of linking to Wikipedia articles that the community agreed provided good definitions of the topics that were within our scope while also excluding commonly asked questions that we’ve found don’t work. But all of these are simply wordsmithing and finding a way to cleanly capture the community’s thoughts.
There are a lot of very good examples of questions that are a good fit for the site:
- How do you transition a program from in-development to release?
- I don’t understand how TDD helps me get a good design if I need a design to start testing it
- Why is 80 characters the ‘standard’ limit for code width?
- Coaxing requirements out of business people?
- What is the proper way to create requirements documents?
- Is there any “real” reason multiple inheritance is hated?
- How is architectural design done in an agile environment?
- How should standards and process improvements be introduced to an organization without them?
- When is the time right to bring a project to the alpha/beta/public phase?
- Version control and personal configuration file
These questions span many aspects of software engineering – project management, requirements engineering, architecture and design, configuration management and release, quality assurance, and methodologies and practices.
Over the past years, I’ve been impressed by the community of Software Engineering Stack Exchange time and time again. Not only does this community provide smart, well-reasoned, and well-written answers some really interesting and challenging questions, but these people done so in the face of many challenges in defining the community and educating others on that definition. I’m glad that we – a variety of software developers from a broad spectrum of backgrounds – could come together and develop a robust community. I’m especially proud to have been able to volunteer my time to help moderate the site over the past four, almost five years.
Looking forward to the next five years, I’m excited that we have a better public-facing representation of the community. I believe that this will help everyone give a more accurate elevator pitch for the site and the people behind it. With that better pitch, I hope that we can continue to draw in experts from across software development – programmers, designers, architects, agile coaches and Scrum Masters, team leads and managers, quality assurance engineers and testers, project managers, configuration managers, DevOps engineers, teachers and professors, and students on the road to filling these roles in the future. I’m looking forward to being able to better sell this community to the outside world and grow a place for current and future software engineers to exchange their knowledge and skills.