Software Craftsmanship

Software Craftsmanship

Putting an end to “Technical Debt”

The First Law of Technology Transfer: Long-range good tends to be sacrificed to short-range good. The Second Law of Technology Transfer: Short-range feasibility tends to be sacrificed to long-range perfection. Jerry Weinberg - Quality Software Management In this discussion, the term: heuristic refers to a method used in a given context, with no guaranteed outcome, that possibly contradicts other heuristics, and which helps reduce the time required to find a solution. The acceptance of such heuristic depends on the context of use, and not on…

Read more
Software Craftsmanship

Software Craftsmanship and OPS scripting: a love story

Alright, story time fellas. TL;DR; We’re working with Terraform, layering and workspaces. This makes the standard `terraform workspace select x` pretty cumbersome and dangerous. We wrote a Ruby wrapper using Test-Driven Development. It allows us to have a tested, maintainable and efficient solution to the aforementioned issue. You can find the actual project here: https://github.com/sebiwi/terraform-wrapper If you keep reading, we’re going to talk about scripting, Test-Driven Development, Terraform and Ruby.

Read more
Software Craftsmanship

The Wizard: Scenarios

This is another episode of the “The Wizard” series. If you haven’t read the previous episodes, you can find them here and here. You just don’t know how to do it. You’ve been thinking about it for a while too. It’s an important issue. The crafting of the spell is the most important part. The journey is usually more important than the destination itself. But you don’t feel like you are doing it right.

Read more
Software Craftsmanship

How to do TDD on Auth0 scripts

Auth0 is a SaaS platform that offers a set of tools to implement Authentication and Authorization for your web, mobile and legacy applications. This platform provides a great developer experience with a good documentation and innovative features, such as rules, JavaScript functions that are executed when a user authenticates to your application.

Read more
Software Craftsmanship

Clean Node – Part 1

I have been working with Node.js for almost 6 years now (started back in 2012 with 0.6.10). During these years, co-workers have been asking me the same question over and over again: "What does your application look like?". It is now time to answer this question (or at least try to) !

Read more
Software Craftsmanship

The Wizard: Side effects

See the previous episode here. He has questions. Nevertheless, he has not yet arrived. And you know you have answers. You interrupt your summoning, and sit down. You can continue in another moment. Everything happens for a reason. You just hope the reason is good. N appears right next to you. Hey, what’s up? I'm setting up the auto-scaling configuration of the new project. Nothing huge. Cool. I need some help. He has progressed immensely since the last time you saw him. People are starting to…

Read more
Software Craftsmanship

The semicircle (episode 11 — Boxes and Arrows)

You're running late, and not just a little late. You throw your bag under the table and boot up your PC. “Hi! Sorry I’m so late! You say hello to Jeremy, Audrey, and Farid. Audrey says: “Maria came by. She was looking for you.” “Did she say what for?” Hmmm - ‘I’m waiting for an action plan. I don't see anything coming. I'm worried’ “OK” Not OK. This action plan that Maria is waiting for has been spinning in your head for over a week…

Read more
Software Craftsmanship

The semicircle (episode 10 — Either … or …)

The Eye-Brain Law: To a certain extent, mental power can compensate for observational weakness. The Brain-Eye Law: To a certain extent, observational power can compensate for mental weakness. Jerry Weinberg "I received your email. I get what you want to do. But, what's the goal?" Comfortably secured in a state-of-the-art ergonomic seat, and protected by a natural fortification of edible, combustible, destructible, fungible, flexible, securely-fixed, decay-prone, sensitive and transmissible elements, Mazare observes both you and Jeremy. Jeremy answers, "We would like to analyze the lead…

Read more
Software Craftsmanship

The semicircle (episode 9 — What is to be done ?)

Since practical computation demands that implicit assumptions be brought out into the open, it is no coincidence that computer programmers are attracted to an approach devoted to studying how people make assumptions. -- Gerald Weinberg. number: 4240 date: 08/29/2017 status: in progress type: bug severity: serious submitter: C. COURDEL nature: partial budget carry forward does not work description: I skip the budgeted year, perform a partial carryover, option: without exceeding, I submit the form, nothing happens! Owner : _ Resolution status: _ You've just opened…

Read more