mcve and mvp
What does poc mean in project management?
In project management, POC stands for "Proof of Concept." It is a prototype or early version of a product or system that is created to demonstrate the feasibility and potential of the idea. POCs are often used to showcase the viability of a project to stakeholders and investors, and to gather feedback and make necessary adjustments before moving forward with full development.
What does mvp mean in project management
In project management, MVP stands for Minimum Viable Product. It refers to the minimum set of features or functionality of a product or service that is required to satisfy early customers and to provide feedback for future development. The goal of MVP is to validate assumptions about the product, minimize risk, and maximize learning with minimal effort and resources.
https://github.com/git-for-windows/git/issues/1780
It's an acronym (Stargateur was kind enough to point out the help center article about it - had I known that existed, I would have just linked to it):
- (M)inimal
- (C)omplete
- (V)erifiable
- (E)xample
It refers to the least amount of code required for someone to run the program on a stated architecture and be likely to reproduce the problem that's being described in the question.
Now how that's given can vary because languages treat dependencies in different ways. If your code depends on a static library (which might be proprietary), then you'd need to provide something to mock it, if it's not possible to isolate the code around it.
Likewise, if your code relies on dependency injection, you might need to provide a mock setter, or just annotate the code to indicate that you've eliminated that part as being problematic.
So "minimal" in some cases can actually be quite large, even with every effort given to offer only the code needed to reproduce an issue. It's in those cases where it's really likely that debugging prior to asking hasn't been done as optimally as possible, and help on how to diagnose the problem might be what's needed.
The term is expressed sort of eternally in an ideal sense, in hopes of guiding people to not paste their entire project into the body of the question - results vary from language to language.
In the best of outcomes, those that haven't fully optimized the example code to be as minimal as possible are shown how to better isolate problems using tools that they probably have. In the worst outcomes, the question is put on hold, and the user may or may not receive additional advice on how to debug, depending on how much time people have and how easily the chunk of code they did post can be processed.
In most cases, just indicating that you've done your best to post the minimum amount needed and tested it to see if the problem reproduces is enough to earn quite a bit of goodwill, and cause people to be more likely to help you further debug (which generally obviates the question anyway).
How to create a Minimal, Reproducible Example - Help Center - Stack Overflow
When asking a debugging question, people will be better able to provide help if you provide code as text in your question that prospective answerers can easily understand and use to reproduce the problem.
This is variously referred to as creating a "minimal, reproducible example" (MRE), a "minimal, complete and verifiable example" (MCVE), a "minimal, workable example" (MWE), or a "reprex". Regardless of how it's communicated to you, it boils down to ensuring you have included code in your question that follows the following guidelines:
Your code examples should be…
- Minimal: Use as little code as possible that still produces the same problem
- Complete: Provide all parts someone else needs to reproduce your problem in the question itself
- Reproducible: Test the code you're about to provide to make sure it reproduces the problem
The rest of this help article provides guidance on these aspects of writing a minimal, reproducible example.
For more information on how to debug your program so that you can create a minimal example, Eric Lippert has written a fantastic blog post on the subject: How to debug small programs.
Minimal
The more code there is to go through, the less likely people can find your problem. Streamline your example in one of two ways:
- Restart from scratch. Create a new program, adding in only what is needed to see the problem. Use simple, descriptive names for functions and variables – don’t copy the names you’re using in your existing code.
- Divide and conquer. If you’re not sure what the source of the problem is, start removing code a bit at a time until the problem disappears – then add the last part back.
…but still readable
Don't sacrifice clarity for brevity when creating a minimal example. Use consistent naming and indentation, and include code comments if needed. Use your code editor’s shortcut for formatting code. Also, use spaces instead of tabs, as tabs usually are not correctly formatted on Stack Overflow, particularly for indenting.
Complete
Make sure all information necessary to reproduce the problem is included as text in the question itself:
-
DO NOT use images of code. Copy the actual text from your code editor, paste it into the question, then format it as code.
-
Use individual code blocks for each file or snippet you include. Provide a description for the purpose of each block.
-
If the problem requires some server-side code as well as some XML-based configuration, include code for both. If a web page problem requires HTML, some styles, and some JavaScript, include code for all three. The problem might not be in the code that you think it is in.
-
If you are using HTML, CSS, and/or JavaScript, you can use Stack Snippets to include runnable snippet instead of just a static code block.
Reproducible
To help you solve your problem, others will need to verify that it exists:
-
Describe the problem. "It doesn't work" isn't descriptive enough to help people understand your problem. Instead, tell other readers what the expected behavior should be. Tell other readers what the exact wording of the error message is, and which line of code is producing it. Use a brief but descriptive summary of your problem as the title of your question.
-
Eliminate any issues that aren't relevant to the problem. If your question isn’t about a compiler error, ensure that there are no compile-time errors. Use a program such as JSLint to validate interpreted languages. Validate any HTML or XML.
-
Double-check that your example reproduces the problem! If you inadvertently fixed the problem while composing the example but didn't test it again, you'd want to know that before asking someone else to help.
It might help to shut the system down and restart it, or transport the example to a fresh environment to confirm it really does provide an example of the problem.
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2016-04-15 虚拟机中的ip和本机的ip不是一个网段的