Sometimes you know that you like or dislike something, but you are not sure exactly why. Sometimes you find yourself in a unpleasant situation, but it is hard for you to pinpoint why you find it unpleasant.
Well, I just had an epiphany, and I think I finally understand why I don’t feel comfortable working with storyboards, for anything bigger than a two screens app.
Storyboards do not let me slice the problem.
Consciously, or most likely unconsciously, I tend to slice problems, and rearrange those slices in a way that suits me, or suits the context I am working on.
Each of those slices can then be sliced down even further, so those new slices can be rearranged again.
That helps me, first, make the problem solvable. Which, immediately, increases my productivity: when I am facing a problem that happens to be too big, or just seems to be too big, I tend to procrastinate a lot.
But by slicing problems as much as possible, trying to comply with the single responsibility principle, abstractions start popping up, screaming at me.
Because even though I would love to say that I can design a solution to a problem upfront, truth is I have embraced the fact, long time ago, that I am better at noticing when the problem I am trying to solve is suggesting me a solution, than at trying to make the problem fit my pre-conceived solution to it.
Also, I find easier to make small slices work faster. It might be the time spent doing TDD, it might be that it’s just the way my brain works, but the shorter the feedback cycles, the faster I can move forward. It is like I physically feel impediments removing themselves, getting out of my way. Taking a storyboard of a certain complexity to a stage where I can make it work takes so long!
So I guess we are back to a recurrent theme of this blog: the single responsibility principle.
A storyboard can be a time saver, a great solution to build a kick prototype or a product with a well defined, clean and simple navigation flow.
But, in my opinion, more often than not, it is just a big chunk of muddy of responsibilities than I’m better off breaking down.