Someone tell my boss this, they don’t understand agile. They think we can “start the process” of developing a solution before we’ve understood a single thing about what the customer needs.
And it’s not that we don’t have 100% of the requirements either. It’s basically a we don’t talk to the customer or perform market research to know where we should take the product, so I’m going to make up features at an absurdly abstract level and no you don’t need to meet to talk about it, just start working. “The requirements will come later”, they say. From whom exactly? 🤔
I feel this pain. My last assignment we went through all the process of grooming and story pointing, but the documentation was voluminous and we were all expected to be 100% conversant in each story. Then a story would take hours to groom and the testers weren’t exactly sure how to test it, so the developers would have to basically write the end-to-end test cases along with detailed explanations of what could and couldn’t be tested (arbitrary xml format, so some things you had to change independently to test, while other things would never be changed independently in prod so they weren’t valid to test. Also, sometimes the correct thing to do would be determined by the database schema (is nullable?) which would lead to vastly different behaviors.
And lastly, we had to commit to delivering these features on time and to let everyone know ASAP if a timeline was under threat. Well, sometimes I’d tell them the timeline was under threat before the sprint was even started. That pissed them off something fierce because then it made us look incompetent to the customer - well… if the truth hurts, fix something in leadership. Also we were expected to do “whatever it takes” to deliver stories on time. Whatever it takes means skipping the grooming stories and reading the documentation for the next feature because I have to get this feature out the door.
I’ve never worked in the game development industry, but stories like this are what has kept me out of it. “Crunch time” that lasted months? Fuck that. I’m fifty years old with 25 years experience. I have kids at home. I work my ass off for about 9 hours a day and every once in a while a little more, but I’m not about that fucking lifestyle over shitty business software to make a shitty business more shitty money.
So needless to say I’m between jobs at the moment… I’m so over terrible leadership.
I can sympathize with a lot of the struggles you’ve endured. I deal with a lot of the same things and I’ve started to look elsewhere because for a company of 15, this place is run like a train wreck.
Just got off my stand up meeting too, we have to cancel todays grooming session because the project manager is on vacation. How will we survive without them repeating buzzwords and nodding like they understand what we’re talking about??? No shared responsibility for this team. It’s back to the waterfall method; and my boss likes throwing rocks off of the cliff. Every man for themself!
okay, I’ve finished your software, it meets your zero requirements!
“Add support for another vendor”
“Okay I understood what you wanted perfectly without any context, I’ve also compiled, pushed, and upgraded your customers”
Some people think it will really be that easy. Maybe 50 years from now, but not with these generative models lmao.
“We shall make solutions to problems people don’t even know they have!”
“What people?”
“All people! Including us!”
THIS
Exactly. We’re not inventing an iPhone or anything. Extremely niche software that is losing market space every month while the PM’s sit around and prioritize the wrong things, there’s no strategy.
I’ll do you one better. The hardest part of making crap people like is the damn people. I have been a product manager for a decade and I can confidently say if I deliver exactly what the customer asks for I would be an utter failure. Requirements and software that fulfill what a customer says they want will ultimately lead to them asking for something they previously didn’t realize because it actually turns out they have no idea what they want, have an agenda, or the conditions have shifted from under you and what they said no longer holds water.
I could go on a tirade about this but my two cents is you gotta listen to what everyone says, but assume they are a human at the end of the day. It’s too damn easy for me to suck up dev time with what people want. Hell, just one word can keep a dev team busy for a long time. Internationalization! Boo!
I also need to build an environment where the dev team doesn’t despise the business due to a history of constantly shifting goalposts, borderline abusive metrics, and expectations that just create a battered development team. For some reason hiring a PM aligns with an org hitting the point where the original dev team has lost critical members because of terrible burnout and a culture of blaming people and not process. Takes a lot of therapeutic communication to remedy that.
TLDR; People. People are the reason all things are difficult.
I’m almost 40 and very slowly educating myself toward a CS degree outside of work. I feel like I’m so far behind you guys that my only way into the tech industry with decent compensation (>100k) to match my current position will be through my management history, soft skills, and general understanding of people. My current position is very much a diplomat between the people getting the work done and the the people who want it done (then helping to get it done). Your post is very relatable even though I’m in a different industry. It gives me a little hope that some of my skills are transferrable even without a paper on the wall.
As you age, soft skills become way more important IMO. It’s almost impossible to keep up with the changing technology landscape, and while you could theoretically become an expert in some tech that never goes away (hello Cobol), eventually it will become obsolete and you’re left with no marketable skills.
And while some people are lifelong learners (I am), learning new programming languages over and over again gets old at some point. So transitioning into more of a people’s role (like management) it’s a good move when you get older.
And if AI keeps getting better at coding, some programming jobs could be in danger of automation, so it’s also a safety net for that scenario.
But coding seems quite literally like modeling those requirements.
Yes. But you have to know the requirements before you can pour them in code. You don’t start coding and are granted a vision by the god of logic about where your journey will lead you.
you don’t start coding and are granted a vision by the god of logic about where your journey will lead you.
What is Agile for $200?
From the article:
There are times when I’m writing software just for myself where I don’t realize some of the difficulties and challenges until I actually start writing code.
I get what you’re saying but regardless if you have them upfront or along the way coding is modeling those requirements as we best imagine or understand them…even accidentally when following practices learned from others we may not even realize what requirements our modeling has solved.
Sure, sometimes you find requirements that you didn’t think of beforehand.
But what is programming at the core? I’d summarize it like this: “Explaining how to solve a complex problem to a very fast idiot.” And the thing C-Suits like to forget is that this explanation is given in a specialised language that, at least ideally, leaves no room for interpretation. Because ultimately the computer doesn’t understand Python, Rust, C or even assembly. It understand opcodes given in binary. Assembly may be the closest human-readable approximation, but it still has to be translated for the computer to understand it.
So what happens when you “replace” programmers with neural networks? You replace a well-defined, precise language to use for your explanation (because you still have to explain to the fast idiot what you want it to do) with English or whatever natural language you train your network on. A language littered with ambiguities and vague syntax.
Were it a tool to drive nails into wood you would’ve replaced a nail gun with a particularly lumpy rock.I don’t see neural networks effectively replacing programmers any time soon.
it’s the fucking humans