Staging best practices; better project estimates; & hidden powers of curl
Tags: todayilearned, programming, curl, career
Published: 2019-12-24 13:00:11

*TL;DR notes from articles I read today.*

### [Center stage: Best practices for staging environments](http://bit.ly/2ZiGaV3)

- Staging environments help you validate the known-unknowns of your systems. Having good tests is not an alternative to staging environments. 
- You must invest time & effort in a proper staging rollout across the company. 
- Your entire engineering team should have a consistent & homogenous deployment pipeline and runtime platform. This consistency will help with disaster recovery if and when it happens. 
- You should match staging & production as closely as possible. Use the same load balancers, security group settings, and deployment tooling. 
- Use a tool that allows teams to roll back the last deployment. No one’s work should be blocked by someone else’s bug. 
- Try to replicate production traffic loads & patterns as much as possible ion staging environments. The staging environment should be at proportionally the same scale as production. Avoid under-provisioning. 


*[Full post here](http://bit.ly/2ZiGaV3), 12 mins read*

---

### [Estimation 101 – a short guide](http://bit.ly/2Sm5OH2)

- Estimations are hard and turn up inaccurate most of the time. We all commit to deadlines based on our estimations and find ourselves in a tight spot later. 
- For good estimations, break tour work down into a set of components, think about their individual complexity to understand the whole project. This can help you give more accurate estimates. 
- A PERT estimate is a good way to get to and also to share estimates. In this, you look at three values: pessimistic, optimistic, and most likely estimate. PERT estimate = (Optimistic + 4*Most likely + Pessimistic)/6. It is a weighted average of the three estimates. 
- When you are estimating your time or effort for projects, include time for writing tests, quality assurance, release scripts. Also include time for technical documentation and provisioning scripts for the cloud infrastructure to support the project, if any are required.

*[Full post here](http://bit.ly/2Sm5OH2), 6 mins read*

---

### [Understanding the hidden powers of curl](http://bit.ly/34RJMyr)

- You can do many requests to any number of API endpoints on a single CLI line. You can also set a specific order to requests using --next.
- You can pass the -v flag and generate a verbose record of the interaction that curl is doing. You can also output everything that occurs in curl using the --trace-ascii function. It will give an ASCII output for parsing and viewing.
- curl offers a great amount of flexibility with methodologies and protocols that you can use. 
- It has many good options to compile your curl content and mimick curl activities in general. You can mimic the activity of a known browser by leveraging the “copy as curl” option available on Chrome, Firefox, Safari, etc.

*[Full post here](http://bit.ly/34RJMyr), 8 mins read*

---

*[Get these notes directly in your inbox every weekday by signing up for my newsletter, in.snippets().](https://mailchi.mp/appsmith/insnippets?utm_source=devto&utm_medium=post08&utm_campaign=is)*