diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..6213308b55709780c44691c2328d9fabd8654f46
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,30 @@
+# Contributing to mmdetection
+
+All kinds of contributions are welcome, including but not limited to the following.
+
+- Fixes (typo, bugs)
+- New features and components
+
+## Workflow
+
+1. fork and pull the latest mmdetection
+2. checkout a new branch (do not use master branch for PRs)
+3. commit your changes
+4. create a PR
+
+Note
+- If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first.
+- If you are the author of some papers and would like to include your method to mmdetection,
+please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution.
+
+## Code style
+
+### Python
+We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style.
+We use [flake8](http://flake8.pycqa.org/en/latest/) as the linter and [yapf](https://github.com/google/yapf) as the formatter.
+Please upgrade to the latest yapf (>=0.27.0) and refer to the [configuration](.style.yapf).
+
+>Before you create a PR, make sure that your code lints and is formatted by yapf.
+
+### C++ and CUDA
+We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
\ No newline at end of file
diff --git a/README.md b/README.md
index 79f2316859e84a3cb0e86bc0d55e1466cdeccfc7..6dcd83d3e0436210030e8b3737a0d97dc8f96146 100644
--- a/README.md
+++ b/README.md
@@ -112,6 +112,10 @@ Please refer to [INSTALL.md](INSTALL.md) for installation and dataset preparatio
 
 Please see [GETTING_STARTED.md](GETTING_STARTED.md) for the basic usage of mmdetection.
 
+## Contributing
+
+We appreciate all contributions to improve mmdetection. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for the contributing guideline.
+
 
 ## Citation