ABAP Blog Posts
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only
VXLozano
Active Contributor
282 Views
4 Comments

Intro

This is my second article of the series "what now?" about how I'm changing the way I think (my) development must be. You can waste your time reading the first one.

It's again something about Dan North (you can find more information, and pretty sure better explained at his site dannorth.net ).

What is BSSN?

BSSN stands for "Best Simpe System for Now", and the summarizing of the whole thing (IMO) becomes "do not try that hard if you do not really must".

It's about build the best easier thing with the minimum effort. But it's not abouto do the minimal effort, it's "keep trying until it's good enough, and then stop and refactor if you must".

It's about balance. It's not about overthinking, and it's not about under-doing.

Years ago, when I fell in love with the Agile Manifesto and begun to read about development (I've never did that until then, and I begun when I was 20 years into the development business) I found somewhere something called JBGE documentation.
JBGE, for starters, means what I want for everything in my life now: Just Barely Good Enough.

The concept exploded in my brain, and all my soul(less being) resonated. I saw the Light, and the light (documentation) was good (enough).

Few years later, I discovered a development "methodology" that seems to fit in the JBGE phylosophy (I'm pretty sure I wrote it wrong).

Best, Simple, System, for Now

Careful you must be but, Yoda said. It's not "Best", it's not "Simple", it's not a "System" and it's not "for Now". It's all those four things at once.

And it's not a religion: if you are really sure that something else will happen in the near future, you are allowed to overthing and over-work a bit. Just a bit. Just enough.

The basic is: you have a necessity, and you must build a system (from a single program to a set of objects) that must be the simplest one to fullfill that necessity now.

I kept the "best" out of it because, well, it's supposed we always do our best, don't we? I do.

But trying to do my best, trying to fulfill the SOLID principles, the Clean Sacred Rules and all those things, I was (am still) used to overthing and overstep myself. I've created a whole ecosystem of classes, with it's API, all those interfaces and thingies just for a gateway service, with rules that will be used only in that gateway. I could did the same just by a couple of methods in the _DCP (or whatever) class, and some new ones in my business classes.

But things change...

Yes, they do. New requirements will grow from the Eternal Pool of User Needs, or from the I Forgot To Tell You This books. Or you will need that "I will use it just here" thing in another development.

Then, and just then, you will extract that simpler way into a class or whatever new item you'll put that piece of logic, code or whatever.

But why must I build an entire ecosystem of classes and interfaces, with their factory, api, repository and business rules just for check if that table is yellow?

The answer is "I don't". And from now, I will not. I will just put a method in my program's local class that will check if the table is yellow. And if some day in the future I need to know which color is, I will extract the color retrieval from the local class into a business one. If I'll be creative enough, maybe I'll create another method like "check_color_of" I will pass the color to be checked. No clue. I will worry that day, if it arrives. But for Now, I will not.

And will it be Clean?

Why not? Define Clean. Not by its ruleset, but by its goal. If the main goal of Clean Code is to create Maintenable Code, then yes, BSSN is clean. You create code that is simple and easy to maintain (if you code in a clean way), so it's clean. If the CC goal is to be cool, nerdy and flex your brain muscle, then not, BSSN is not Clean. But I don't build tools to show myself, I do it because I enjoy the process, and I'm happy when things work as intended. So, BSSN for me Now is Clean.

What now?

Now I must re-train my brain to stop thinking about the future and to be centered in the present. That is a gift, and because that, it's called "present" someone said.

4 Comments
Labels in this area