“You were in silence for almost two years, and coming back
with this shit?” You may be asking this question, but reality is – I need to
start from somewhere again. And bunch of ideas come up and died in that period,
but some left, and one of them is this one.
So back to contraband, and not just any contraband, but to “release
contraband”. What the f… this shit is? In shot – this is code or functionality
which is released and client (depending on situation - manager, pm, etc.) does not
know about it. And I can talk about this because I don’t need to deal with it
daily.
I’m not sure if I’m the first one, who come up with this
term. Or it is already used, but 5min google search didn’t show much results,
except sold out painting, project in GitHub and some movie from 2012 with Mark
Wahlberg (had to double check surname, why to have ‘h’ in it, which is not pronounced?).
So conclusion it is – I’m the first one.
With this moved from my shoulders, back to real things.
Small intro to situation – with constant push from client and management, continues
failing and no proper plans, sometimes we had to hide problems without anyone except
dev team knowing about it. So we started to put some stuff to application which
may be beneficial to everyone, but informing about this problem would cost more
problems, then just solving in without everyone knowing about it.
On the first instances of this, I was extremely against it. ““Extremely”,
wtf that means?” Was pushing back as any self-critical QA should do. Tried to
convince team not to do it, understood possibilities of us failing and showing
even more problems then we had at the time. But, (well, I should put it more
like) BUT after tireless work, constant regression testing, and not willing to
hear from manager, started agree to team tactic to solve some problems. Hell, I
was even embracing it.
So what we did – had a list of problems, sometimes on the board,
sometimes in heads of team members. Tried to use same methods as fixing normally
registered stuff, with code reviews, testing and regression coverage, but without
mentioning anything in tracible tools, like Jira. And merges and code reviews,
as much as I know, was covered with existing functionality which is introduced/fixed
on same sprint (if you can call it that shit what we were working in, mhm, sprints
my ass).
Now I am really happy that I don’t need to do this kind of
stuff again. Not sure if company learned something from that, I think not, I
hope it did. But if management didn’t even knew about it, team at least have way
how to deal shit storms.
Would I do it again? Yes.
Was it good approach? Yes.
And both questions have big butts (pun intended).
I would do it, if would not see any other reason how to
solve situation like I was in. If there is other more sophisticated and mature strategies
(and definitely there is – such as proper communication without rising voice in
meetings, You two motherfu…s, I still cannot believe You had balls to do it, well
at least one was fired), certainly would use those. But having management who
is only want to be good to client, without overseeing employees, it is kind a clear
who it ends.
So removing some stuff from my shoulders and from my heart –
I’m happy that I was able to participate in such interesting situations which
teaches a lot, for example – how properly do contraband in development. This is
like trying to smack nail to wall with pliers, heck, not with pliers, maybe more
like with shoe which does not even had steel toe, and you had it on Your head.
So it teaches something.