Our brand new blogpost is about the well-known Kaizen methodology and what we use in our business!
When I was interviewing for this job at Aliz, I was asked if I had any questions. I went with: “So, do you guys do CI/CD?” All the other companies I interviewed with had replied with an enthusiastic yes, sure, absolutely; they had the best CI/CD ever. At Aliz, my interviewers laughed, somewhat self-consciously: “Well, we have a Jenkins,” Gábor replied. “It works, yeah, but it’s got some problems. It’s not in very good shape.” I asked some more questions, and invariably they laughed and told me how the process or tool I’d asked about was there, sure, but it had some problems they’d be quite eager to fix, but hadn’t gotten around to it yet.
This was charming. The honesty of it, maybe. The professionalism of admitting that things weren’t perfect appealed to me. I signed with Aliz.
I’m Hungarian. Our traditional way of handling problems, difficulties, and suboptimal processes is that we sit down, complain, and do nothing about them. In fairness, it’s not just the Hungarian way. It’s pretty much a human trait that we tend to just live with whatever’s bad, because that’s the easiest thing to do: to change nothing and complain. Someone once told me there are three ways you can go about a situation you hate: accept it, step out of it, or change it. But anything is better than sitting around complaining. Still, sitting around complaining is the easiest option, isn’t it?
At the workplace, organizational inertia works against the desire for change. Even if we have a process that clearly doesn’t work anymore, we continue to practice it because it’s always been done that way. And we sit around and complain. Blame it on the management or something. And that’s toxic, man! I also believed that changing things for the better would take a lot of guts and determination. Heroism even.
Recently, I’ve realized it doesn’t have to be like that.
I signed with Aliz, and I met the ailing Jenkins. It did have problems. Instances would get stuck while building the project; you had to manually kill the instance and restart the build. I accepted it as it was. Occasionally I complained. But I did nothing about it. It’s always been like this.
Then one day someone with the expertise got around to fixing it. The team was happy, sure, but there was no great celebration as I’d have expected.
Slowly but surely I realized that fixing things and making things better is at the core of our team’s culture.
We’re pretty much doing kaizen, except it’s so deeply ingrained by now that we aren’t even aware of it. Kaizen? Well, look it up. I can’t explain it to you; I can only tell you what we’re doing.
Okay, maybe it’s not kaizen, not really. Maybe it’s just that we’re actually agile, in the classical sense. But what’s in a name? We’re striving to continuously improve, and we respond to change rather well. That’s all there is to it.
As you can see, this way of thinking appears on many levels: in everyday coding and in architectural and organizational thinking as well. And I’m convinced that the AODocs project is as successful as it is because of this mindset. I mean, our team is working on AODocs, a huge system with a ten-year-old codebase, but that codebase doesn’t look or feel ten years old, because we all keep modernizing and renewing it, innovating constantly.
We’re also pretty good at organically creating a unified coding style by consensus. We have a team that pretty much drives itself, even if it loses a central figure to vacation or sickness. It all sort of works by itself, and it’s magnificent to see that.
That’s not to say we’re the perfect team. We’re still trying to work out how to effectively mentor our juniors.We still don’t have the planning phase for issues down: we often have to rework the code after code review, and that’s hardly optimal. I’m also concerned about our “not-invented-here” tendencies. And our release process could use some work.
CI/CD? Well… We have a Jenkins, of course. And it’s in much better shape than it was.