Forecasting software project’s completion date through Monte Carlo Simulation

Nowadays we are using a more probabilistic approach to manage our processes than deterministic. That means that we use different statistical methods to predict the future instead of blind estimations. But wait… wasn’t unpredictability one of the main reasons that made us change from Waterfall to Agile? Yes, uncertainty is inherent to software development. For … »

5 Strategies to improve software development workflow

It is difficult to come up with a plan when you find yourself in a dysfunctional environment. Everything is on fire and there is no time available. Tight deadlines, pressure, working overtime, unsatisfied customers, waste, and a whole lot of other chaotic stuff that piles up and makes it difficult to pick the most critical … »

Key points to consider when doing a software rewrite

The third post of Low Internal Software Quality series. As well as a big software refactor, a rewrite is not a simple thing either. After many years, we have gotten experience enough to point what you had better consider when planning and executing a rewrite process. Will the two platforms live together for some time … »

Key points to consider when doing a big software refactoring

The second post of Low Internal Software Quality series. Doing a big software refactor1 is not a simple thing. There are lots of points that you should think about, from planning and prioritizing to team motivation and execution. Understanding these points in a structured and clear way is part of the job. The good news … »

Understanding deps and applications in your Mixfile

In my journey as a curious Elixir beginner, I’ve come across this seemingly simple question a few times: which applications from third-party libraries do I need to declare in my mix.exs file? Before we get down to the nitty-gritty of application dependencies, let’s first recap some basics of the initialization process in Elixir OTP applications. … »

Deploying Elixir applications with Edeliver

We’ve been talking about deploy and releases with Elixir lately, like how to run migrations on top of a release or how to deal with environment variables. Now it’s time to discover another tool that can help us release our Elixir application. After practicing deploy and tracing through nodes with Exrm, we got more comfortable … »