Jenkinsfile contains the definition of a Jenkins pipeline and is checked into the source control repository. It is a text file.
1) It allows code review and iteration on the pipeline.
2) It permits an audit trail for the pipeline.
3) There is a single source of truth for the pipeline, which can be viewed and edited.