The BAF method at OCTO

The BAF (“slap in the face” in French) is a self-improvement method widely used at OCTO Technology.

Whenever a consultant feels like he lacks perfection in any way, he may present his peers what he did, how he did it and why he did it this way. Then coworkers (associates, juniors, seniors and trainees) discuss the consultant’s work and evaluate it. Then they use the Perfection Game method to assess it on a scale from 1 to 10 (1=worthless, 10=perfect) while giving useful tips on how to improve his work quality. The exercise is not only about spotting errors, it can also be about how to formulate an idea, find a way to engage a crowd or how to better manage a team. The main goal is to share ideas and knowledge thus improving everyone through communication.

Like a code review, it can be harsh to be subjected to criticism or honest feedback. Everyone should understand that the main objective is to spread knowledge without hard feelings or frustration.

BAFs can be used for improving virtually everything (technology choices, interviewing methods, communication, programming dilemmas, roadmap planning, etc.) and OCTO people thrive on improving themselves. OCTO motto being  “There is a better way”, that could explain why it is so popular amongst us.

Two examples:

When writing a blog article:

-Hi felllow coworker, I just wrote a blog article about BAFs, do you mind BAFing it?   

-I give you a score of 8 out of 10. I found your written English somewhat OK, the subject is interesting, the recursion is kinda fun and you gave examples. You would have scored 10 if you:

  • double-checked typos, for example “felllow” line 17.
  • talked more about how companies can use these methods.

When doing a consulting mission:

As a consulting company, clients often come to us to evaluate their application architectures, methodologies or technical choices. We usually address this through a mission but recently one of our clients specifically asked for a BAF of their .Net application architecture

Three OCTO senior architects invited our client’s developers and architects for a day, so that they could present us their company, objectives and architectural choices. Then everyone:

  • discussed the reasoning behind the choices made until now (“You may or may not have made the right choice, but why did you do it?”)
  • talked about alternative solutions (“Did you even consider this framework? If yes why did you refuse to use it?”)
  • drawn several architectural diagrams and discussed their pros and cons
  • read examples of code, considered their maintainability

After a full day of work, the ROTI ¹ revealed an overall score of 5 without rounding! This great recognition was then confirmed by feedback received soon after by email: “We were impressed with your performance. The technical expertise, pedagogy and methodology were perfect.”

 

These are two examples of BAFs that you can use everyday in your company or project team and feel free to expand it to whatever fields you need to improve.

 

¹: ROTI, Return On Time Invested: every participants in the event evaluates on a scale from 1 to 5 the value of the event that brought them in regards to time spent. 1=the event was a total waste of time, 5=couldn’t have spent my time better

Measuring Web Application Performance – 1/3

During a typical lunch talk, a colleague said that we could easily list the most popular stereotypes about a nation just by asking  Google:

whyarefrench2

After some laughs I started wondering about public opinion concerns on the main web sites of the internet. Adapting a little the previous question I got some interesting answers:

 whyisgmail

I was surprised to see that the results indicated that most people were asking about the same topic:  web sites performance

Read more

Static Analysis Tooling for C# and .NET, NDepend in Depth

As a software architect I often have to analyze many applications code in order to perform a quality check.

Is the code looking good? What about its complexity and test coverage? Can I consider the code as maintainable with a good scalability?

Of course I won’t spend my whole time reading each source file, it would be too long and for sure useless. Hopefully a set of rules and tools can help if you are in this same situation.

Read more

Impact mapping: business success in software development

We had a chance to meet the author of Impact Mapping Gojko Adzic at OCTO Technology. After the interview and Product Owner Survival Camp workshop attendance in London, where Gojko explained us the advantages of this new method, we would like to share with you some ideas about it.

What is Impact Mapping?

Impact mapping is a visual strategic planning technique that helps teams to align their activities with overall business objectives and make a better decision.

Blog 1

Impact Mapping prevents organisations from getting lost while building products and delivering projects by clearly communicating assumptions.

Read more

SQLFire from the trenches

In a first article, I have explained why I think that NewSQL is a disruptive storage technology designed for traditional Information Systems. NewSQL relies on a scalable architecture and is designed to run on commodity hardware. In order to get actual figures for SQLFire, we have built a Proof of Concept for stress test purposes. The goal of this article is to give you some feedback on these stress tests in the chosen scenario.

Read more

The new Web application architectures and their impacts for enterprises – Part 2

In the first part of this article, we talked about new front-end architectures, which consist of JavaScript Web applications using APIs provided by a back-end server: The new Web application architectures and their impacts for enterprises – Part 1.

We saw that they recently emerged thanks to the increasing performance of browsers and the rise of industrialization tools for JavaScript development.

In this second part, we will focus on:
  • reasons why you should adopt these new architectures;
  • opportunities they provide;
  • impacts for enterprises.

Read more

The new Web application architectures and their impacts for enterprises – Part 1

Web applications evolve. From static HTML sites first to AJAX applications more recently, through multiple dynamic technologies (PHP, ASP, Java, Ruby on Rails…), Web application architectures and their dedicated tools regularly experience major advancements and breakthroughs.

For two years, we have seen a new wave of technologies coming, transforming the landscape of Web applications. Unlike RIA or AJAX before, there is no well defined name yet for this new trend. We will call it “MV* client-side architectures”.

Here is the main principle: the server no longer manages the whole page but only sends raw data to the client; all the pages generation and user interactions management is done on the client side, that is to say in the browser.

In this post, we will go into details of this architecture and explain why it is emerging. In a second post, we will see why it is relevant to embrace it today, opportunities they offer and what are the likely impacts for enterprises.

Read more

Let’s dig into SQLFire

A year ago, I promised in a previous (French) article to test the ability to migrate a standard Hibernate/SGBRD application to a NewSQL technology. It is now time to give you the results of our investigation. Don’t worry I will first sum up this previous article and explain why I strongly believe that NewSQL is an important subject. Then I will present the hypothesis of our POC. And finally I will give you the results of this POC, our conclusions about what we will do the same way and what we will do differently on a real project.
Read more