Ask your Amazon Echo... What is the Prime Directive?
Agile. So you think you're an agile practitioner? Well... I can tell you, if you spend more than 75% of your day in meetings, trying to predict how much time it will take to complete the project, then I would strongly disagree. Twiddling and re-twiddling fabricated estimates you somehow created without building software or releasing to production does not make you an agile practitioner.
Agile is all about the enablement of releasing code to production... OFTEN !!! And by often I mean more often than 10 months... or another way of putting the same statement... NEVER. Come on, people. 'NEVER' is not acceptable. I would be happy with once a month, and once a week would be delightful. I am not even going to think about having the discussion around the idea of continuous deployment.
And by production... I think we should strive for apps to be released to a device where an actual person can touch the screen and make things happen. Bundling up features into a releasable package would be fine and probably quite acceptable to the consumer / user of the application. The benefits of releasing the application to a somewhat public audience, where we can get 'real' feedback would be invaluable. You do realize we are all about feedback... keeping the product in alignment with the changing needs of the product owner and the business.
As you read the remainder of this... please sit and read this as you are the product owner or better yet, the technical manager of an agile team trying to deliver business value to your company. Why would you want to deliver a product... early and often? Why would you want to receive feedback (real feedback) from the customer and allow your progress to be driven (guided) by these changes in direction. Seems like the right thing to do.
In the case of my example for this post. Making even a small adjustment to the release cadence would make a huge impact to the delivery of the product including quality and correctness. Imagine if we could deliver something every six months (remember currently we are sitting at 10 months... with nothing delivered). Delivering something every six months seems a pathetic goal for a team accustomed to delivery on a weekly basis, but to a team only delivering yearly... this would be a doubling of the value delivered to the customer.
Why would you want to deliver faster?
- faster customer feedback
- what you are trying to build, will change... do you want a waterfall project where you deliver something 12 months after defining it... I am sure you can remember one of those projects.
- risks become smaller because you are dealing with them faster
- value faster
- code management is easier
- smaller regression cycle (both from an automated and manual standpoint)
- trust... working software... makes customers happy
- cycle period from request to working software is smaller
EARLY and OFTEN... not a bad thing!
Docker Machine
scripts
Please review the base scripts on our github repository.
init
Used for the initialization of the virtual machine (vm) instance. This method will normally be used to initialize the vm instance, but will not be required after.
cd /opt/boxen/repo/vm./confluence-vm.sh init |
create
Can be used stand-alone, but is generally used as part of the 'init'.
delete
Shutdown the VM instance and delete.
start
Start an already initialized VM.
stop
Stop a running VM.
restart
Restart an already executing VM.
ssh
Gain ssh access to a running instance of the VM.
attach
Attach to a running instance of the VM and view console output.
status
View status information associated with running instance of VM.
XAVIER:vm ga-mlsdiscovery$ ./stash-vm.sh statusDocker Virtual Machine (stash-vm)RunningCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESbbc767be3fbb atlassian/stash "./bin/start-stash.sh" 19 hours ago Up 19 hours 0.0.0.0:7990->7990/tcp, 0.0.0.0:7999->7999/tcp stash
|
inspect
View details about a running instance of the VM.
XAVIER:vm ga-mlsdiscovery$ ./stash-vm.sh inspectDocker Virtual Machine (stash-vm)[{ "Id": "f1f430b54be85ce50f937feb85b3c7ca1c4d10e8982fb31cfaf958bb82ab1586",
"Parent": "2cc45471c854425f26002abcf60f40ef37922fd4c960d65ec238e87bf277203e",
"Comment": "",
"Created": "2015-08-28T04:22:02.59075488Z",
"Container": "28625eb37c0c2addb57441ead09da2c1c9e7decf543667caa8bb8aed7f2ed766",
"ContainerConfig": {
"Hostname": "1a382cba094f",
"Domainname": "",
"User": "daemon:daemon",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"7990/tcp": {},
"7999/tcp": {}
},
"PublishService": "",
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"JAVA_VERSION=7u79",
"JAVA_DEBIAN_VERSION=7u79-2.5.6-1~deb8u1",
"STASH_HOME=/var/atlassian/application-data/stash",
"RUN_USER=daemon",
"RUN_GROUP=daemon",
"STASH_INSTALL_DIR=/opt/atlassian/stash",
"STASH_VERSION=3.11.2"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) CMD [\"./bin/start-stash.sh\" \"-fg\"]"
],
"Image": "2984c730f9a4440221b72f1550e5a8fa552339906e52d435c156c56ebf900451",
"Volumes": {
"/opt/atlassian/stash": {}
},
"VolumeDriver": "",
"WorkingDir": "/opt/atlassian/stash",
"Entrypoint": null,
"NetworkDisabled": false,
"MacAddress": "",
"OnBuild": [],
"Labels": {}
},
"DockerVersion": "1.6.2",
"Author": "Atlassian Stash Team",
"Config": {
"Hostname": "1a382cba094f",
"Domainname": "",
"User": "daemon:daemon",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"7990/tcp": {},
"7999/tcp": {}
},
"PublishService": "",
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"JAVA_VERSION=7u79",
"JAVA_DEBIAN_VERSION=7u79-2.5.6-1~deb8u1",
"STASH_HOME=/var/atlassian/application-data/stash",
"RUN_USER=daemon",
"RUN_GROUP=daemon",
"STASH_INSTALL_DIR=/opt/atlassian/stash",
"STASH_VERSION=3.11.2"
],
"Cmd": [
"./bin/start-stash.sh",
"-fg"
],
"Image": "2984c730f9a4440221b72f1550e5a8fa552339906e52d435c156c56ebf900451",
"Volumes": {
"/opt/atlassian/stash": {}
},
"VolumeDriver": "",
"WorkingDir": "/opt/atlassian/stash",
"Entrypoint": null,
"NetworkDisabled": false,
"MacAddress": "",
"OnBuild": [],
"Labels": {}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 0,
"VirtualSize": 546775193,
"GraphDriver": {
"Name": "aufs",
"Data": null
}
}] |
settings
XAVIER:vm ga-mlsdiscovery$ ./stash-vm.sh settingsDocker Virtual Machine (stash-vm)DOCKER_IMAGE=atlassian/stashDOCKER_CONTAINER=stashDOCKER_DATA_DIR=/Users/Shared/data/stashDOCKER_VM_NAME=stash-vmDOCKER_VM_MEMORY=2048
DOCKER_VM_CPUS=2
DOCKER_VM_ARGS= |