Topics (203k) Articles (205k) Users (299) Discussions (237) Comments (383) Files (715) New article
"Release early, release often" is a software development philosophy that emphasizes the importance of frequent, incremental updates to software rather than waiting for a single, large release. This approach encourages developers to release functional versions of software as early as possible and to continue to improve and iterate upon it over time.
Planning Poker, also known as Scrum Poker, is a consensus-based estimation technique used primarily in Agile development methodologies, particularly within Scrum teams. It helps teams estimate the effort or relative size of user stories, tasks, or features using a deck of cards with values assigned to them. ### Key Features of Planning Poker: 1. **Card Deck:** Each participant has a deck of cards, usually with Fibonacci numbers (1, 2, 3, 5, 8, 13, etc.
The Open–Closed Principle (OCP) is one of the five SOLID principles of object-oriented design, which were introduced by Bertrand Meyer in 1988. The principle states that software entities (such as classes, modules, and functions) should be open for extension but closed for modification. Here's a breakdown of the key concepts: 1. **Open for Extension**: This means that the behavior of a module can be extended to accommodate new functionalities.
Minimalism in computing refers to the design philosophy and approach that emphasizes simplicity and the reduction of unnecessary components in software, hardware, and user interfaces. The goal of minimalism is to streamline functionality, improve user experience, and lower the cognitive load on users by stripping away extraneous features and clutter. Key aspects of minimalism in computing include: 1. **User Interface Design**: Minimalist interfaces prioritize essential elements, using clean lines and ample white space.
The Mayo-Smith pyramid, also known as the Mayo-Smith classification, is a model used in the field of medical education and research to categorize levels of evidence. It provides a hierarchical framework for assessing the strength and quality of evidence in clinical studies, guiding healthcare professionals in making informed decisions based on available data. At the base of the pyramid, there are lower levels of evidence, which typically include expert opinions, case reports, and anecdotal observations.
Software development philosophies encompass a variety of methodologies, principles, and approaches that guide how software is designed, developed, and maintained. Here is a list of some commonly recognized software development philosophies: 1. **Agile Development**: Emphasizes flexibility, collaboration, and customer feedback. Key frameworks include Scrum, Kanban, and Extreme Programming (XP). 2. **Waterfall Model**: A linear and sequential approach where each phase must be completed before the next begins.
Lightweight methodology refers to an approach in software development that emphasizes simplicity, flexibility, and efficiency over heavier, more traditional methodologies, such as the Waterfall model or fully prescriptive Agile frameworks. It is often characterized by the following features: 1. **Minimal Overhead**: Lightweight methodologies focus on reducing bureaucracy and documentation, allowing teams to spend more time on development and delivery of software.
Lean software development is an approach to software delivery that aims to optimize efficiency and minimize waste while increasing value for the customer. It is derived from Lean manufacturing principles, which originated in the Toyota Production System. Lean software development focuses on improving flow, reducing cycle time, and continually learning and adapting to changing circumstances. ### Key Principles of Lean Software Development 1.
The Law of Conservation of Complexity is a concept primarily discussed in the context of systems theory and complexity science. It suggests that in any system, the total amount of complexity remains constant over time; if complexity increases in one part of a system, it must decrease in another part.
Kanban is a visual workflow management method that is used in software development, as well as in other fields, to optimize productivity, improve process flow, and enhance collaboration among team members. Originating from Toyota's production system, Kanban emphasizes incremental improvements and efficiency gains. Here are some key concepts of Kanban development: 1. **Visualizing Work**: Kanban uses visual boards (often physical boards or digital tools) to represent the workflow.
The KISS principle is an acronym that stands for "Keep It Simple, Stupid." It is a design and problem-solving philosophy that emphasizes simplicity as a key factor in effectiveness and usability. The idea behind KISS is that systems, processes, and designs should be made as simple as possible and that unnecessary complexity should be avoided.
Iterative and incremental development is a software development methodology that emphasizes the gradual improvement and refinement of a product over time through repetitive cycles (iterations) and smaller, manageable segments of development (increments). This approach is widely used in Agile frameworks and promotes flexibility, adaptability, and ongoing feedback throughout the development process.
"Homesteading the Noosphere" is an influential essay by the American thinker and technology expert Jaron Lanier, published in 2006. In the essay, Lanier discusses the implications of the digital age on creativity, intellectual property, and culture. He uses the term "noosphere" to refer to the collective consciousness and shared intellectual space created by human thought, particularly as it exists in the realm of the internet and digital communications.
Extreme Programming (XP) is an agile software development methodology that emphasizes customer satisfaction, flexibility, and continuous feedback through iterative development. Introduced by Kent Beck in the late 1990s, XP aims to improve software quality and responsiveness to changing requirements by promoting a set of core values, principles, and practices. ### Core Values of Extreme Programming: 1. **Communication**: Encourages open communication among team members, stakeholders, and customers.
Domain-Driven Design (DDD) is a software development approach that focuses on modeling software based on the business domain it aims to serve. Introduced by Eric Evans in his 2003 book "Domain-Driven Design: Tackling Complexity in the Heart of Software," DDD emphasizes collaboration between technical and domain experts to create a shared understanding of the domain and its complexities.
"Cowboy coding" is a term often used in software development to describe a style of programming where developers act independently, without following established processes, standards, or documentation. This approach can lead to quick and unencumbered development but often results in code that is difficult to maintain, lacks consistency, and may have more bugs.
Continuous Test-Driven Development (TDD) is an extension of the traditional Test-Driven Development methodology, combining it with continuous integration and continuous delivery practices. In TDD, the development process is structured around the creation and execution of automated tests before writing the code that satisfies those tests. Continuous TDD incorporates this approach into a flowing, ongoing development cycle, where testing and feedback are integral and continuous aspects of the development process.
Comment programming, often referred to as "comment-driven development" or "comment-first programming," is a programming practice where developers write comments or documentation about the code they intend to implement before actually writing the code itself. This approach emphasizes the importance of understanding and clarifying the intent and functionality of the code through comments before delving into the actual coding process. ### Key Features of Comment Programming: 1. **High-Level Design**: Developers outline the structure, functionality, and purpose of the anticipated code.
Best practice refers to a method or technique that has consistently shown superior results in a given field or industry. It is recognized as the most efficient and effective way to achieve a desired outcome, based on repeatable procedures that have proven over time to lead to successful results. Here are some key characteristics of best practices: 1. **Evidence-Based**: Best practices are often grounded in data and research, showing that they produce better outcomes than alternative methods.
Behavior-Driven Development (BDD) is a software development methodology that enhances collaboration between developers, testers, and non-technical stakeholders by emphasizing the behavior of an application from the end user's perspective. BDD extends Test-Driven Development (TDD) by using natural language to describe the desired behavior of a software system, often through user stories and acceptance criteria.
Pinned article: Introduction to the OurBigBook Project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 2. You can publish local OurBigBook lightweight markup files to either OurBigBook.com or as a static website.Figure 3. Visual Studio Code extension installation.Figure 5. . You can also edit articles on the Web editor without installing anything locally. Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact





