Skip to content

Instantly share code, notes, and snippets.

@sebs
Last active October 12, 2019 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebs/7d4fe4decb97d028c986f8022b6ccf0c to your computer and use it in GitHub Desktop.
Save sebs/7d4fe4decb97d028c986f8022b6ccf0c to your computer and use it in GitHub Desktop.

Just a user story with some acceptance criteria is not enough when estimating stories that you implement in AWS cloud

Scrum way of doing things delays lots of design decisions into planning I - When you work with software defined infrastructure, you need to do a design earlier in the process on, in order to get results that match with reality.

Why

Software defined infrastructure vs. given infrastructure

When Scrum and user stories were invented, infrastructure was a given thing and features assumed it to be. At some point in time, a server was purchased or rented and this was a given set of ressources then.

In a cloud based architecture, instrastructure is software or configuration and thus the 'hardware' can be defined newly with each story.

cost of operation differs vastly with implementation

Given software defined infrastrucutre, the implementation of a story can differ vastly and thus cost of operation.

Estimates differ based on implementation

The same goes for the cost of implementation. Given different choices on infrastructure a feature might be require more or less elements and it is vital for a estimate to know the infrastructure beforehand as much as possible.

How

Come up with a basic design in UML

A simple UML Sequence diagram wiull help greatly how certain elements of the infrastructure are pieced together. Do this as a design session on a whiteboard, with the whole team.

Review all limits of the services used

Depending oan what services you choose to solve a problem, there are several service limits that apply. Research all of them, they represent your acceptance criteria.

Review internal & external cost like monitoring services

Depending on your choices for services in the AWS infrastructure and external ones attached (e.g. lambda monitoring) create cost. At least model and calculate the cost for the desired design under the expected conditions.

Prototype every newly used service to get to know it and be able to estimate it

if you are using new services in the AWS landscape: Do a spike imlmenenting the desired functionality as a prototype. This will vastly improve the match between estimate and actual used time to implement the feature.

Collect and review Estimation vs actually used time in order to learn what is taking long

When done with the implementation, review time taken / efforttaken vs. estimated time/effort all the time. Share the created insigts with all the team members.

@s0enke
Copy link

s0enke commented Oct 11, 2019

Another possibility would be to scope down the AWS env to particular services/regions/features to reduce the "blast radius" of developer entropy.

@sebs
Copy link
Author

sebs commented Oct 12, 2019

Not sure how this counts into sotry estimation, but you might elaborate over a beer and more veggie food? ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment