After an end of something. Is good to evaluate how it went. I worked at Coolblue for a little bit over 3 years. Time flew there and on my last week I was thinking what were the things I am most proud of in the time I've been there.
I'm going to mention the first three that came to mind:
I broke production. It happened very soon at the beginning of my career and it triggered me. I really didn't like it. Curiosity led to found out that there were a lot of things that could be improved and that the reliability of a green tick at the end of my PRs didn't neccesarily gave me a sense of security that things were gonna end up just fine after I merge them.
In my domain I made a sheet with what we have covered and I noticed a huge gap of things that needed to be done. I created stories, organised a little bit the backlog and slowly but surely we started on them.
I thought it was gonna take max 4 months, as quite a big project it was. Silly me, 3 years later and acceptance testing became my thing. The thing I am always just taking care of in one way or another.
In these years I did quite some more than I expected to do. I helped in the transition from one tool to another, on making an inventory of features covered/impact to give an internal acceptance test training for new people in the company.
I have to admit something. I didn't like working with acceptance tests. I liked the feeling I had while knowing that the improvements of coverage and teaching people how to do it will avoid headaches and stressful moments.
Why did I continue working on something I didn't like? The subject of acceptance testing didn't seduced me. What seduced me was the value I felt I was adding to the company. Preventing something being broken in production for hours, the impact to the customers, the impact to the awesome people that had to be running to fix it and the moments a nasty bug takes you out of the zone because something is affecting someone out there.
I was helping others. I was helping myself. That was something I felt it was worth working for.
I thought working with acceptance testing was gonna be the hard. That was because I didn't start with Performance. Establishing a plan for acceptance test was easier in many ways than to work in performance. The plan was quite straightforward to do. With Performance I found that without a clear goal it was hard to justify working on it.
I had a clear goal in mind: I wanted to make Coolblue the fastest ecommerce company in the Netherlands.
Dreaming is not enough. To be able to fulfill that I would need to convince and move a lot of strings. Even a few strings that were not to my reach. Like with every taskforce/side project the first thing was to evaluate if there was an issue on the matter.
We all have a feeling that there were some performance issues but we didn't have clear metrics that could support that. Just putting everyone on the same page took months if not an entire year.
Everyone likes working on performance. At least, everyone mentioned they'd like to work on it but the task was so big and hard to prioritise that very few and small steps were done towards actually improving something after a year of working on it. (Not full-time though, just as a taskforce)
Unfortunately, the project to improve performance is on its initial stages and I am not gonna be part of its future evolution. I am very proud to have started it and I really hope Coolblue will become the fastest ecommerce in the country. Not only for the sake of being fast also because I know we can do so much more with so much less. A lot less.
It is inevitable that we'll have to compromise quality of code sometimes. It is well known that in the process of creating something we will have to make choices. If we are aware of the trade-offs of these choices we can later decide on if there are things we would like to improve or reconsider in the case something new arrives.
The decisions that were taken with certain context didn't apply anymore when that context evolves. In our industry I have the feeling it is so expected to deal with technical debt and struggled with this issue since the beginning of my career.
With finite time to include new requirements, there is also limited time for everything else. There is always something that requires attention from our side. It could be from implementing a new company policy, re-architecture an application, fixing some nasty recurring bug or just preparing for the inevitable near future.
The process of removing technical debt can be quite hard to understand for everyone and a lot more for non-technical colleagues that need your input to make the best decision.
I did my best to ensure we are always using our sprint time to always reduce some tech debt. I was not the primary advocate from my domain but I was helping as much as I could with it.
Until my very last day I was working with reducing some technical debt here and there. Reducing technical debt is as much a technical matter as a cultural trade.
My team was always incredible supportive of the initiatives I took on different fields and I am happy I had the opportunity to work on the different topics I believed in.
Hadn't I had the support from my team, I am sure Today I would be telling a different story. Initiatives stay just ideas if you are the only one that believe on things and you don't get the time to work on them.
To me, consensus was incredible important because I didn't want my actions to be done when I am not there anymore and I am really happy to say that I was incredible lucky to have worked with people that gave their time, energy and attention to understand what the heck was I trying to achieve.
If there is one thing I had tons of were opportunities. There were always tons of very important things to work on. Too many for a single person to do anything. Too many, even too big, for the whole group of people. It was just a matter of picking something and try your best. Sometimes people joined, sometimes people didn't.
There were opportunities and I took them. I'm glad I did. All of the things I mentioned here were "outside" of what someone wanted me to do. I found a few things that I wanted to do, I worked on them, I made it better (I tried) and now I am proud of them.
In the future, I don't see why this will change. Opportunities are always there and I know I will encounter a lot more of them.
Disclaimer: Everything that was written are just my thoughts and opinions.