Misplaced Pages

Stack Overflow

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
#161838

44-473: Stack Overflow is a question-and-answer website for computer programmers . It is the flagship site of the Stack Exchange Network . It was created in 2008 by Jeff Atwood and Joel Spolsky . It features questions and answers on certain computer programming topics. It was created to be a more open alternative to earlier question and answer websites such as Experts-Exchange . Stack Overflow

88-477: A 50% increase in score on average. As of 2011, 92% of the questions were answered, in a median time of 11 minutes. As of August 2012, 443,000 of the 1.3 million registered users had answered at least one question, and of those, approximately 6,000 (0.46% of the total user count) had earned a reputation score greater than 5000. Reputation can be gained fastest by answering questions related to tags with lower expertise density, doing so promptly (in particular being

132-428: A bug which allowed an attacker to grant themselves privileges in accessing the production version of the site. Stack Overflow published on their blog that approximately 184 public network users were affected by this breach, which "could have returned IP address, names, or emails". In mid-2023, Stack Exchange made several changes regarding its policies around content generated by artificial intelligence which resulted in

176-412: A deadline. Software analysis begins with a requirements analysis to capture the business needs of the software. Challenges for the identification of needs are that current or potential users may have different and incompatible needs, may not understand their own needs, and change their needs during the process of software development. Ultimately, the result of analysis is a detailed specification for

220-448: A group of investors led by Union Square Ventures . In 2019, Stack Overflow named Prashanth Chandrasekar as its chief executive officer and Teresa Dietrich as its chief product officer. In June 2021, Prosus , a Netherlands-based subsidiary of South African media company Naspers , announced a deal to acquire Stack Overflow for $ 1.8 billion. In early May 2019, an update was deployed to Stack Overflow's development version. It contained

264-655: A person is awarded 10 reputation points for receiving an "up" vote on a question or an answer to a question, and can receive badges for their valued contributions, which represents a gamification of the traditional Q&A website. Users unlock new privileges with an increase in reputation like the ability to vote, comment, and even edit other people's posts. As of March 2024 Stack Overflow has over 23 million registered users and has received over 24 million questions and 35 million answers. The site and similar programming question and answer sites have globally mostly replaced programming books for day-to-day programming reference in

308-548: A post to Meta Stack Exchange, which raised concerns regarding the quality and accuracy of AI-generated content, and the lack of transparency from Stack Exchange surrounding this policy change. Moderators also stated that the version of the policy released to the public differed from the version they had received on the moderator-only forum, notably in that the public version did not include language requiring that moderators stop restricting all AI content. Stack Overflow only accepts questions about programming that are tightly focused on

352-524: A question, establishing a profile and being able to earn reputation to allow functionality like editing questions and answers without peer review or voting to close a question. Stack Overflow won the 2020 Webby People's Voice Award for Community in the category Web. The site's culture has been criticized in the past for being unfriendly by one research paper, especially in the context of gender differences in participation and beginners learning computer science. A 2023 study by another researcher concluded that

396-430: A specific problem. Questions of a broader nature—or those inviting answers that are inherently a matter of opinion—are usually rejected by the site's users, and marked as closed. The sister site softwareengineering.stackexchange.com is intended to be a venue for broader queries, e.g. general questions about software development . Closing questions is a main differentiation from other Q&A sites like Yahoo! Answers and

440-496: A strike of a portion of its volunteer moderators. The protest centered around a policy posted to moderators on May 29 stating that the use of AI-detection tools were not permitted to be used as part of moderation. In a statement, Stack Exchange confirmed that 11% of moderators had ceased content moderation in response to this policy. This would grow to more than 23% of all moderators on the network by June 22, including more than 70% of all Stack Overflow moderators. The strike began with

484-417: A way to prevent low quality questions. The mechanism was overhauled in 2013; questions edited after being put "on hold" now appear in a review queue. Jeff Atwood stated in 2010 that duplicate questions are not seen as a problem but rather they constitute an advantage if such additional questions drive extra traffic to the site by multiplying relevant keyword hits in search engines . All user-generated content

SECTION 10

#1732782645162

528-511: Is a framework that provides the viewpoints on the system and its environment , to be used in the software development process . It is a graphical representation of the underlying semantics of a view. The purpose of viewpoints and views is to enable human engineers to comprehend very complex systems and to organize the elements of the problem around domains of expertise . In the engineering of physically intensive systems, viewpoints often correspond to capabilities and responsibilities within

572-408: Is a popular way of managing changes made to the software. Whenever a new version is checked in, the software saves a backup of all modified files. If multiple programmers are working on the software simultaneously, it manages the merging of their code changes. The software highlights cases where there is a conflict between two sets of changes and allows programmers to fix the conflict. A view model

616-449: Is correctly incorporated with the newer software. Design involves choices about the implementation of the software, such as which programming languages and database software to use, or how the hardware and network communications will be organized. Design may be iterative with users consulted about their needs in a process of trial and error . Design often involves people expert in aspect such as database design , screen architecture, and

660-833: Is essential to success. This is more easily achieved if the team is small, used to working together, and located near each other. Communications also help identify problems at an earlier state of development and avoid duplicated effort. Many development projects avoid the risk of losing essential knowledge held by only one employee by ensuring that multiple workers are familiar with each component. Software development involves professionals from various fields, not just software programmers but also individuals specialized in testing, documentation writing, graphic design , user support, marketing , and fundraising. Although workers for proprietary software are paid, most contributors to open-source software are volunteers. Alternately, they may be paid by companies whose business model does not involve selling

704-399: Is helpful for new developers to understand the project when they begin working on it. In agile development, the documentation is often written at the same time as the code. User documentation is more frequently written by technical writers . Accurate estimation is crucial at the feasibility stage and in delivering the product on time and within budget. The process of generating estimations

748-422: Is inefficient, difficult to understand, or lacking documentation on its functionality. These standards are especially likely to break down in the presence of deadlines. As a result, testing, debugging, and revising the code becomes much more difficult. Code refactoring , for example adding more comments to the code, is a solution to improve the understandability of code. Testing is the process of ensuring that

792-427: Is licensed under Creative Commons Attribute-ShareAlike license, version 2.5, 3.0, or 4.0 depending on the date the content was contributed. A 2013 study has found that 75% of users only ask one question, 65% only answer one question, and only 8% of users answer more than 5 questions. To empower a wider group of users to ask questions and then answer, Stack Overflow created a mentorship program resulting in users having

836-440: Is often delegated by the project manager . Because the effort estimation is directly related to the size of the complete application, it is strongly influenced by addition of features in the requirements—the more requirements, the higher the development cost. Aspects not related to functionality, such as the experience of the software developers and code reusability, are also essential to consider in estimation. As of 2019 , most of

880-432: Is often used to break down the customer's requirements into pieces that can be implemented by software programmers. The underlying logic of the program may be represented in data-flow diagrams , data dictionaries , pseudocode , state transition diagrams , and/or entity relationship diagrams . If the project incorporates a piece of legacy software that has not been modeled, this software may be modeled to help ensure it

924-549: Is part of software engineering which also includes organizational management , project management , configuration management and other aspects. Software development involves many skills and job specializations including programming , testing , documentation , graphic design , user support , marketing , and fundraising . Software development involves many tools including: compiler , integrated development environment (IDE), version control , computer-aided software engineering , and word processor . The details of

SECTION 20

#1732782645162

968-401: Is robust to heavy levels of input or usage), integration testing (to ensure that the software is adequately integrated with other software), and compatibility testing (measuring the software's performance across different operating systems or browsers). When tests are written before the code, this is called test-driven development . Production is the phase in which software is deployed to

1012-471: The programming language ). Documentation comes in two forms that are usually kept separate—that intended for software developers, and that made available to the end user to help them use the software. Most developer documentation is in the form of code comments for each file, class , and method that cover the application programming interface (API)—how the piece of software can be accessed by another—and often implementation details. This documentation

1056-586: The 2000s, and today are an important part of computer programming . Based on the type of tags assigned to questions, the top eight most discussed topics on the site are: JavaScript , Java , C# , PHP , Android , Python , jQuery , and HTML . The website was created by Jeff Atwood and Joel Spolsky in 2008. The name for the website was chosen by voting in April 2008 by readers of Coding Horror , Atwood's programming blog. On 31 July 2008, Jeff Atwood sent out invitations encouraging his subscribers to take part in

1100-489: The available methodologies are best suited to specific kinds of projects, based on various technical, organizational, project, and team considerations. Another focus in many programming methodologies is the idea of trying to catch issues such as security vulnerabilities and bugs as early as possible ( shift-left testing ) to reduce the cost of tracking and fixing them. In 2009, it was estimated that 32 percent of software projects were delivered on time and budget, and with

1144-423: The code executes correctly and without errors. Debugging is performed by each software developer on their own code to confirm that the code does what it is intended to. In particular, it is crucial that the software executes on all inputs, even if the result is incorrect. Code reviews by other developers are often used to scrutinize new code added to the project, and according to some estimates dramatically reduce

1188-408: The end user. During production, the developer may create technical support resources for users or a process for fixing bugs and errors that were not caught earlier. There might also be a return to earlier development phases if user needs changed or were misunderstood. Software development is performed by software developers , usually working on a team. Efficient communications between team members

1232-430: The engineering organization. Fitness functions are automated and objective tests to ensure that the new developments don't deviate from the established constraints, checks and compliance controls. Intellectual property can be an issue when developers integrate open-source code or libraries into a proprietary product, because most open-source licenses used for software require that modifications be released under

1276-619: The first one to answer a question), being active during off-peak hours, and contributing to diverse areas. Stack Overflow is written in C# using the ASP.NET MVC ( Model–View–Controller ) framework, and Microsoft SQL Server for the database and the Dapper object-relational mapper used for data access. Unregistered users have access to most of the site's functionality, while users who sign in can gain access to more functionality, such as asking or answering

1320-477: The full functionality. An additional 44 percent were delivered, but missing at least one of these features. The remaining 24 percent were cancelled prior to release. Software development life cycle refers to the systematic process of developing applications . The sources of ideas for software products are plentiful. These ideas can come from market research including the demographics of potential new customers, existing customers, sales prospects who rejected

1364-407: The number of bugs persisting after testing is complete. Once the code has been submitted, quality assurance —a separate department of non-programmers for most large companies—test the accuracy of the entire software product. Acceptance tests derived from the original software requirements are a popular tool for this. Quality testing also often includes stress and load checking (whether the software

Stack Overflow - Misplaced Pages Continue

1408-441: The official Android developer documentation from Google, while developers using only the official Android documentation tended to write significantly less functional code than those who used only Stack Overflow. Question-and-answer site The following is a list of websites that follow a question-and-answer format . The list contains only websites for which an article exists, dedicated either wholly or at least partly to

1452-403: The performance of servers and other hardware. Designers often attempt to find patterns in the software's functionality to spin off distinct modules that can be reused with object-oriented programming . An example of this is the model–view–controller , an interface between a graphical user interface and the backend . The central feature of software development is creating and understanding

1496-519: The private beta of the new website, limiting its use to those willing to test out the new software. On 15 September 2008 it was announced that the public beta version was in session and that the general public was now able to use it to seek assistance on programming related issues. The design of the Stack Overflow logo was decided by a voting process. On 3 May 2010, it was announced that Stack Overflow had raised $ 6 million in venture capital from

1540-463: The process used for a development effort varies. The process may be confined to a formal, documented standard , or it can be customized and emergent for the development effort. The process may be sequential, in which each major phase (i.e. design, implement and test) is completed before the next begins, but an iterative approach – where small aspects are separately designed, implemented and tested – can reduce risk and cost and increase quality. Each of

1584-424: The product that developers can work from. Software analysts often decompose the project into smaller objects, components that can be reused for increased cost-effectiveness, efficiency, and reliability. Decomposing the project may enable a multi-threaded implementation that runs significantly faster on multiprocessor computers. During the analysis and design phases of software development, structured analysis

1628-466: The product, other internal software development staff, or a creative third party. Ideas for software products are usually first evaluated by marketing personnel for economic feasibility, fit with existing channels of distribution, possible effects on existing product lines, required features , and fit with the company's marketing objectives. In the marketing evaluation phase, the cost and time assumptions become evaluated. The feasibility analysis estimates

1672-503: The project's return on investment , its development cost and timeframe. Based on this analysis, the company can make a business decision to invest in further development. After deciding to develop the software, the company is focused on delivering the product at or below the estimated cost and time, and with a high standard of quality (i.e., lack of bugs) and the desired functionality. Nevertheless, most software projects run late and sometimes compromises are made in features or quality to meet

1716-427: The software that implements the desired functionality. There are various strategies for writing the code. Cohesive software has various components that are independent from each other. Coupling is the interrelation of different software components, which is viewed as undesirable because it increases the difficulty of maintenance . Often, software programmers do not follow industry best practices, resulting in code that

1760-403: The software, but something else—such as services and modifications to open source software. Computer-aided software engineering (CASE) is tools for the partial automation of software development. CASE enables designers to sketch out the logic of a program, whether one to be written, or an already existing one to help integrate it with new code or reverse engineer it (for example, to change

1804-520: The tools for estimating the amount of time and resources for software development were designed for conventional applications and are not applicable to web applications or mobile applications . An integrated development environment (IDE) supports software development with enhanced features compared to a simple text editor . IDEs often include automated compiling , syntax highlighting of errors, debugging assistance, integration with version control , and semi-automation of tests. Version control

Stack Overflow - Misplaced Pages Continue

1848-591: The website's new users were met with significant difficulties in obtaining help from other users in posts started by the former; an analysis from a sample of 968 posts showed that 49% experienced hurdles such as their questions being closed, receiving no response, or receiving no mention as to why their posts were being negatively scored. A study from the University of Maryland found that Android developers that used only Stack Overflow as their programming resource tended to write less secure code than those who used only

1892-495: The websites. For the humor "Q&A site" format first popularized by Forum 2000 and The Conversatron, see Q&A comedy website . Software development Software development is the process of designing and implementing a software solution to satisfy a user . The process is more encompassing than programming , writing code , in that it includes conceiving the goal, evaluating feasibility, analyzing requirements , design , testing and release . The process

1936-436: Was sold to Prosus , a Netherlands-based consumer internet conglomerate, on 2 June 2021 for $ 1.8 billion. The website serves as a platform for users to ask and answer questions, and, through membership and active participation, to vote questions and answers up or down similar to Reddit and edit questions and answers in a fashion similar to a wiki . Users of Stack Overflow can earn reputation points and "badges"; for example,

#161838