#agile
3 posts

test && commit || revert

This post by the legendary Kent Beck describes an extreme form of TDD. In all fairness, I haven't tried it and your mileage may vary.
Read more

test && commit || revert

TDD
Courtesy: Geek and Poke

This post by the legendary Kent Beck describes an extreme form of TDD. In all fairness, I haven't tried it and your mileage may vary.

Although, my biggest takeaway from this article was:

"I hated the idea so much that I had to try it"

The idea behind TCR (Test & Commit Or Revert) strategy is simple. Run a loop to commit code the moment all the test cases pass. If the tests don't pass, revert the code to the last commit where the tests pass.

while(true);
do
git pull --rebase;
(test && git commit -am working) || git revert;
git push;
done;
  • This strategy ensures that all changes are done incrementally in small batches. No big diffs.
  • Fewer conflicts between developers on the team because they are constantly pulling each other's code.
  • Insane out-of-the-box idea that might actually work.

Obviously, give it a shot in a smaller toy project first before trying this in your 2 million line code base that powers the stock market. I know I am.

Full Post here, 3 mins read

The failure of Agile

Agile suggests embracing change, using an ‘inspect and adapt’ approach. This is possible only for experienced and skilled team members who have the mental models to handle the real world abstraction of these concepts in play.
Read more

The failure of Agile

  • Agile suggests embracing change, using an ‘inspect and adapt’ approach. This is possible only for experienced and skilled team members who have the mental models to handle the real world abstraction of these concepts in play.
  • For beginners, it is easier to follow simple, context-free rules. Agile methods have some concrete practices to start with and new teams latch on to those and get stuck there.
  • Andy Hunt, one of 17 founders/authors of the Agile Manifesto, along with Jared Richardson, proposed a solution to this a few years ago that combats these problems of agile.
  • It is the GROWS Method where GROWS stands for GRowing Real-World Oriented Working Systems. This aims for evidence-based inspection of real-world feedback.
  • A notable quote by Andy that explains his thinking about GROWS:
“Software is not designed and built; that’s far too a deterministic, linear model that doesn’t work here. Growing is a better metaphor because with growth comes change. Real-world oriented is a nod to the idea that we need to base all our decisions and direction on actual evidence: feedback from the real world, under actual conditions. Anything else is just some unfortunate combination of fantasy and wishful thinking.”

Full post here, 5 mins read

Integrating Security With Agile Development

Create an up to date threat model and data flow diagram. Focus on one security story in each development sprint.
Read more

Integrating Security With Agile Development

  • Create an up to date threat model and data flow diagram. Focus on one security story in each development sprint.
  • Teach your team basic threat modeling. Get them to think about it in each sprint cycle.
  • Integrate a static analysis tool into IDE & Dependency / Open source security checks into local build processes whenever possible.
  • Integrate both of these into a CI/CD pipeline, and break the build on issue thresholds.
  • Configure dynamic test tools into the CI/CD pipeline on deploys.

Full post here, 6 mins read