I’d like to share a simple and short case study about pragmatic approach to delivering new features to existing, very big software product. Let’s start with some background. There is an existing product, working nicely on production. We want to extend it with new features, fix bugs and experiment in A/B environment. This sounds very typical and I have already been working in such projects more that dozen times. Even though it is so typical and ever-present, I would say that I’ve rarely seen it working well.
Joy or Pain of Constant Cooperation? The biggest lie of Computer Science studies is the premise that we will work solely with computers. Dealing only with tough engineering problems, we will work only with predictable and logical silicone matter. That is an engineering utopia. If you work long enough in that business, you know that it is not going to happen. IT is immensely teamwork oriented. People-stuff will surface everywhere, and that is good.
Deployment is just a technical detail, not important for a business. Seriously? One may say business guys don’t think about deployments. I would say it is your role - as a dev - to make them stop thinking about it. If you doubt, let’s consider the following aspects. Doesn’t matter how lovely your application is. How many buzzwords you can use to describe it. It’s all about earning money.