Thursday, March 29, 2012

Controlled detalisation

Software development is process of detalisation. Customers are talking mostly about "WHAT" and uses very high level of abstraction.

Programming is all about decreasing level of abstraction and fixing a lot of details.

There is very dangerous area of transition between "WHAT" and "HOW" domains. Or between Problem and Solution.

BDD is tool for entrance trough this dangerous area.

Craftmanship is all about Controlled Coding Reaction. It includes simplicity principles and constant refactorings.

Non controlled coding reaction leads to explosion of software development project.

If we have weak process of collection of BDD scenarios, or we're writing code for future, or we don't use TDD (primary toolset for controlled coding) - we're moving to space of dead projects.

Tuesday, March 27, 2012

Craftsmanship becomes a methodology

While Scrum and Kanban are more industry agnostic, XP was the sole software development methodology so far.

It's looks like we can see appearing of new software dev methodology - craftsmanship. It is fusion of TDD/BDD from one side and set of code heuristics for code reviews and refactoring from another side.

This methodology devides development process onto 2 areas - business and coding. And natural boundary between them are tests.

Acceptance tests supports business domain and unit tests or specs supports coding domain binding them together.

This methodology has ideology - details matter.

This methodology is very close to BDD but BDD has more local application for internal protocols inside acceptance tests and unit tests.

Craftmanship it's all about honesty thinking and talking about details and their simpliest implementation. It's about permanent code refactoring and not thinking about future but about better solution for today.