Thứ Ba, 31 tháng 1, 2023

It’s Time For Software Engineering To Grow Up

 The recent market correction has been a long time coming. For over a decade, low interest rates and easy access to capital fueled a period of unprincipled growth in Silicon Valley. “Cash-flow positive” had become a distant memory of a bygone era. But as Edward Abbey put it, “Growth for the sake of growth is the ideology of the cancer cell.” He was referring to the erosion of wilderness at the hands of uncontrolled urban expansion in his beloved Arizona, but the analogy applies to companies as well.

Software engineering organizations in particular experienced rapid growth during this period, disproportionate to other functions. Headcount has always been the primary lever for engineering leaders to substantially increase output. The belief being that more engineers will deliver more software, faster. Hiring is the solution for everything. Need more features? Hire more engineers. Engineers are complaining? Hire more infrastructure people. Things are moving slowly? Hire more engineering managers, product managers, project managers and recruiters to fill these positions. It’s time to grow up!

Adding more headcount to an organization is an expensive Band-Aid fix that substantially increases the complexity of the system and often slows it down. The Mythical Man-Month talks about this phenomenon. More engineers mean more teams, more dependencies, more interviewing and onboarding, more processes, more analysis-paralysis, more tech debt, more feature creep, and most debilitatingly, less focus on the truly important. Austen Allred, CEO of the Bloom Institute of Technology, calls it the “death spiral of bullshit.”

On the flip side, headcount has also been the primary lever for engineering leaders when it comes time to cut costs, and we are witnessing the fallout now.

So why have engineering leaders only had such a blunt tool at their disposal? The answer is the lack of visibility into engineering operations. Ask sales or marketing leaders about their metrics—funnel conversion rates, channel efficiency, sales cycles, forecasted revenues. The answers would be ready. But if you were to ask engineering leaders for a breakdown of monthly spend, forecasts for the next month or the impact in dollars of an unresolved incident, the answers would require weeks of effort, gathering data from different sources, digging through logs, writing ad hoc scripts and more. The irony is that for an organization teeming with analytical minds, decisions rely on incomplete data, and intuition is a frequent substitute.

It’s not the fault of engineering leaders. They’ve never been held accountable. Other functions don’t know enough to challenge them. They could go through an entire hour of content in a board meeting with no questions asked. But just because they haven’t been held accountable, doesn’t mean they shouldn’t do their jobs better.

So why is visibility into software engineering operations poor? There are two main reasons. First, it’s just plain hard. Engineering data sources are incredibly fragmented and siloed. Organizations use dozens of systems to manage their engineering processes—from source control to task and incident management to continuous integration/delivery, cloud operations, budgeting, HR and more. These systems don’t talk to each other or to any central system, yet answers require data from across these sources.

The second reason is fear. Fear of alienating a volatile and rare resource—the software engineer. Software engineering is a creative craft. Some operational metrics may be “big brotherly” and would stifle the creativity that leads to innovation.

But the result of tip-toeing around is that engineering organizations today are flying blind. Engineering leaders have only one way to grow: hire people. They also only have one way to cut costs: fire people. They have bloated teams—many of which are overwhelmed with dependencies or tech debt—and not enough visibility to provide timely support. Constant reorgs are a typical symptom of this dysfunction. It’s time to grow up.

In the interests of keeping the peace, engineering leaders have forgotten that while organizations are made of people, they should function like well-oiled machines. Especially now. Sticking your head in the sand like an ostrich is a temporary fix to avoid “upsetting” engineers with “metrics,” but it doesn’t solve for what the business actually needs, what a team’s pain points are and how to best help them. Constant reorgs and layoffs do not make engineers happy.

So where do we go from here? The good news is that while visibility into engineering operations is hard due to the fragmentation and diversity of data sources, software teams don’t need to build the necessary instrumentation themselves anymore. There are platforms and tooling available to provide this much-needed visibility out of the box. Simultaneously, benchmarks and frameworks such as DORA and SPACE are emerging and gaining traction, enabling teams to ascertain how they’re doing and the room for improvement.

So now, envision a world where engineering organizations have all their operational data at their fingertips. The velocity and quality of software delivery could actually be measured. Bottlenecks in processes could be uncovered and continuously improved on. Leaders would know how much time and resources are spent on major initiatives and whether these align with overall business priorities. Teams could be supported with the resources they need when they need them. More generally, growth could be methodical, driven by need and informed by data (e.g., what areas actually need investment? What areas would really move the needle?). Course correction could be timely and incremental, avoiding big bang reorgs and layoffs. Focus on velocity and quality would usher in practices and technical capabilities that would allow organizations to do a lot more with a lot less.

The ongoing technology revolution is changing our world more rapidly than ever before. It has given us the internet, smartphones and artificial intelligence, and it will give us, in the near future, self-driving cars, private space exploration and more. The technology industry employs some of the brightest minds of our generation, and yet we are nowhere close to realizing their full potential because of the immaturity of our engineering practices. Engineering leaders are winging it and rely too much on instinct. It is time to grow up.

Looking to hire skilled software developers? Contact TP&P Technology - Leading Software Outsourcing Company in Vietnam Today

Article resource:https://www.forbes.com/sites/forbestechcouncil/2022/08/04/its-time-for-software-engineering-to-grow-up/?sh=7adace807c4e

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.

Digital Transformation In Supply Chain Management

Digital transformation is a term that is thrown around a lot, and people have different ways to interpret what it means. Essentially, digita...