In one of my first roles I started working as a production support business analyst for a brand new suite of applications that sat between sales channel front office users and back office operations users. The applications went live for a merger and obviously total chaos ensued, so most of my early application life cycle experience was very rushed/put out fires/do what needs to be done.
But eventually the application settled into maintenance mode and we started to add brand new capabilities to the suite. I had a good time in this new business systems consultant role because I learned a lot about the application’s highs and lows, but also about the business needs for the application. I had a lot of good experience when it came to what worked and what traditionally didn’t work and I liked having that perspective on these new projects.
Like I’ve mentioned before, applications start with requirements gathering and go on to more and more technical design assets. This was back in 2006 or so and Agile or Iterative development hadn’t even been brought to the table at this employer; so we were very much waterfall. We engaged IT early to help make sure we didn’t commit to something that was totally unobtainable, but for the most part the business drove these discussions (as they should).
But when you take stakeholders with years and years of experience using legacy processes or applications and try to talk about a new way of doing things, you might run into a lot of calls and meetings that get buried in the nitty-gritty details of some very specific topics. Like “how big should this field be” or “should this section come first or second” or the horrible “this is how it used to work/this is how it’s always worked”.
My technical side would always love to get into the weeds and start problem solving code right then and there: “well if we put these values in a look-up table and expose an admin utility we can manage this logic without additional deployments” – things like that.
But after awhile I learned to sit back and let the experienced voices talk and just listen. And I’ve got to give a lot of credit to my manager because he knew that if I wasn’t speaking out about the problem or topic right then and there, I was thinking ahead. And he always took a second to pause and call me out even though he already knew what I was going to ask…”What are we trying to accomplish here?“
I found myself on so many calls buried in the weeds and guts of details of problems that I always tried to bring at least myself and hopefully the larger team back up a hundred feet or higher and figure out if what we were arguing about really meant that much to the endgame. It was about finding some perspective.
This was in no way a workaround to persistent stakeholders or stubborn management. It was just a way to gut check the meeting and make sure everyone was on the same page. Sometimes it work; sometimes the topic was pushed aside for more important concepts. Other times it didn’t work at all. Like I said, experience talks and even though I didn’t see the higher purpose doesn’t mean it didn’t exist. But sometimes just asking the question helped me and probably a few others reestablish themselves.
On the technical side now I can get buried in code and look for immediate solutions to problems from QA or UAT. But I always try to take a step back and make sure that we’re working with a defect or change request that will make a difference in the long run. This has been especially important in a large organization: change can come very, very slowly. So the decisions we make and the applications we build now need to fulfill their goals because who knows when we’ll get a chance to address a missed need down the line.