• Scaled agile or shrunken waterfall

    in

    As agile gained popularity, for example with the popularity of scrum framework, people started to realize that it is not that simple to apply agile frameworks in a corporate world. One of the biggest problem was, of course, what to do with all the project and program managers. That’s why god created scaled agile frameworks…

  • Software architecture – wait what?

    Architecture. An important, although confusing and vague, but still commonly used, term in software. architecture: The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. Every software has an architecture, whether it’s well thought or not, well defined…

  • Follow your own targets

    in

    Metrics are a good tool for data-driven decision making. Standardized metrics and metric sets, such as DORA, have become popular with tech-managers. Maybe the idea of the metrics has been spread with (the same) consultants in the field, or maybe the managers just like comparing their things to the things of others… Well-defined metrics enable…

  • The trouble with isolation

    A mock object is by definition not a real object. It implies that it’s possible that the expectations set in the mock object for a unit test do not correlate with the real object, and that means that the test may be making sure that the tested unit is malfunctioning. This may happen with the…

  • The expectation of mocks

    Mocks in unit testing are quite popular in at least some circles. Mocks are surely a powerful tool for unit testing, and they really enable having a great unit testing code coverage, but there’s a catch or a few with using them. Mocks may introduce a burden of maintenance if the mocks have bad expectations…

  • The stuntmen of unit testing – the test doubles

    Test doubles are fake implementations which are used to replace real implementation during testing, for example to isolate the tested entity from the rest of the system. This enables testing without the use of real databases, services, and other complex and fragile dependencies – and let’s one focus the testing to the entity one is…

  • Philosophy of metrics

    in

    Defining and measuring metrics is easy. Adding yet another metric just to add yet another metric happens subconsciously. It’s easy to focus on the values of the metrics and make decisions or to measure success only by using them. And it’s easy to forget why are they being measured in the first place – if…

  • It works as I wrote it

    Let’s face it, humans are bad in observing our own mistakes; we miswrite, misread, misunderstand, and miscommunicate often, without realizing it. As unit tests are often written by the same person who writes the code that is being tested, there is a chance that any mistakes in the code will be duplicated in the unit…

  • All the metrics

    in

    It’s not always trivial to determine the impact, or the lack of impact, of a change. However numbers don’t lie and we humans are used to be measuring everything except t-shirts with numbers. Measuring something in a numeric form before and after a change should indicate whether the change is good, bad, or ugly, right?…

  • The silver-unit-testing-bullet?

    First of all, there’s no doubt that unit testing can be a great form of testing. But it is not the silver bullet it is often promised. The lack of unit testing is not likely the reason for all of the issues in your project-gone-bad. As automated unit testing is, or should be, fast, efficient,…