Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Spent a lot of time designing a proper HTTP (dare I even say RESTful) API for our - what is until now a closed system, using a little-known/badly-supported message-over-websocket protocol to do RPC-style communications - supposedly enterprise-grade product.
I make the API spec go through several rounds of review with the rest of the dev team and customers/partners alike. After a few iterations, everybody agrees that the spec will meet the necessary requirements.
I start implementing according to spec. Because this is the first time we're actually building proper HTTP handling into the product, but we of course have to make it work at least somewhat with the RPC-style codebase, it's mostly foundational work. But still, I manage to get some initial endpoints fully implemented and working as per the spec we agreed. The first PR is created, reviews are positive, the direction is clear and what's there already works.
At this point in time, I leave on my honeymoon for two weeks. Naturally, I assume that the remaining endpoints will be completed following the outlines/example of the endpoints which I built. When I come back, the team mentions that the implementation is completed and I believe all is well.
The feature is deployed selectively to some alpha customers to start validation testing before the big rollout. It's been like that for a good month, until a few days ago when I get a question related to a PoC integration which they can't seem to get to work.
I start investigating and notice that the API hasn't been implemented according to the previously agreed upon spec at all. Not only did the team manage to implement the missing functionality in strange and some even broken ways, they also managed to refactor my previously working endpoints into being non-compliant.
Now, I'm a flexible guy. It's not because something isn't done exactly as I've imagined it that it's automatically bad. However, I know from experience that designing a good/clear/future-proof API is a tricky exercise. I've put a lot of time and effort into deliberate design decisions that made up the spec that we all reviewed repeatedly and agreed upon. The current implementation might also be fine, but I now have to go over each endpoint again and reason about whether the implementation still fulfills the requirements (both soft and hard) that we set out to meet.
I'm met with resistance, pushback and disbelief from product management and dev co-workers alike when I raise the concern that the API might actually not be production-ready (while I'm frantically rewriting my integration tests and figuring out how the actual implementation works in comparison to what was spec'ed).
Oh, and did I mention that product management wants to release this by end-of-week?!7
Started a new job at a big firm (previously came from a startup). Both do "scrum". Still have my mind blown because at the new job, we have people join the standup of which NOBODY in the team knows what their role is on the product...
Does this happen often in big corporates?6
I love my girlfriend, but sometimes she doesn't get dev-work.
Last night, we had a fight over me sticking post-its to the wall in our home office. I find them helpful for keeping an overview of what I'm working on. She finds them ugly and decided to tear them all down without conferring with me. I got pissed. I almost always give in to her quirks and wants in every other aspect of how we live, so I feel like my desk space should at least be under my control. In my anger, I ordered her out of the room. She then proceeded to be sulking/angry with me up till and including this morning "because I overreacted".
Was I wrong? What should I have done differently?25
Bloody softlayer sending notifications about expected downtime on "IMS services" (which could mean any of a great number of things), without specifying what it is, what it does or to what services or regions it is related...
Grmbl, what use is there to get a notification about unexpected maintenance if you can't even make out if you'll be affected or not!
Management proposed to work with external freelancers, to "pick up speed so we can release these new designs sooner". We agreed, but of course we (the home team) can't have time to review their work because we need to develop other new features and bugfixes and such...
Weeks later, turns out that their changes are largely incompatible with the work we have been doing on the main branch. We are now rebasing/rewriting huge chunks of their work, probably taking as much time as it would have cost us to develop the design ourselves in the first place.4
Generally have great experience with our management.
I work at a scale-up, so I've had some run-ins with the founder shifting priorities too often in the early days, but he's got enough notion of tech to understand when we're telling about the why(not)s of what we can and can't do
A while back we got a product owner/manager/scrum master and he's great too. I've had times when he put pressure on making deadlines when it was really not helping, but overall great guy with a lot of empathy and respect for his team.
But recently I've been starting to feel like we (the dev team) are getting more and more excluded from the decision-making process of the features & designs that we're going to be working on. We used to have a say in what we felt like was a good idea for a feature or a design, but it feels to me like we don't get asked that question any more of late...
Not sure if I'm imagining it, or overreacting to a logical (possibly positive?) evolution in our development workflow...
This morning my girlfriend told me about the network at her school constantly disconnecting, to which I jokingly replied "So, it doesn't deserve candy". She came back with "But it's already asking for so many cookies"...