doc: add LICENSE and README
This commit is contained in:
3 files changed
+128
No files matched your search
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 Stephen Waits <steve@waits.net>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,107 @@
|
||||
# Monte Carlo Project Scheduler (mcps)
|
||||
|
||||
Monte Carlo Project Scheduler (mcps) is a command-line tool that runs Monte
|
||||
Carlo simulations on project schedules to estimate completion times and effort
|
||||
required. It helps project managers and engineers gain a better understanding of
|
||||
potential project risks and timelines by providing a probabilistic analysis of
|
||||
schedule durations and total work effort.
|
||||
|
||||
## Features
|
||||
|
||||
- **Simulate Project Schedules**: Run multiple simulations to estimate the
|
||||
probability distribution of project completion times and total work effort.
|
||||
- **Customizable Inputs**: Accepts project schedules in YAML or JSON formats,
|
||||
with options to override certain parameters like the number of workers or the
|
||||
number of iterations.
|
||||
- **Visual Output**: Generates an ASCII-based cumulative distribution function
|
||||
(CDF) graph, providing an easy-to-understand visualization of the simulation
|
||||
results.
|
||||
|
||||
## Installation
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Rust**: You'll need to have Rust installed on your system to build the
|
||||
project. You can install Rust using `rustup`:
|
||||
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
### Building from Source
|
||||
|
||||
- Clone and build the repository:
|
||||
|
||||
```bash
|
||||
git clone <git@git.sr.ht>:~swaits/mcps
|
||||
cd mcps
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
The binary will be available at `target/release/mcps`.
|
||||
|
||||
## Usage
|
||||
|
||||
Once you have built the tool, you can use it by providing a project schedule
|
||||
file in YAML or JSON format.
|
||||
|
||||
### Basic Usage
|
||||
|
||||
```bash
|
||||
./mcps example.yaml -i 100000 -w 10
|
||||
```
|
||||
|
||||
This command runs the Monte Carlo simulation on the example.yaml schedule file
|
||||
with 100,000 iterations and overrides the number of workers to 10.
|
||||
|
||||
### Command-Line Options
|
||||
|
||||
- `-i, --iterations <iterations>`: Specify the number of iterations to run. Must be at least 100. Default is 50,000.
|
||||
- `-w, --workers <num_workers>`: Override the number of workers specified in the schedule file.
|
||||
- `-v, --version`: Print version information.
|
||||
- `-h, --help`: Print help information.
|
||||
|
||||
### Schedule File Format
|
||||
|
||||
The tool accepts schedule files in YAML or JSON format. Below is an example of the YAML format:
|
||||
|
||||
```yaml
|
||||
num_workers: 5 # for the purpose of scheduling simulation
|
||||
estimate_confidence: 0.80 # confidence actuals will fall inside estimate bounds
|
||||
tasks:
|
||||
- id: DesignPhase
|
||||
min_time: 1.5 # 1.5 days
|
||||
max_time: 3.5 # 3.5 days
|
||||
dependencies: []
|
||||
- id: ImplementationPhase
|
||||
min_time: 2.25 # 2.25 days
|
||||
max_time: 4.75 # 4.75 days
|
||||
dependencies: [DesignPhase]
|
||||
```
|
||||
|
||||
### Example Output
|
||||
|
||||
The tool generates an ASCII-based cumulative distribution function (CDF) graph,
|
||||
which visually represents the distribution of project durations and effort:
|
||||
|
||||

|
||||
|
||||
## Project Details
|
||||
|
||||
### Contributing
|
||||
|
||||
Contributions are welcome! If you'd like to contribute, please fork the
|
||||
repository and make changes as you'd like. Pull requests are warmly welcomed.
|
||||
|
||||
### Issues
|
||||
|
||||
If you encounter any issues with the tool, feel free to open an issue on the repository.
|
||||
|
||||
### Acknowledgments
|
||||
|
||||
This tool was developed by Stephen Waits. Contributions and suggestions are
|
||||
always welcome!
|
||||
|
||||
### License
|
||||
|
||||
This project is licensed under the MIT License. See the LICENSE file for details.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 113 KiB |
Reference in new issue
Block a user