MongoDB’s Broker Love vs. Earnings Reality: A Tale of Two Signals – AInvest

MMS Founder
MMS RSS

Posted on mongodb google news. Visit mongodb google news

MongoDB (MDB) has long been the poster child of the cloud software boom, with its Atlas database-as-a-service platform powering everything from e-commerce to AI-driven analytics. Yet today, the company sits at a crossroads: its stock is buoyed by a near-unanimous “Strong Buy” consensus from Wall Street analysts, while quantitative models like the Zacks Rank suggest caution. The question isn’t whether MongoDB remains a leader in its space—it does—but whether its current valuation can sustain the optimism baked into its average brokerage recommendation (ABR) of 1.54, or if investors should heed the whispers of decelerating growth.

The Brokerage Bull Case: A Numbers Game
The ABR of 1.54—derived from 24 “Strong Buy” ratings out of 35 total—paints MongoDB as a buy-and-hold darling. Analysts cite its 22% year-over-year revenue growth in Q1, improving gross margins (now 72%), and the rollout of Atlas Vector Search, its AI-native database tool. Citigroup’s recent $350 price target (up from $300 in 2024) and Piper Sandler’s $350 call reflect this optimism. These firms argue that MongoDB’s shift to a subscription-based model, alongside its dominance in the $80 billion database market, positions it to weather macroeconomic headwinds.

But dig deeper, and the narrative falters. Brokerage recommendations are not neutral signals. Firms with underwriting relationships to MongoDB—or exposure to its ecosystem—are incentivized to maintain positive ratings. TheStreet’s analysis of MDB’s analyst coverage reveals that 60% of firms covering the stock also ranked among its top institutional shareholders in 2024. Such conflicts of interest, while legal, cast doubt on the objectivity of the ABR.

The Zacks Reality Check: Earnings Math Matters
Enter the Zacks Rank #2 (Buy), a quantitative model that tracks earnings estimate revisions. While the rank is bullish, the methodology underscores a critical point: MongoDB’s consensus estimate for 2025 has only risen 15.8% in the past month, to $3.03 per share. That may sound positive, but it pales compared to the 30-40% upward revisions seen in prior high-growth quarters.

The disconnect? MongoDB’s growth is decelerating. While 22% revenue growth is robust, it’s down from 34% in 2023 and 57% in 2022. Meanwhile, the Zacks model’s four factors—earnings momentum, earnings surprises, upward revisions, and industry rank—now place MDB in the top 20% of stocks, but not the top 10%. For a stock trading at a price-to-sales (P/S) ratio of 8.8x, versus its historical peak of 12.2x, this suggests investors are already pricing in a slowdown.

The Elephant in the Room: Valuation and Macro Risks
MongoDB’s valuation remains a sticking point. At $280.36 (the current consensus target), MDB would trade at a P/S of 10.5x—still elevated relative to peers like Snowflake (SNOW, P/S 4.2x) or Datadog (DDOG, P/S 6.1x). Even if MongoDB’s AI integration (Atlas Vector Search) drives new use cases, the company’s reliance on enterprise IT budgets poses risks. A prolonged macro slowdown could delay cloud spending, squeezing both margins and growth rates.

The Zacks Rank’s #2 Buy rating also carries a caveat: it’s a short-term signal. The model’s historical performance shows that stocks with high Zacks Rank scores often underperform over 12-18 months if their growth decelerates. For MongoDB, the question isn’t whether it can grow—it’s whether it can grow enough to justify its valuation.

Investment Thesis: Hold Until the Fog Lifts
MongoDB’s story isn’t over. Its Atlas platform retains a 50% market share in cloud databases, and AI tools like Vector Search could unlock new revenue streams. Yet investors must navigate a tension: the ABR’s exuberance versus the Zacks Rank’s tempered view.

The path forward is clear. Use the Zacks model to validate broker calls: if upward revisions to MongoDB’s earnings estimates accelerate beyond 15.8% in the next quarter, the stock could justify its current price. But if growth continues to slow—and the P/S ratio remains above 8x—MDB becomes a prime candidate for profit-taking. For now, the data suggests a Hold rating.

In an era where data-driven signals often clash with Wall Street’s narrative, MongoDB’s journey is a masterclass in balancing hype with hard numbers. Investors would be wise to let the latter lead.

Article originally posted on mongodb google news. Visit mongodb google news

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


.NET 10 Preview 5 Brings Blazor Observability, XAML Simplification and More

MMS Founder
MMS Almir Vuk

Article originally posted on InfoQ. Visit InfoQ

Earlier this month, Microsoft announced the release of .NET 10 Preview 5, delivering updates across multiple components, including ASP.NET Core, .NET MAUI, Windows Presentation Foundation (WPF), and Entity Framework Core. As reported, this preview introduces new features and improvements aimed at enhancing developer productivity, application observability, and customization.

Regarding ASP.NET Core, a new capability allows developers to configure custom security descriptors for HTTP.sys request queues via the RequestQueueSecurityDescriptor property in HttpSysOptions. As stated, this feature offers better control over access to request queues at the OS level.

Additionally, validation resolver APIs supporting Minimal APIs have been marked as experimental to allow future modifications, though the top-level AddValidation APIs remain stable.

OpenAPI generation has been improved with support for version 3.1. The release also extends metadata extraction from XML documentation, recognizing and  tags for response descriptions.

Furthermore, the Blazor framework introduces a method for easier rendering of Not Found pages by specifying a NotFoundPage component in the router configuration. As mentioned in the release notes, this approach is prioritized over the older NotFound fragment and is now included in default project templates.


    
        
        
    
    This content will be ignored because we have NotFoundPage defined.

Notable addition in the Preview 5 is the introduction of detailed metrics and tracing capabilities for Blazor apps. As noted, Metrics are published via dedicated meters for components, lifecycle events, and server circuits.

Tracing uses a new Microsoft.AspNetCore.Components activity source includes detailed instrumentation for navigation, event handling, and circuit lifecycles.

With a note that developers can enable these diagnostics by configuring OpenTelemetry to collect data from the corresponding sources and meters.

builder.Services.ConfigureOpenTelemetryMeterProvider(meterProvider =>
{
    meterProvider.AddMeter("Microsoft.AspNetCore.Components");
    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Lifecycle");
    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Server.Circuits");
});

builder.Services.ConfigureOpenTelemetryTracerProvider(tracerProvider =>
{
    tracerProvider.AddSource("Microsoft.AspNetCore.Components");
});

In <a href="http://.NET MAUI, support has been added for XAML Global and Implicit Namespaces. These features simplify markup by allowing developers to use controls without specifying multiple xmlns declarations. A new global namespace can include custom views, converters, and third-party libraries, enabling cleaner and more maintainable XAML.

Implicit namespaces can be activated through project properties, reducing the need for verbose declarations. However, Microsoft notes that tooling errors may occur while this feature remains in preview.

For more information on these features, David Ortinau, Principal Product Manager at Microsoft, has published a dedicated blog post covering the latest updates in .NET MAUI.

Another notable addition to .NET MAUI is the ability to intercept web requests in HybridWebView. This is now possible by handling the WebResourceRequested event, developers can alter or block requests, enabling scenarios such as injecting custom headers or serving local resources.

The update for .NET for Android and Apple platforms, such as iOS, macOS, and tvOS, primarily focuses on quality and stability improvements. Specific details are available in the respective GitHub repositories.

WPF introduces a shorthand syntax for Grid.RowDefinitions and Grid.ColumnDefinitions, making XAML as explained, more concise, and this will improve Hot Reload support.

Font and globalization enhancements include the addition of the simsun-extg font to improve rendering in East Asian languages. Also, the Fluent theme has been refined, addressing crashes and improving styling for RTL layouts. Performance gains were achieved by reducing memory allocations and removing unused code paths.

Lastly, Entity Framework Core 10 Preview 5 brings the ability to define custom names for default constraints, providing more control over database schema generation. Developers can now assign constraint names directly in model configuration or enable automatic naming for all default constraints using UseNamedDefaultConstraints.

For interested readers, full release notes with all updates, fixes, and known issues are available through Microsoft’s official documentation and GitHub repositories.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Oppenheimer Asset Management Inc. Acquires 2085 Shares of MongoDB, Inc. (NASDAQ:MDB)

MMS Founder
MMS RSS

Posted on mongodb google news. Visit mongodb google news

Oppenheimer Asset Management Inc. grew its holdings in shares of MongoDB, Inc. (NASDAQ:MDBFree Report) by 41.9% during the 1st quarter, according to its most recent 13F filing with the Securities and Exchange Commission (SEC). The institutional investor owned 7,058 shares of the company’s stock after buying an additional 2,085 shares during the quarter. Oppenheimer Asset Management Inc.’s holdings in MongoDB were worth $1,238,000 at the end of the most recent reporting period.

Several other institutional investors and hedge funds have also recently added to or reduced their stakes in MDB. Strategic Investment Solutions Inc. IL acquired a new stake in MongoDB in the 4th quarter valued at about $29,000. Coppell Advisory Solutions LLC lifted its position in shares of MongoDB by 364.0% in the fourth quarter. Coppell Advisory Solutions LLC now owns 232 shares of the company’s stock valued at $54,000 after buying an additional 182 shares during the last quarter. Smartleaf Asset Management LLC boosted its stake in shares of MongoDB by 56.8% during the 4th quarter. Smartleaf Asset Management LLC now owns 370 shares of the company’s stock worth $87,000 after acquiring an additional 134 shares during the period. J.Safra Asset Management Corp boosted its stake in shares of MongoDB by 72.0% during the 4th quarter. J.Safra Asset Management Corp now owns 387 shares of the company’s stock worth $91,000 after acquiring an additional 162 shares during the period. Finally, Aster Capital Management DIFC Ltd bought a new stake in MongoDB in the 4th quarter valued at $97,000. 89.29% of the stock is owned by institutional investors.

MongoDB Trading Up 0.3%

Shares of MDB opened at $209.92 on Friday. The stock’s 50-day moving average price is $189.81 and its two-hundred day moving average price is $218.26. MongoDB, Inc. has a 12 month low of $140.78 and a 12 month high of $370.00. The company has a market capitalization of $17.15 billion, a PE ratio of -184.14 and a beta of 1.39.

<!—->

MongoDB (NASDAQ:MDBGet Free Report) last posted its quarterly earnings data on Wednesday, June 4th. The company reported $1.00 EPS for the quarter, topping analysts’ consensus estimates of $0.65 by $0.35. The company had revenue of $549.01 million for the quarter, compared to analyst estimates of $527.49 million. MongoDB had a negative return on equity of 3.16% and a negative net margin of 4.09%. The firm’s quarterly revenue was up 21.8% on a year-over-year basis. During the same period in the previous year, the firm earned $0.51 earnings per share. Equities research analysts predict that MongoDB, Inc. will post -1.78 EPS for the current fiscal year.

Insiders Place Their Bets

In related news, Director Hope F. Cochran sold 1,175 shares of the company’s stock in a transaction that occurred on Tuesday, April 1st. The stock was sold at an average price of $174.69, for a total transaction of $205,260.75. Following the transaction, the director now directly owns 19,333 shares of the company’s stock, valued at approximately $3,377,281.77. This represents a 5.73% decrease in their position. The transaction was disclosed in a filing with the Securities & Exchange Commission, which can be accessed through the SEC website. Also, insider Cedric Pech sold 1,690 shares of the stock in a transaction that occurred on Wednesday, April 2nd. The stock was sold at an average price of $173.26, for a total value of $292,809.40. Following the completion of the transaction, the insider now owns 57,634 shares in the company, valued at approximately $9,985,666.84. The trade was a 2.85% decrease in their position. The disclosure for this sale can be found here. In the last ninety days, insiders sold 51,202 shares of company stock worth $10,576,696. Company insiders own 3.10% of the company’s stock.

Wall Street Analyst Weigh In

Several brokerages have recently weighed in on MDB. William Blair reissued an “outperform” rating on shares of MongoDB in a research report on Thursday. Piper Sandler raised their price objective on shares of MongoDB from $200.00 to $275.00 and gave the stock an “overweight” rating in a research report on Thursday, June 5th. Redburn Atlantic raised MongoDB from a “sell” rating to a “neutral” rating and set a $170.00 price target for the company in a report on Thursday, April 17th. Citigroup decreased their price objective on MongoDB from $430.00 to $330.00 and set a “buy” rating on the stock in a report on Tuesday, April 1st. Finally, Stifel Nicolaus dropped their target price on MongoDB from $340.00 to $275.00 and set a “buy” rating for the company in a report on Friday, April 11th. Eight equities research analysts have rated the stock with a hold rating, twenty-five have assigned a buy rating and one has given a strong buy rating to the company. According to data from MarketBeat, MongoDB presently has a consensus rating of “Moderate Buy” and a consensus target price of $282.47.

Get Our Latest Research Report on MongoDB

MongoDB Company Profile

(Free Report)

MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.

See Also

Institutional Ownership by Quarter for MongoDB (NASDAQ:MDB)



Receive News & Ratings for MongoDB Daily – Enter your email address below to receive a concise daily summary of the latest news and analysts’ ratings for MongoDB and related companies with MarketBeat.com’s FREE daily email newsletter.

Article originally posted on mongodb google news. Visit mongodb google news

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


OWASP Launches AI Testing Guide to Address Security, Bias, and Risk in AI Systems

MMS Founder
MMS Robert Krzaczynski

Article originally posted on InfoQ. Visit InfoQ

The OWASP Foundation has officially introduced the AI Testing Guide (AITG), a new open-source initiative aimed at assisting organizations in the systematic testing and security of artificial intelligence systems. This guide, led by Matteo Meucci and Marco Morana, serves as a fundamental resource for developers, testers, risk officers, and cybersecurity professionals, promoting best practices in AI system security.

As AI technologies become embedded in critical industries—from finance and healthcare to national security—the need for structured, AI-specific testing has grown significantly. Unlike traditional software, AI systems introduce unique challenges, including non-deterministic behavior, data drift, adversarial attacks, and algorithmic bias. The AITG addresses these issues directly using methodologies derived from OWASP’s established practices, including the Web Security Testing Guide (WSTG) and the Mobile Security Testing Guide (MSTG).

The AI Testing Guide focuses on areas such as data-centric testing, fairness evaluation, adversarial robustness, privacy validation, and continuous model monitoring. It emphasizes the importance of reproducibility, ethical alignment, and risk mitigation, particularly in high-stakes applications.

Industry professionals have already voiced their support. Michael Tyler, an expert in enterprise security strategy, commented:

OWASP’s AITG is a true game-changer for AI security. As CISOs, we’ve wrestled with AI’s non-deterministic nature and silent data drift. This guide offers a structured path to secure, auditable AI, from prompt injection to continuous monitoring. A vital roadmap for responsible deployment!

Teddy Ramanakasina, an associate director specializing in cybersecurity and IT audit, added:

Great initiative! Structured AI testing is essential to align security, governance, and assurance. Happy to contribute from a risk and audit perspective — looking forward to engaging with the OWASP community.

Similarly, Soulaiman Hajjaj, a cloud and cybersecurity specialist, emphasized the critical need for such a framework:

Excellent initiative! This addresses a critical gap, as a massive number of organisations lack comprehensive AI security frameworks. Structured testing methodologies are non-negotiable for risk mitigation.”

The OWASP AI Testing Guide is designed to be both technology-agnostic and globally relevant, with a roadmap focused on continuous updates to keep pace with AI advancements. OWASP invites developers, researchers, red teamers, and ethical hackers to contribute via its official channels and Slack community.

The project is currently in Phase 1, with a public draft and GitHub repository now live. Community input is being actively encouraged to help refine the guide ahead of its first official release, scheduled for September 2025.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


MongoDB Server Pre-Authentication Bug Allows Attackers to Cause DoS Condition

MMS Founder
MMS RSS

Posted on mongodb google news. Visit mongodb google news

A severe pre-authentication denial-of-service (DoS) vulnerability (CVE-2025-6709) has been identified in MongoDB Server, enabling attackers to crash database instances by exploiting improper input validation in OIDC authentication.

The flaw affects MongoDB Server v7.0 before 7.0.17, v8.0 before 8.0.5, and v6.0 before 6.0.21 (where authentication is required for exploitation).

With a CVSS score of 7.5 (High), this vulnerability allows unauthenticated attackers to disrupt database operations by sending malicious JSON payloads containing specially crafted date values.

Vulnerability Mechanics and Attack Vector

The vulnerability stems from improper handling of date values in JSON input during OIDC authentication processing.

Attackers can trigger an invariant failure and server crash by sending a malicious payload via MongoDB clients like the mongo shell.

The exploit specifically targets the OIDC authentication flow, where improper validation of date objects in JSON inputs causes critical failures.

Reproduction steps:

  1. Establish a connection to the MongoDB Server with OIDC enabled
  2. Send a crafted JSON payload containing malicious date values:
json{ "maliciousField": "2025-06-27T00:00:00Z" }
  1. Observe server crash due to invariant failure.

In v7.0 and v8.0 deployments, this attack requires no authentication, while v6.0 environments require authenticated sessions for successful exploitation.

Affected Versions and Mitigation

MongoDB Version Affected Range Fixed Version
6.0 <6.0.21 6.0.21+
7.0 <7.0.17 7.0.17+
8.0 <8.0.5 8.0.5+

Administrators must immediately upgrade to patched versions. Where immediate patching isn’t feasible, disabling OIDC authentication provides temporary mitigation.

MongoDB has confirmed no active exploits in the wild, but proof-of-concept reproduction is trivial using the mongo shell.

OIDC Implementation Risks

The vulnerability highlights critical risks in MongoDB’s OIDC authentication implementation.

The attack exploits the authentication flow where JSON payloads are processed before full validation, particularly in Azure Cosmos DB for MongoDB vCore configurations using OIDC:

javascriptconst client = new MongoClient(`mongodb+srv://${clusterName}.global.mongocluster.cosmos.azure.com/`, {
  authMechanism: 'MONGODB-OIDC',
  authMechanismProperties: {
    OIDC_CALLBACK: (params) => AzureIdentityTokenCallback(params, credential),
    ALLOWED_HOSTS: ['*.azure.com']
  }
});

This configuration is vulnerable when processing unvalidated date values in JSON inputs.

Database administrators should monitor authentication logs for anomalous JSON payloads containing date objects and implement strict input validation for OIDC authentication fields.

MongoDB has addressed this vulnerability in the latest patches, but it underscores persistent security challenges in database authentication mechanisms.

As enterprises increasingly adopt OIDC for cloud-native deployments, rigorous input validation and prompt patch management remain critical for securing database infrastructure.

Find this Story Interesting! Follow us on LinkedIn and X to Get More Instant updates

Article originally posted on mongodb google news. Visit mongodb google news

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


MongoDB, Inc. (NASDAQ:MDB) Director Dwight A. Merriman Sells 820 Shares – MarketBeat

MMS Founder
MMS RSS

Posted on mongodb google news. Visit mongodb google news

MongoDB, Inc. (NASDAQ:MDBGet Free Report) Director Dwight A. Merriman sold 820 shares of the company’s stock in a transaction dated Wednesday, June 25th. The stock was sold at an average price of $210.84, for a total value of $172,888.80. Following the completion of the transaction, the director now owns 1,106,186 shares in the company, valued at $233,228,256.24. This represents a 0.07% decrease in their ownership of the stock. The sale was disclosed in a legal filing with the Securities & Exchange Commission, which is available at this link.

MongoDB Trading Up 0.3%

Shares of MDB stock traded up $0.72 during mid-day trading on Friday, reaching $209.92. The stock had a trading volume of 3,106,366 shares, compared to its average volume of 1,962,826. The firm has a market capitalization of $17.15 billion, a PE ratio of -184.14 and a beta of 1.39. The stock’s 50-day moving average price is $189.81 and its two-hundred day moving average price is $218.26. MongoDB, Inc. has a 52-week low of $140.78 and a 52-week high of $370.00.

MongoDB (NASDAQ:MDBGet Free Report) last posted its earnings results on Wednesday, June 4th. The company reported $1.00 earnings per share (EPS) for the quarter, topping the consensus estimate of $0.65 by $0.35. The company had revenue of $549.01 million for the quarter, compared to analysts’ expectations of $527.49 million. MongoDB had a negative return on equity of 3.16% and a negative net margin of 4.09%. MongoDB’s quarterly revenue was up 21.8% on a year-over-year basis. During the same period last year, the firm earned $0.51 earnings per share. On average, equities research analysts forecast that MongoDB, Inc. will post -1.78 earnings per share for the current year.

Hedge Funds Weigh In On MongoDB

Several hedge funds have recently made changes to their positions in the business. Cloud Capital Management LLC bought a new stake in MongoDB in the first quarter valued at $25,000. Hollencrest Capital Management bought a new stake in shares of MongoDB during the 1st quarter valued at about $26,000. Cullen Frost Bankers Inc. boosted its stake in shares of MongoDB by 315.8% during the 1st quarter. Cullen Frost Bankers Inc. now owns 158 shares of the company’s stock valued at $28,000 after purchasing an additional 120 shares in the last quarter. Strategic Investment Solutions Inc. IL purchased a new position in shares of MongoDB during the fourth quarter valued at about $29,000. Finally, Coppell Advisory Solutions LLC raised its stake in MongoDB by 364.0% in the fourth quarter. Coppell Advisory Solutions LLC now owns 232 shares of the company’s stock worth $54,000 after buying an additional 182 shares in the last quarter. 89.29% of the stock is owned by hedge funds and other institutional investors.

Analyst Upgrades and Downgrades

MDB has been the subject of several recent analyst reports. Wells Fargo & Company lowered MongoDB from an “overweight” rating to an “equal weight” rating and cut their price objective for the stock from $365.00 to $225.00 in a report on Thursday, March 6th. Wedbush reissued an “outperform” rating and issued a $300.00 price target on shares of MongoDB in a research note on Thursday, June 5th. The Goldman Sachs Group lowered their price objective on shares of MongoDB from $390.00 to $335.00 and set a “buy” rating on the stock in a research report on Thursday, March 6th. Canaccord Genuity Group dropped their price objective on shares of MongoDB from $385.00 to $320.00 and set a “buy” rating for the company in a report on Thursday, March 6th. Finally, Guggenheim increased their target price on MongoDB from $235.00 to $260.00 and gave the company a “buy” rating in a research note on Thursday, June 5th. Eight analysts have rated the stock with a hold rating, twenty-five have issued a buy rating and one has given a strong buy rating to the company’s stock. According to MarketBeat, the company currently has a consensus rating of “Moderate Buy” and a consensus target price of $282.47.

Check Out Our Latest Stock Analysis on MDB

About MongoDB

(Get Free Report)

MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.

Further Reading

Insider Buying and Selling by Quarter for MongoDB (NASDAQ:MDB)

This instant news alert was generated by narrative science technology and financial data from MarketBeat in order to provide readers with the fastest and most accurate reporting. This story was reviewed by MarketBeat’s editorial team prior to publication. Please send any questions or comments about this story to contact@marketbeat.com.

Before you consider MongoDB, you’ll want to hear this.

MarketBeat keeps track of Wall Street’s top-rated and best performing research analysts and the stocks they recommend to their clients on a daily basis. MarketBeat has identified the five stocks that top analysts are quietly whispering to their clients to buy now before the broader market catches on… and MongoDB wasn’t on the list.

While MongoDB currently has a Moderate Buy rating among analysts, top-rated analysts believe these five stocks are better buys.

View The Five Stocks Here

2025 Gold Forecast: A Perfect Storm for Demand Cover

Unlock the timeless value of gold with our exclusive 2025 Gold Forecasting Report. Explore why gold remains the ultimate investment for safeguarding wealth against inflation, economic shifts, and global uncertainties. Whether you’re planning for future generations or seeking a reliable asset in turbulent times, this report is your essential guide to making informed decisions.

Get This Free Report

Like this article? Share it with a colleague.

Link copied to clipboard.

Article originally posted on mongodb google news. Visit mongodb google news

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


C++26 Draft Finalized with Static Reflection, Contracts, and Sender/Receiver Types

MMS Founder
MMS Sergio De Simone

Article originally posted on InfoQ. Visit InfoQ

The next major release of C++ reached an important milestone earlier this month, when the ISO C++ committee froze the feature set that will go into C++26. Notable additions include compile-time reflection, contracts, asynchronous execution, and many others.

Static reflection enables compile-time introspection on types and behavior, aiming to extend C++ metaprogramming capabilities. At a basic level, reflection allows to write code similar to the following to convert an enum to a string:

enum Color { red, green, blue };
static_assert(enum_to_string(Color::red) == "red");

While the user-facing syntax for using reflection is simple, in keeping with modern C++ philosophy, the implementation of the feature shown above is significantly more complex. Still it offers a glimpse of the capabilities reflection will unlock:

template 
    requires std::is_enum_v
constexpr std::string enum_to_string(E value) {
    template for (constexpr auto e : std::meta::members_of(^E)) {
        if (value == [:e:]) {
            return std::string(std::meta::name_of(e));
        }
    }
    return "";
}

Reflection will debut in C++ in an early form and is expected to evolve in future versions. Even so, it will already be powerful enough to enable advanced use cases, such as generating bindings for other languages like JavaScript and Python. This is how Herb Sutter describes the feature in its latest Trip Report:

Even with the first partial reflection capability we have today, we will already be able to reflect on C++ types and use that information plus plain old std::cout to generate arbitrary additional C++ source code that is based on that information and that we can compile and link into the same program as it’s being built.

In the future, using reflection it will be possible to generate C++ code within the same source file using token injection.

Other features accepted into the standard at the latest ISO C++ committee meeting include parallel algorithms for the Ranges library, async scopes, aimed at enabling RAII (resource allocation is initialization) style programming for resource management in asynchronous contexts, and a parallel scheduler providing an advanced execution context for thread pools.

Several major features accepted in previous committee meetings include contracts, asynchronous execution, and numerous others not covered here, such as enhancements to template metaprogramming with pack indexing, the #embed directive for including binary resources, bounds-checked iterators and null pointer validation, SIMD parallelism, and more.

Contracts aim to support design by contract through [[pre:]], [[post:]], and contract_assert. Originally planned for C++20, they were ultimately removed from the final draft, but are now making their way into the standard.

std::execution provides mechanisms to manage asynchronous execution on generic execution resources. Its core concepts are sender and receiver: a sender represents a unit of asynchronous work that sends its result to a receiver. The framework is completed by the concepts of state associated with an asynchronous operation and a light-weight scheduler.

Work on C++26 continues, but as Sutter highlights, it is closer to completion than many might expect, with GCC and Clang already supporting about two-thirds of the adopted language features. InfoQ will keep reporting on the evolution of the next C++ standard as it progresses.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Presentation: Continuous Delivery Is Not Possible Without Pair Programming: Lessons From SpareBank 1 and SINTEF in Norway

MMS Founder
MMS Asgaut Mjolne Soderbom Ola Hast

Article originally posted on InfoQ. Visit InfoQ

Transcript

Asgaut Mjlne Sderbom: We’re here to talk about continuous delivery, and that it’s not possible without pair programming. My name is Asgaut Mjølne Sderbom. I’m a senior developer in SpareBank 1, which is one of the biggest banks in Norway. I’ve been developing for 19 years, and I still love programming.

Ola Hast: My name is Ola Hast, also a developer at SpareBank 1. Yes, also love coding.

Starting Out (Career)

Asgaut Mjlne Sderbom: In October 2020, I started as a developer in SpareBank 1 Utvikling. I knew it was an agile company, focusing on people, culture, and everything, and they had this slogan, which is better together, it is bedre sammen in Norwegian. You never know how it is before you actually get to the company and start. After working there for about a month, I was in a meeting, and they said that you’re not allowed to do pair programming for the rest of the year. This was in November 2020. I was shocked. I was sitting back home back then. It was the pandemic, and my wife was working at home as well. She said she’d never seen me this angry in a work professional setting before. That’s when we decided to start to do something.

Ola Hast: At the same time, we had a survey on meeting culture. We like to measure things in SpareBank 1. It can get annoying sometimes, but it helps us keep a feel for the temperature in the company. We had a survey on meeting culture, and 82% of the respondents, I think it was about 600, they said that they felt that they were working in too much at the same time. The work in progress, or WIP, as we’ll refer to it, was very high. Seventy-two percent wanted 4 hours of uninterrupted focus time per day, but only 20% of us actually had it. Something was not right. What we did, we actually had a series of meetings and workshops about us having too many meetings. It didn’t quite solve the problem.

At the same time, we had visitors, breakfast visitors, from the Norwegian Welfare and Labor Administration. They are the ones who handle welfare and unemployment benefits, and so on, in Norway, which is about one-third of our national budget. The guys were Terje and Julian. They told us that they pair programmed everything. They put every commit straight into production. They have dropped all test environments, and they got rid of the pull requests. We thought, we’re a bank, we can’t do this. One-third of the national budget is nothing. By then we started thinking, maybe we should try something like this.

Asgaut Mjlne Sderbom: We are doing cooperation with someone called SINTEF Digital. They’re independent researchers or scientists sponsored by the government. This guy here, Nils Brede Moe, he’s the chief scientist, so we refer to him as the chief researcher. They are researching across the Nordic region, so they are in big companies around Norway, they are in Spotify, Ericsson, a lot of different places. They’re trying to see how we can have better, efficient teams. We will refer to him during this presentation and his findings, which will back up some of our experience.

Avoid Personal Focus, Increase Team Focus

Back to 2021, me and Ola, we were working in a team called the My Economy Team, which was responsible for all the expenses, showing like a forecast of what you’re going to use and how much you used on travel. It was a great team with the usual suspects, frontend, backend developers, designers, product leaders, IT coaches, everything.

Ola Hast: You were working, I was enjoying the benefits with the Norwegian Welfare and Administration.

Asgaut Mjlne Sderbom: Still in the team. We had some problems in this team. We were focusing on too much on the individuals and not as much on the team. This is normal questions that would arise on a standup, how is your task going? Can someone approve my pull request? It’s a lot of focus on the persons. Have you figured out the critical bug yet? Then, our favorite one, are we on track with your task?

Ola Hast: This is the team pretending that they actually care about you.

Asgaut Mjlne Sderbom: Then we have the researcher, Nils Brede Moe. He says, when he sees something like this, then this is not a team. This is just a group of individuals with their own goals, not caring about the team. It doesn’t smell like a team, he said. At this time, we had a great agile coach. She’s called Marthe Fleischer, and she saw this problem in the team. She said, we’re working in something called the radical focus model, which means we work in weekly cycles. We plan some stuff on Monday, and then we work during the week, and we have some ceremony on Friday. She said, this week, I want the team to only have three main tasks.

Even though we were six, seven developers, we were forced to work on fewer tasks. This made a difference. What happened after a while working like this, was we had a main task like this with some other tasks that are not that important, but these three are the main tasks for the week. Then these are just simple checklists. It’s not in any issue tracking system or something like that. Most important of all, there’s no assigned person to the task. There are not any tasks that are like, you are responsible for this task. It’s the team that is responsible to achieve these tasks during this week.

Let’s look at a classic setup with high WIP or work in progress. You have six different tasks, and then you have six developers. That’s perfect. This is a Monday, we’re planning for the week. Then we see that two of these tasks are not that big, so we add two more tasks. We have eight tasks for these six developers. Then we start working. On Tuesday morning, there are two other tasks coming, two bugs flying in. Then we have 10 tasks in progress for these 6 developers. Then the chaos starts because this team, they are trying to be a little bit modern, they slice tasks. They try to do rapid deployments to production, but that’s nearly impossible because all of these, since they are working with each their things, they have to interrupt each other because we have pull requests and we have code reviews. Then you have communication to solve your task and everything. It breaks down immediately. It’s not possible.

Ola Hast: The only person who is happy with this is the project manager.

Asgaut Mjlne Sderbom: The traditional project manager.

Ola Hast: Because everybody’s got more than enough to do. No one is idle.

Asgaut Mjlne Sderbom: It’s pretty easy to see because they also maybe require meetings. They have to communicate with other teams. Everything just breaks down. What happens then pretty fast is that they start to build bigger tasks. Everyone knows what happens when you build bigger tasks, you have bigger code reviews, the risk increases, and so forth. We have a solution. It’s called pair programming. If you put these guys into pairs, then the problem with the code reviews, with the interruption, everything is just solved immediately. The time used for pull requests are eliminated to zero because it’s done through the pairs when they’re working. Also, we have some rotation.

During the week, the pair maybe do some rotation, and then also knowledge is spread just as the way we are working. We don’t have to have any knowledge-sharing sessions, or meetings, or stuff like that. It’s just part of how we work. Then we create some time buffer because it’s always stuff coming along as we work during the week. As we said, this is continuous delivery with pair programming really coming into play.

Stop Starting, Start Finishing

Ola Hast: Another important thing, which comes from agile, is stop starting and start finishing. Everyone knows it’s a lot of fun to start things. Finishing things, however, is a lot more difficult. Anybody who’s done any renovation knows that getting the last bit of trim on never happens. What we saw after a while on our team was that instead of starting new tasks, people started asking, does someone have something going on that I can help with to finish? Then, Bard Kristian said, you can join me, and we can listen to Taylor Swift. What Nils Brede says about this is that this is the hallmark of a really good team. It smells like a good team, as he says. Because here, the team actually cares more about the goals of the team than their individual goals.

Asgaut Mjlne Sderbom: The research shows that the psychological safety in the teams, there’s no better way to build psychological safety than with pair programming. One other thing we recently saw as well was there was research about happiness, how happy people are in different countries in the world. Some of the main things that everyone should learn, like the kids and everything, is that you should have two things to do every day. You should thank someone, and you should ask someone for help. I think that fits really good into the agile thinking.

Back to this, Ola talked about NAV there, and this is rapid deployment to production and all test environments and stuff. We wanted to test this. Me and this guy, Geir Olav, he’s a full-stack developer. Me and Ola, we’re getting a bit old, so we don’t understand that they actually exist.

Ola Hast: No, we actually refer to them as unicorns.

Asgaut Mjlne Sderbom: He’s under 30 here, and he can do like everything. He can do React, and he can do Kotlin, and he can do SQL, and everything. It’s amazing. The task we were given, here you can see a transaction coming in, it’s from Adamogeva Jacob Aalls. That’s my hairdresser. Our clever machine learning doesn’t understand that that is a hairdresser. We want our customers to be able to choose the category so that could be visible on future transactions. Then they have to choose the main and subcategory. This is a perfect task. It involves everything, machine learning, frontend, Kotlin domain, SQL, whatever. It’s a perfect task for trying out this stuff.

We’re going to show a little bit how we started out. We have an API called api transactions, it’s the heart of the bank where all the transactions flow through. Then we have the frontend part of my economy going into a REST call into TransactionResource, the classic setup, TransactionService, hitting some adapters, hitting some backend systems. The classic way would maybe be to create the database to store these customer categories and build yourself up. Instead, we broke in in the middle of the heart of the API, and then we made a small service, and then we add a feature toggle. To this feature toggle, we said that if it’s me or it’s Geir Olav, then show this certain category in production because that’s what we wanted to test. We deployed this to production, and we could see it in production.

Ola Hast: Didn’t go quite according to plan, did it?

Asgaut Mjlne Sderbom: No, it actually didn’t go so well. What happened was that since we went into the heart of the TransactionService, we messed up the order of the transaction, so all our 1.2 million customers got incorrect orders of all the transactions. No one dies if transactions are in incorrect order. We got alarms on this, and it was easy to roll forward because the change was so small that we knew exactly where it should be. That’s a good example. If that was part of a big release, it could be difficult to find, but we didn’t even get nervous. We just fixed it.

Then we continued, did changes to the domain layer, changes to REST endpoints, design, we had feature toggles in the design. All of these were just deployments to production all the time, small deployments. Refactoring is a good point, actually, because usually when we worked before and we came to a major refactor, they said, we have to wait to the next pull request. We can’t do all this refactoring now. We have to wait.

Ola Hast: That means never.

Asgaut Mjlne Sderbom: That’s never.

Ola Hast: If anyone’s confused, that means never. It isn’t happening.

Asgaut Mjlne Sderbom: Yes, we forget as well. Since we are committing to main all the time and we’re in sync with main, then we can just step aside and then we can do the refactoring, and then we can go back again. Then we also have something that we like to do when we program, we have interfaces. Then, behind these interfaces, we just create implementations with just HashMaps and caching the domain objects. This puts us into a situation where we don’t have to care about the backend integrations at all. What do you usually say about that?

Ola Hast: This is actually a really nice architectural principle that you postpone the decision to the last responsible minute. We have had several instances where we thought that we needed a database, but when we came to the end and we’re going to decide on a storage mechanism, we saw that we could just use a cache, or the other way around, that we actually care about this data so we have to store them somewhere safely.

Asgaut Mjlne Sderbom: This also fits very well into this way of working. All the way in the end, we see we have a category with Postgres and we have some machine learning adapters. Then, we develop these and we test them so we get this separation of concerns principle as well coming in. Everything here fits into the continuous delivery way of working. In the end, we remove all the feature toggles and these cache implementations. This way of working, we saw it pretty fast. It’s not possible if you’re working alone. If you’re working alone and sitting doing all these small steps, then your decision will be, you have to take too many decisions yourself so you automatically build bigger stuff again. After a month doing this new feature, we had about 50 commits to this Jira task.

Then we saw another consequence of this working as well, that was that Jira or any issue tracking system was not necessary because we would have been using more time moving the tasks in Jira between state in progress, and done, and everything that we do on programming. Pretty quickly, we just added everything to this same task. Now after this, this was like the last time we used Jira issue tracking system. Now we don’t see any purpose with it anymore.

Ola Hast: We actually just stopped using it to see if anybody would notice. Nobody did.

Asgaut Mjlne Sderbom: The pull request part as well, it’s amazing because there are so many people using so much time on pull requests but we reduced it to zero. It was nothing. It was just a way of working. The only thing we wanted to try was to do small tasks and go rapid into production. All of the other parts, they just came as consequences of this way of working. It was not a goal to stop pull requests. It was never a goal to stop with test environments that you are going to talk a little bit about.

Ola Hast: Another consequence was how we worked with our environments. We like to do TDD, which means that we always have a good base of unit tests that helps us do changes and refactorings safely and confidently. What we used to do was that we usually had some scripts that started Docker Compose and had mocks of our backend systems, maybe some databases, and then we had some scripts on the top, like Postman or just some Java tests, but the feedback loop was just too long. We stopped doing it. It just didn’t make any sense.

Another thing was that since we had built so small things and had so good tests, then when we got to the test environment there was not really much to test. We still have a test environment because a lot of other teams are dependent on our APIs so we have a test environment but we don’t really use it ourselves. Another fun thing about our pipeline is that our production deployment has more resources so it’s usually deployed to production before it goes into tests since both are automatically. We used to have a pilot Q&A type environment but we solve all of that now with feature toggles. I don’t know how much wasted resources are around on environments that are dead most of the time, but I’m guessing it’s a lot.

Asgaut Mjlne Sderbom: We could say all the three boxes in the middle here are waste.

Ola Hast: What we ended up with was we had our local test environment and then we deployed to production, and everything in between just didn’t make sense anymore. It wasn’t part of some master plot but it just happened. We didn’t need it.

Asgaut Mjlne Sderbom: We love when things just happen as a way of working instead of someone else telling how to do it.

Focus, Flow, and Speed

Over to another part about focus, flow, and speed. This picture here is from the very northern part of Norway. It’s called the Lyngen Alps, just outside of Tromsø. Me and my wife, we went on this trip. We lived on a boat. Not that boat, but a bigger, better boat, and went around the fjord. We went with a guide up to the mountains and skied down again for a week. That was our flow that week, was powder skiing and having fun. Our flow in here looks more like this, but flow is an amazing state. When you come into flow you know what you’re doing. You know what your next step is. You’re just having a really good time developing.

Ola Hast: Can you approve my pull request?

Asgaut Mjlne Sderbom: Then that comes along. What our researcher Nils Brede says is that if you get interrupted with something that is not what you’re doing, then it takes around 15 minutes to get back into flow state. What happens if you get into flow state several times an hour?

Ola Hast: If you get interrupted, you don’t get any work done at all. If you get interrupted three or four times an hour then you spend 15 minutes each time, then you can just go home.

Asgaut Mjlne Sderbom: Yes, exactly. You get into something looking a little bit like this. In addition, if you have notifications on Slack, for example, many people use Slack, and then you click on this little icon because you attempt to click on it and you come into Slack and that lights up like a Christmas tree, with all the small dots and then you have the threads and then you get yourself lost into Slack.

Ola Hast: We love Slack.

Asgaut Mjlne Sderbom: We love Slack. We don’t want to go back to mail but you have to turn off the notifications if you’re working alone. Of course, we have a solution to this as well and that is pair programming. This is Ola and Stian working together. What our researchers say as well when we work together it’s like creating a buffer zone around the people who are working. They are not doing anything else than doing the stuff that relates to the task. That is pretty unique because we’re sitting alone, we get interrupted all the time, but if Ola here is starting to answer questions on Slack, then Stian is standing there idle.

That would be totally unnatural. It solves by itself. When you have two people going into flow with pair programming then you get significantly immeasurably higher quality than if you’re working alone as well. This is an important part also to think about when you’re comparing two people working in parallel and when there are two guys working together, because we sometimes get that question because the quality they create is so much higher so the rework afterwards are much less. We can see that when we have been working together doing continuous delivery and stuff like this, we have very few bugs and it’s easy to change the system afterwards.

Ola Hast: Another thing is that our team leader he said that when there’s two people working together it’s really scary to go over and interrupt them, but if someone’s sitting alone in the corner then you’re just free game. Another important thing is how you’re seated.

Asgaut Mjlne Sderbom: This is how we are seated.

Ola Hast: This is our little nook. The first thing we did when we moved in was that we moved the desks out so that we’re sitting with our backs to each other. Like everyone else, we have chairs with wheels so we can just spin around and work together and move around. Another thing is that we have whiteboards. We have whiteboards on both sides. As you can see, I don’t even have to get up out of my chair to write on the whiteboard.

Asgaut Mjlne Sderbom: We had lunch with the SINTEF guys, and there was one of the researchers from Spotify, and she said when they put in a whiteboard inside a team, the communication inside the team went up by 50% just by adding the whiteboard, because you get this innovative creative work immediately just drawing. That’s an important tip.

Ola Hast: Where we were seated before this, we had a whiteboard that was about 7-10 meters away, and it said, ‘Happy Easter’ in November. It has to be close. All of this, working like this can get really intense so it’s really important to take breaks. By taking breaks I mean really good breaks without any monitors or screens. Do like these guys, go for a walk. Get some air. Just do something else. The worst thing you can do is check Slack, or email, or something like that, because then you get sucked into something else completely, and when everybody else comes back from their coffee break or whatever then you’re even more tired than before the break.

Asgaut Mjlne Sderbom: This is also from the research from SINTEF. They say that this is one of the most common things is that people get very exhausted.

Ola Hast: It’s one of the main feedbacks we get that if people don’t rotate and take breaks your head gets like mush.

A Typical Day in the Life of Pair Programming

Let’s look at a day in our lives. Usually, we start at like 8:00 and 8:30, in the morning. Do some admin stuff. Then we have a few meetings during the day where I have a meeting, you have a meeting, we have lunch. One thing though is we Norwegians, we eat lunch at 11:00, which is super early for everyone else. What we see is that from 9:00 to lunch, we have a block where we can work. Then we can do some solo programming in between.

Then, we have a spot at the end of the day where we also can program together. You’re allowed to solo program but it gets really difficult after a while because you don’t have anyone to spar with or talk with so you start second guessing every single decision you take. What would Oscar think? The most important thing is that the task gets love all day. You don’t switch tasks when the other person is away. Preferably you’re a bigger team than just the two of us. We’re four now, so it’s not that much solo programming anymore. The task gets love all day, and no knowledge is lost. When this guy goes on his annual surfing trip to Morocco he can just leave. I know everything, the rest of the team knows everything. He has nothing he has to hand off. He has no pull requests to close, no long-lived branches that needs to be hiding.

Asgaut Mjlne Sderbom: I actually talked to another guy I know from another company and he said the complete opposite. When he leaves, he has to finish everything as Ola said. He could just sit on the plane and relax because he saw, nothing is left from him. I can just leave. This is of course nice when you go to Morocco for surfing, but that also applies for if you get sick or your children get sick, which happens way too often. Then, if we have other stuff going on which is the way, then the work just continues.

When I started in SpareBank, I knew it was the pandemic so I was sitting a lot from home. We had this 2:00 coffee on Teams where we were supposed to get to know each other, but I never got to know anyone in these 2:00 meetings. When I actually got to know people was when me and Vidar, when we were working together then we actually got to know each other. We can talk about other things than just programming as well, and I could ask all the questions and really got to know how this company works. This guy, Eivind, I worked with him for a year remotely and then I met him in JavaZone.

Then I noticed something weird and that was actually the first time I saw his legs. I’d never seen his legs. I felt I knew him. We’re still working a bit remotely, most at the office, but some hybrid and remote, and it works well. This guy here called Bard Kristian, he was onboarded in our team. We can start by saying what we’re not doing when we’re onboarding.

Ola Hast: We find a suitable task in the backlog.

Asgaut Mjlne Sderbom: That’s the worst thing you can do. You see this new guy coming in, then you try to measure his level, is he junior, senior? How good is he? Then you should find these tasks that are suitable for him, and he should do it. After he has done it, you should like, this new guy, he is a good developer. Instead, we do the complete opposite. We just put them directly into what we’re doing anyway. Then we switch every 15 minutes who is writing and who is looking, and they go into the task very quickly. We’ve done this a lot of times, and it works perfectly.

Ola Hast: Another thing is that he said that it was also a good place to ask all the stupid questions when you start somewhere. Like, where’s the good coffee? How do I find the HR systems, and all of that stuff? He doesn’t have to batch them up and hope he can interrupt someone later.

Asgaut Mjlne Sderbom: I think this is an important thing to do anyway. You just have to narrow down the scope of what you’re doing. As long as the new guys can do some if and else and Spring and stuff, they can be productive. He’s putting code into production from day one, then the motivation goes up. What Nils Brede said, a researcher, he said, if you work like this, there’s a much bigger chance that the people stick in the company for a longer time as well, and the team. There’s one thing that everyone has in common that you do every day, and that is that you waste time on non-valuable stuff. We call this the waste clock in our team, and we say that now we’re starting the waste clock. We’re doing that all the time. It can be just for starting a meeting and someone doesn’t, “Can you hear me now?” That happens.

Ola Hast: “Am I sharing the screen?”

Asgaut Mjlne Sderbom: Then, if you go to developers, developers are special because developers, for example, when I started, we had a build that took around two minutes to build. I was used to Quarkus, which is something really fast, and I asked, how can this build take two minutes? Then I got the answer that that’s just how the world is. I was saying this is how the world is, and the other was sitting there, and the other teams, and then suddenly these two minutes multiply up with all the developers in the whole company every day, and then it gets really expensive. When you’re pair programming and you’re sitting watching this two-minute build the first time, it’s like, we drink some coffee and it’s ok.

Ola Hast: The next time it gets awkward.

Asgaut Mjlne Sderbom: The next time it feels really weird, and then, yes, we have to fix this. We have to do something about it. That’s what happens all the time. We reduce waste all the time by working together instead of just sitting there, and it’s just how the world is.

Ola Hast: If you’re two or three people working together and things are going too slowly, then you start plotting, how can I fix this?

Asgaut Mjlne Sderbom: We also see it’s a little bit funny about leaders, because leaders, they don’t know what we’re doing. They’re just fine with all these slow builds. I think if you add up all this time that we use on non-valuable stuff waiting, that would be the top priority of the company, but sadly it’s not.

Pair/Mob Programming Interventions

I hope that you’re a little bit inspired to work like us, but we have seen, we can do some inspiration around, but when it all comes down to it, you have to start doing stuff. We came up, me and Ola, with something we called Pair or Mob Programming Interventions. It actually also now applies for other type of work than programming. First of all, to get people to come, we need cinnamon rolls. If you have cinnamon rolls, then developers will come. You need something to get them to come.

Then, we have given periods for three or four weeks that they have to test working together. There are two requirements. One requirement is they have to book a pair programming session in their calendar twice a week. Everyone has time for that if they book it. Then they have to rotate who’s writing and who is not every 15 minutes, because we’ve seen this, for example, a senior, he’s just showing a junior how to do it for 2 hours, and then they call it pair programming, but it’s not.

Ola Hast: Someone watching someone else program is not pair programming, it’s surveillance.

Asgaut Mjlne Sderbom: Then, we have SINTEF. SINTEF, they love this. They now also wrote a scientific article about this, introducing a way of working. They will do surveys and observations and everything. Then you have something social in the end. We have done this many times. We’ve done it on single teams, on areas, or tribes, or whatever you call it. It works very well.

Our newest, hottest way of introducing is called job shadowing. This guy, Magnus, he’s from another team. He’s invited into our team for a week, and then we just put him into what we’re doing for a week, and then we can really stress test the way we’re working, onboarding, and everything. We tested this, and it worked splendid. He came up to speed, he was delivering from day one. Then, he can go back to his team and maybe do something similar.

Ola Hast: We’re going to follow him back into his team and follow up and help them get started as well.

Summary

Asgaut Mjlne Sderbom: To summarize all this, this is our team. We’re now four people with Ole. We’re sitting doing test-driven development, domain-driven design, and really focusing on quick feedback. We do tiny changes, putting up to the CI server and get feedback if anything is broken. We do feature toggles in production. We do monitoring and we raise alarms if anything goes wrong.

Then we have a feedback loop on this whole circle. This whole circle is the scientific way of working, which we think brings the highest quality. Putting into production takes around five minutes, so we get super-fast feedback of how it’s actually working. Again, this gave a lot of consequences. There was never a goal, but we reduced waste. We don’t have any slow tests anymore. We worked a lot on that. We don’t use any time on pull requests. We have a pull request requirement, but we create the pull request and then we approve it in two seconds because it’s already done. We have a special thing, I think, with building branches.

Ola Hast: We stopped doing it because since the same tests that run on our machine are the same that runs on the branch, the branch build never failed, so why do it? We just stopped doing it.

Asgaut Mjlne Sderbom: This saves money on the cloud as well. The test environments, we don’t use test environments anymore. We also work with clients in the bank doing totally new features where they are sitting testing stuff in a production environment, which they also love because then they don’t have to care about setting up all the test data.

Testers as well, with that speed we have, I don’t know how we should fit in testers, but we have to test ourselves. Status meeting is reduced to one, because we’re talking to each other all the time when we rotate and everything. Knowledge-sharing sessions, definitely, that’s zero, because we share the knowledge when we work. End-to-end testing, the whole circle here is the end-to-end test. We don’t do any end-to-end tests more than that. Issue tracking tools are not used anymore, we just use simple Confluence or whatever tool to make checklists. Handoffs is something of the most important parts. When we see that we are dependent on other teams, then it just stops.

Ola Hast: The circle breaks down.

Asgaut Mjlne Sderbom: The DBAs are an example when we’re not allowed to do changes in the database. We moved everything so we can handle all those stuff ourself. Of course, this is not possible without working together. It would be impossible to do all these small steps sitting there alone. Me and Ola, we’re working in a team for the account part of SpareBank 1. We have 30 million requests every day from 1.2 million customers, which is a lot in Norway. It’s not a lot here, maybe. In Norway, that’s a lot. Still, though, I’m more worried when I’m sending out an Outlook invitation to 300 people internally if I’ve misspelled something, than I am when we’re putting things into production here, because I’m so convenient with the whole way we’ve been working. This gives some great quality as well. We can have one thing we can say that we achieved. What is that?

Ola Hast: I have no idea.

Asgaut Mjlne Sderbom: We were ranked as the number one mobile bank in 2024, so we have to do something. Back to where we started. Nils Brede, he’s talking to leaders across the company, and he said that the company is on a completely different level now. The leader’s now applauding. They want us to work more together. They want us to have interventions and all of that stuff. We’re at a better place. There was one other guy, a developer, who said that we have almost reached modern software nirvana in our team, and that may be cool, but that’s not completely true. We want to embrace change, and tomorrow, maybe AI is coming, and then we have to change. I think that’s the most important part that we are on the stage where we can change things. Maybe next year is about AI.

Status Reporting to Management

Ola Hast: How do we report our status to management?

Asgaut Mjlne Sderbom: On Mondays, we have this one status meeting that we need to have called Monday commitment, and then we’re talking with our team lead, and our team lead always knows what we are doing. She is looking after that. We’re doing the prioritized work.

Ola Hast: She’s also our product leader, so she coordinates with all the other product leaders and stuff like that. We have quarterly goals. That’s almost a different talk about OKRs and all that stuff. Basically, we have very loose goals from the top, and we just work within those bounds.

Questions and Answers

Participant 1: About the job shadowing, a person from the different team that joins your team, does he have enough functional knowledge of the team applications as well?

Ola Hast: Does he have functional knowledge about our team?

Participant 1: Yes.

Asgaut Mjlne Sderbom: Who?

Ola Hast: Magnus, the guy in the job shadowing.

Not really. He knows the domain since he also works in the bank, but that’s part of the point, that if what you’re working on is small enough, then the need for deep domain knowledge is limited.

Asgaut Mjlne Sderbom: I think this removes that part earlier when we had to use several months to get up to speed in a team. When you slice that down to a very minimum, they can be productive from the very beginning, then they just learn the domain and everything as they go, and it’s a much more motivating way of working, and they are productive, giving value from the beginning as well.

Ola Hast: Have you ever had that someone said that this is an unshareable task?

Not on our team, because we do pair programming, that’s part of our DNA. We have the discussion often, like, this task is too dumb to pair program.

Asgaut Mjlne Sderbom: We don’t discuss this in our team, but with other teams.

Ola Hast: If someone comes and say that this task is unshareable, then I would say he’s probably an information hoarder, and that’s not really a good way of working together, at least.

Asgaut Mjlne Sderbom: No, we work together on absolutely everything. If it’s looking at logs, if it’s analyzing, if it’s PowerPoint, if it’s just on task, everything. We work together on everything, because it’s not just a task, because it’s also the flow, and the knowledge sharing is super important.

Participant 2: What do you think about team size? You have four people in your team. How many do you think is a maximum to make this work, working on a product?

Asgaut Mjlne Sderbom: Nils and the researchers, they say small teams are the best. Four to five, I think, is the best size. I can say a little bit how we work as well. We are four, if everyone is present at work, we divide into two pairs. If one leaves, then they are three on one task. There’s never someone alone on that task, and that’s the way we’re working all the time. That works very well, I think.

Ola Hast: The bigger the team, the more coordination you need. I wouldn’t be more than five developers at least, or UX.

Asgaut Mjlne Sderbom: Four is perfect, I think.

Ola Hast: Because if you have more than four, then you need a fifth to manage everyone. It’s not very sound.

Participant 3: If this way, the fact that thanks to pair programming, which I think is good for any company, you were able to cut many meetings on sharing staff. This is something that you think that could scale up for bigger companies, or it’s more a way for smaller companies to cut overhead?

Ola Hast: Speaking of size, we’re about 300 developers now. The important thing is that the team can be autonomous. If your team has a lot of dependencies to other teams, then this is really difficult. Then, if you want to scale up, you should change your architecture or the way you work to be less dependent on other teams. Because then you get into the handover trap, where everything has to be thrown over a wall, and you have to coordinate with everyone. Then you don’t have independent services. Then you have a distributed monolith, or basically you’re working on the same thing.

Asgaut Mjlne Sderbom: I think the answer is that it totally scales. It’s just working in teams, small teams.

Participant 4: How did you persuade management that this is a good idea? Do you have some metrics that show that you actually got more efficient before and after?

Ola Hast: What they see is the quality.

Asgaut Mjlne Sderbom: They see what SINTEF is doing as well. SINTEF is reporting all the time, the researcher, how this is going. They can report that psychological safety actually went up. They do service before and after our interventions. They go and just see how people are working together inside different teams. They do a lot of stuff, so they see that this is affecting all the time. It’s coming back in service, when you said in the beginning, we’re doing this service all the time. It comes back as a point that’s really helping us out.

Ola Hast: Now there’s also a lot of literature in the industry, like the DORA reports that show that this is actually a good way of working.

Participant 4: Do you use DORA metrics?

Ola Hast: Not directly. We don’t use metrics per se. No.

Participant 5: Do you have any tips for convincing the team that is very against this idea? Like you’re the only one who wants to do this, and everyone else is very against it?

Ola Hast: If they’re very against it, then I would consider changing team.

Asgaut Mjlne Sderbom: If you’re in a team, and it’s just you are the only one who wants it, then it’s a problem.

Participant 5: I think they’re just scared.

Ola Hast: A more serious answer than changing teams is that when we started like five years ago, then everybody were introverts, and pair programming was not for me, and it was scary, and people are scary, and all that. What it really takes is a culture change in the company. If you can convince them to try a pair programming intervention, just get them to try it a few times a week, then it might be. If they’re really against it, then they’re probably a bit scared, and then you probably need to get a higher level of the psychological safety in the team.

Asgaut Mjlne Sderbom: It’s usually a very good idea to be at least two who wants it.

Participant 6: In your model of work, how do you deal with production support? What I mean by that is not know when your things catch fire, or you have to fix things, and you have monitoring for that. Let’s say the customer did not expect a certain feature to work a certain way. They didn’t find a category for the expense that they wanted to see. How do they report it? How do you review it? How do you act on it? How does it work?

Ola Hast: We have several channels, too many channels, actually. We have a customer call center with several levels. We monitor the app store. If you actually give us a bad rating in the app store and say why, then we usually explain it or fix it.

Asgaut Mjlne Sderbom: They have feedbacks in forums also in mobile bank for features like that, if that’s what you mean. Then, for alarms, we have guys who are watching more over the alarms than we are. Then we’re watching them ourselves, of course, as well. All in all, we see that when it comes to errors, when we work together after a while now, we see that we have very few errors, even in big rewritings and new features and everything. It’s very important, the rework, when you work together this way, it’s much less. It gets significantly higher value.

Ola Hast: When you’re working on a new feature as well, we start by starting small with maybe a feature toggle with just us. Then we take a small subset of maybe people who work in the bank and then a small subset of customers, before we roll it out to everyone. We try to get feedback all the time.

See more presentations with transcripts

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Article: Building Strategic Influence as a Staff Engineer or Engineering Manager

MMS Founder
MMS Mark Allen

Article originally posted on InfoQ. Visit InfoQ

Key Takeaways

  • Many software engineers reach a career point where strong performance no longer guarantees advancement, and demonstrating strategic and organizational impact becomes essential for further growth.
  • With the help of allies, leveraging your manager and by listening to leadership, you’ll need to identify what is impactful for the business.
  • You may need to rethink your internal brand – how you’re perceived by senior colleagues and peers, targeting a few areas of significant scope where you can become seen as an organisational expert.
  • You’ll need to think probabilistically, and figure out how to handle biasing towards saying yes, without becoming a ‘yes person’.
  • This will all require time, patience and continuing to nail the basics of your day job. By starting small, you prove your ability to take on and deliver smaller projects, you’ll begin to build new relationships, your internal brand and get noticed for bigger things.

What makes a strategic conversation

Strategic conversations happen all the time, at all levels of every organisation. When we hear strategy, we think of the C-Suite talking about business trajectory and long term plan. Yet it also includes engineering and product leaders meeting to talk about a re-org, or even a team tech lead, senior engineer and product manager planning out the roadmap.

With each conversation, who is invited matters. To increase your impact and grow your career, you need to be involved in conversations that happen at a greater scope than the scope you have in your current role. This is where priorities are decided, where projects are given out and where the inputs into decision-making surface. Being involved will give you influence over this, help you direct and maximise your impact, and also allow you to bring better context to your day job, and to those working around you.

How to get invited

There are a few ways being invited to strategic conversations can happen. For the luckiest amongst us, position, domain knowledge or the expertise developed over a career will make being invited obvious – if you’re the company’s primary Kubernetes expert, you’re going to be invited to meetings on Kubernetes.

So let’s assume that you’re not an obvious invite. Your journey to getting invited to strategic conversations requires a few key approaches.

Identify what matters

It’ll be difficult to get invited to strategic conversations if you don’t know what matters in the organisation. If you don’t know where the important conversations are happening, find out.

It might be that your manager is kind or capable enough to already give you loads of strategic context. That’s contingent on both a) having a kind and good manager and not one that wants to hoard all opportunities for themself and b) having a well-informed manager.

So ask your manager how they get strategic context – or if your manager isn’t good at this, your manager’s manager. Or perhaps the product director. Ask someone who’s good at this: “Where do you get the strategic context that helps you make decisions? What meetings are most useful – are there any that I could join? What slack channels do you always keep track of? Whose posts always catch your eye?”

And observe what your manager does. At Isometric, my manager is our CTO. I’ve noticed that she’s incredibly engaged with our commercial operations – she’s really observant on the internal slack channels that our commercial teams dedicate to discussing our largest and most enterprise accounts, even if there isn’t an immediate need for the technology team to be involved. By adopting the same behaviour, I was quickly able to figure out who the most important partners are; how they work; what our partners’ priorities are; what our sales teams’ priorities are. I can now rattle off the top 25 companies we’re targeting for deals; I can tell you every company we signed each week for the last month. I’m able to bring all this back to my team to provide better context.

Be a beginner again

Being a beginner is about having curiosity and a keenness to learn. When we started off in software, as beginners, we embarked on a rapid growth journey in terms of technical expertise, fueled by this curiosity, willingness to ask questions and make mistakes. It was probably in this period of our career where some of the rapidest changes in our level of business impact took place.

Even today, as very senior professionals, we probably all still have retained that deep technical curiosity. How does the system work? What caused this bug and how do I get to the bottom of it?

And I think most, if not all of us are also curious about the user problems we’re solving – how does someone engage with the product we build, what went well for them, what worked better.

I’m describing a different curiosity here – curiosity for the parts of the business which aren’t part of our day-to-day job, but significantly contribute to how the business adds value. For an engineer, where typically our work is enabling internal or external users, this could mean understanding the realities of their work environments and lives in a deeper, more compelling way.

And to learn about this business you need to act like a beginner. When I joined Glovo, (a leading European on-demand delivery company), I jumped at the chance to go out and do actual deliveries – I was consistently one of the most active employees doing so. I would go to the Glovo Center – the place where couriers go to discuss their problems and challenges with ops managers. I was based in Barcelona but went on my own fact-finding trip to Castellon de la Plana to understand how product usage differed there. I spent half a day with the real-time operations team to see how they handled problems like thunderstorms disrupting deliveries or app outages.

Why did I do this? Through these activities, I learned a huge amount about how different parts of a several thousand person business worked and was able to bring all this context back to my team. I heard real-time feedback from users. I developed expertise about the business that very few people in engineering could match. And I got exposed to people from all across the organisation, building strong relationships. For many people outside of engineering, I was the only person they knew personally in engineering management.

Build strong relationships

All jobs and businesses work on relationships. To access more and better strategic conversations, relationships are essential. They’re even more important for engineering because in most organisations, engineering is down-funnel in finding out what’s going on.

Engineers are usually seen as implementers; we’re frequently the last to know. From a sales perspective, you might say that as an engineer, you need to move up-funnel. Opportunities, problems, and challenges usually come in through commercial and support teams, possibly moving to product, before going through rounds with leadership and finally making their way to engineering. By the time things get to engineering, it’s often too late to influence them, and only implementation details remain.

In a more technical organisation, the structure might look more hierarchical, but unless you’re the CTO, you can still benefit from moving up-funnel and finding out about problems earlier.

Relationships will help you change that by getting you to a place where you find out earlier. I can think of countless times in different roles where I was asked to take part in a tech evaluation of a merger, fly to another city to lead a workshop, or start leading a new team in China just because I was the person people knew.

Building relationships doesn’t mean setting up a load of cringey 1-1s to ‘quiz people about their job’. I try to find organic opportunities to learn more about someone’s job when they ask me for help. This might come when I’m intentionally being a beginner and doing something new. It might happen when my team handles a ticket filed by a commercial stakeholder, and I’ll help get it done faster or better than expected, then reach out to them and just be honest: “I want to learn more about our customers”. From that, I’ll try to find another way I can help make their life easier, and the relationship building goes from there.

When you have interactions with people, find ways to help them. One approach I use, when relevant, is giving feedback – or giving their managers feedback, without being asked to. Feedback doesn’t have to be solely positive; more people appreciate constructive feedback than you might realise, and it’s a great way to build an authentic relationship.

At Isometric, we’re really proud of our feedback culture. I was recently seconded onto a project working with our science team, many of whom are PhD world leaders in their field. Afterwards, one of my follow-up tasks was writing feedback about one of the scientists to their manager. This culminated in building a much stronger relationship with their manager, who has now asked me to lead a business-wide pre-mortem on a hugely important science project and work with them on another high-priority initiative.

Craft your internal brand

What is an internal brand? The definition I use is simply the words that jump into people’s minds when they think of your expertise, or conversely, when someone needs a topic expert, the topics where people think of you.

We all have things we know the most about at work – areas where our expertise is appreciated and respected. What are the topics where people would think of you as the expert? Now consider who these things give the greatest value to. Is it a particular team? Is it all the front-end engineers? Is it all engineering’? Is it the whole organisation?

When I joined Isometric about 18 months ago, we had lots of hiring to do (we still do), but my first priorities were learning about our tech, our product, our domain, and building out the team. So my six-month review came along, and I was told: “You’re doing well at what’s in your job description, but for the next six months, you need to focus on going beyond just what’s expected, and maximise your business impact”. My internal brand was something like ‘hiring, management, technical decision-making’ – what’s expected and nothing more.

I knew that a few weeks earlier, Google, Meta, Microsoft, and Salesforce had announced roughly a billion-dollar market commitment towards reforestation, and that Isometric was planning to enter this market. I also knew that measuring reforestation requires a lot of remote sensing and data processing, which wasn’t an area where we had existing expertise. Hiring would take time, so while planning for that, I became the organisation’s internal expert on the tech side of reforestation. I read papers on some of the sophisticated measurement techniques used to measure Reforestation, such as Light Detection and Ranging (LiDAR) and terrestrial laser scanning. I refreshed my knowledge of GIS. I met experts doing above-ground biomass mapping.

By the end of summer, I had worked with our team of PhD scientists to write a reforestation protocol, and today a significant number of reforestation projects are using the technology built on top of it. Reforestation expertise is now definitely part of my internal brand.

Choose the green button (sometimes)

So you’ve figured out what matters, been a beginner, made some relationships, built a brand, and an opportunity presents itself. You don’t know how long it’ll take or whether it will go anywhere. What should you do?

Imagine a hypothetical situation in which you were given a choice between either pressing a red button for a guaranteed 1 million dollars, or pressing a green button for a 50% chance at 50 million, which would you choose? It’s about a 50:50 split in how people respond. Would you press the red button for the sure thing, or the green button for the bigger but uncertain reward?

This is how opportunities can be at work – carrying on doing what we know how to do and do it well, or taking a risk by doing something we may be bad at, or could take a lot of time and go nowhere.

The good news is that work life offers many button-pressing opportunities.

But to get as many button pushes as you can, you will have to say yes… sometimes. The hard part isn’t knowing when to say yes to opportunities. It’s knowing when to say no, or when to say “potentially, tell me more”.

I have my own rubric for evaluating opportunities, which includes several considerations:

First, I try to determine whether what I’m being asked to do forms part of an initiative or is business-as-usual work. By “initiative”, I mean something that is planned, involves multiple people (often from different teams or functions), and has been intentionally prioritised over other initiatives. This could be joining a pre-planning group for a new cross-team feature, working with another principal engineer to evaluate a new technology, or being part of a working group to rewrite the promotion process.

Business-as-usual work might be bug fixes, opportunities to be a rotating chair of a workgroup, or completing an already-scoped team-level technical project that someone else no longer has capacity for.

This is all a guideline – I wouldn’t automatically say yes to all initiatives and no to all BAU work, but it helps me build a picture. I might consider taking on someone else’s BAU work if it’s requested by someone much more senior or someone I’m trying to build a relationship with from scratch.

Next, I evaluate if the opportunity will help me grow. Growth takes many forms: demonstrating new skills (like presenting a webinar), learning about a new part of the business, or working with technologies I haven’t used before, even if my involvement is small.

I try to avoid saying yes to too many things I’m “already good at” – partly because I have limited time, partly because as Head of Engineering my role is to find opportunities for others, and partly because there’s always the temptation to stay in the comfort zone doing what we’re already good at.

I also consider what relationships I’m trying to build. If someone unexpected reaches out, I’m super curious about why. Sometimes this is tactical – I don’t want to become the default “person from engineering who solves problems” for a team trying to bypass their product manager. But generally, I’m excited to build relationships with people in other parts of the company.

I still consider opportunities from people I already have strong relationships with too. It’s a minor factor, but still relevant.

As a leader, I spend a lot of time thinking about precedent-setting. If we allow an engineer to cut corners, what precedent does that set? If I approve an out-of-cycle promotion for one engineering manager, what precedent does that set?

The same applies to opportunities. What precedent is set by saying yes or no? Generally, saying yes makes people more likely to come to me with similar things in the future. Saying no means they’re less likely to.

Finally, I’m usually inclined to say yes to small things I can complete quickly, even if they seem trivial. Even small favours can build strong relationships.

When opportunities arise, it’s not binary. Instead of simply saying yes or no, you can say “potentially”, “keep me in the loop”, or “is there pre-reading I can look at?” or “is there already a Slack channel I can join while I figure this out?” The appropriate response depends on context.

If you’re in leadership, you might say “Sure, although someone else on my team might be better placed to take this forward – give me some time to figure that out”.

As long as the person asking has clear expectations about your answer, that’s okay. There might be a way to invest a small amount of time to determine if this opportunity is right for you.

Remember the green button analogy: if you press it 10 times, you’ll probably get nothing half the time. Opportunities are probabilistic – some will go nowhere and have no impact. That’s okay. Even if something seems like a great opportunity, it can still fizzle out.

I try to be vigilant about this and call time if something isn’t moving forward. But it does happen. Early on at Isometric, I tried introducing Metabase (a BI tool) because I strongly believed data would help us. I invested significant time, but with only a handful of enterprise users in our product at that point, the insights didn’t lead anywhere.

Months later, a new team member with a passion for data reintroduced Metabase, and it’s now gaining significant traction. When I attempted it, the timing just wasn’t right to make that impact.

Bringing it all together: A real-world example

Let me wrap up with a story that illustrates all these principles in action.

I mentioned earlier about acting as a beginner at Glovo by doing deliveries and visiting the courier center. Through these activities, I gained extensive knowledge about courier operations. I would often share my findings on Slack or in presentations, quickly building a reputation as someone with a deep understanding of the courier app (which my teams worked on) and actual couriers’ problems across different locations. I also developed good relationships with our courier operations team – all contributing to my internal brand.

I was asked to lead a couple of low-key, unglamorous projects that others tried to avoid – one involved introducing country-specific features following courier strikes in Italy, and another was revamping our incident management and on-call response system. By saying yes to these opportunities, my relationships with the courier ops team deepened further, and I developed more nuanced knowledge of courier challenges in different countries.

I also served as incident commander on call many times, bringing visibility across the company as I handled production issues during peak times (Friday and Saturday evenings), remaining calm under pressure in calls with senior executives. If you asked an executive to name three people at my level in a multi-thousand person organization, I’d always be one of them.

Soon afterward, a business-critical project emerged. Glovo had been threatened with a massive government fine – potentially over a billion euros – due to allegations that we were disguising employees as self-employed couriers. The same happened to Deliveroo, which chose to simply shut down in Spain to avoid the issue.

However, for Glovo, Spain was our home market – we couldn’t just stop operating there. So we decided to completely redesign our courier app. We had three months to meet the government’s non-negotiable legal deadline.

I was asked to lead the technical side of this multi-team initiative – probably the highest-profile project at the time in a business of almost 3,000 people. We revamped nearly everything and got the fine reduced to €79 million – still significant but affordable – and the project was considered a great success.

It was doing the things listed that meant it was me, and not someone else, that was given the opportunity to lead and succeed on this massively important initiative.

In conclusion

To increase your impact and get invited to strategic conversations, remember these key principles:

  • Identify what truly matters in your business
  • Become a beginner on topics in areas that interest you
  • Build strong relationships and deliver value to others
  • Use your opportunities and relationships to craft your internal brand
  • When opportunities arise, choose the green button (sometimes)

Remember that this takes time and happens step by step. It’s a virtuous circle that builds on itself. But if you apply these principles consistently, I’m confident you’ll be invited to more important conversations and significantly increase your organizational impact.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Podcast: From Code to Strategy: Drive Organizational Impact Through Strategic Conversations and User Focus

MMS Founder
MMS Mark Allen

Article originally posted on InfoQ. Visit InfoQ

Transcript

Shane Hastie: Good day folks. This is Shane Hastie for the InfoQ Engineering Culture podcast. Today, I’m sitting down with Mark Allen. Mark, welcome. Thanks for taking the time to talk to us.

Mark Allen: Thanks for having me.

Shane Hastie: My normal starting point in these conversations is, who’s Mark?

Introductions [00:55]

Mark Allen: So I’m Mark Allen. I currently work as head of engineering in Isometric, which is a large, fast-growing UK climate tech startup. We’re in the carbon removal space, so we issue carbon removal credits, and have a lot of technology that works on auditing and verifying very complex industrial carbon removals. But going right back to the beginning, I actually started out my career as an econometrician. I think the work I was doing, you’d called data science today, a lot of regressions, things like that and large economic models, but data science wasn’t coined when I started my career.

It was only two years into my career that someone came up with the term data science. So it was econometrics definitely back then. So did that for a number of years and transitioned from data science into data engineering, into software engineering, and did a whole range of different things in small companies, large companies, over about 10 years.

I transitioned into management about seven, eight years ago now, when I was working at Skyscanner. I had a great time there working on a number of different products. Moved to a company called Glovo, it’s like on-demand delivery, like DoorDash delivery but Southern Europe, where I graduated into a manager of managers. And by the time I left, I think about eight different teams were in my groups. I left to cofound a startup, we got VC backing. We built a popular-ish HR tool called Ourspace, workforce planning, that sort of thing. Didn’t quite get enough product market fit to raise Series A. And through the journey of doing that, I realized that I really wanted to work in things that had a meaningful positive impact.

So I joined Isometric and today I lead our engineering teams, coming up to about 20 people now. So that’s software engineering, it’s also data and also just starting on solutions and implementation engineering, although mixed and interesting thoughts to see how that goes, and maybe we’ll touch on that later. Lifelong builder. Before we started, I was just talking about how I was doing a lot of weird Raspberry Pi sprinkler systems at home this morning. So really keen on technology, but also really keen on how you organize companies to make them most effective and how you grow the careers of very senior people.

Shane Hastie: Meaningful, positive impact, as an engineer, what’s that mean to us?

Meaningful positive impact in engineering [03:19]

Mark Allen: It can mean a whole range of things, and I think, broadly, I’m very technology positive. I think in most cases technology has a positive impact, not in all, and I won’t call out any specific examples, but I think there’s also a spectrum, right? So I think about working in Skyscanner and I think liberalizing travel, and helping people find cheap flights and travel, experience of the cultures, largely positive. Some negative impacts over tourism, the environment, but largely, largely positive thing, I think. So I put that on the moderately positive spectrum, and I think it goes all the way to people doing amazing stuff to reduce loneliness through AI and solve deeply personal, serious problems.

At Isometric, we are really focused on the climate crisis, and so for me that would be the area where I’d start if I’m specifically looking at something where there is that positive impact. There’s a huge need for technological solutions in combating and mitigating climate change. So, yes, that’s how I think about meaningful impact. But I think, as I say, largely, most engineers are having a positive impact on people’s lives because ultimately people wouldn’t use and buy products if they weren’t enjoying them or getting some value out of them, in most cases.

Shane Hastie: We came across each other because you gave a talk at QCon London on strategic conversations. For an engineer, what is a strategic conversation?

Being engaged in strategic conversations [04:56]

Mark Allen: I think there’s strategic conversations that engineers, all engineers of every seniority are involved in probably every single day at work. So if you’re in a team, that could be how we decide to approach a refactor or how we’re going to break down a project into a series of tasks. If you are a principal engineer, a director of engineering, a CTO, they’ll probably have a much larger scope, and there’ll be conversations about what are our major technical investments over the next 12 months? Are we going to migrate back to on-prem, or what are we going to do? How are we going to staff all of our teams? Do we need to do a reorg?

There’ll be much broader scope conversations, but these conversations happen all the time. And my talk was how to go from the, I guess, smaller scoped conversations that you’re currently involved in and invited to, and get to seat at the table to participate in these larger ones where impact is likely going to be larger, both on the company and also potentially on the whole world.

Shane Hastie: So as an individual contributor, I might desire to step into those bigger conversations, but I don’t even know where to start. Where do we start? How do we start?

Mark Allen: It’s funny because these aren’t things that we usually get taught as engineers. It’s not why we get into software engineering, usually. We get into it to build stuff and see people use the thing that we’ve built. And so it’s a skills journey that people need to go on, and I think the place to start is even understanding and identifying where and what conversations are actually happening, and what the topics of those conversations are. And I would start by thinking about one level of scope more senior than me.

So if I’m a senior engineer in a team, I’m probably involved in most of the conversations that relate to that team. I want to be involved in the conversations that relate to the group of teams around me, a level above. So I would and I do speak to my manager, speak to peers and understand what’s on their mind, what big difficult strategic choices are coming up for them? What are they thinking about and then how can I contribute to them?

We all get invited to these all-hands-type meetings. It might be for your group of teams. It might be for the whole technology organization. It might be for the whole company, but there will be meetings where we all get invited to hear leaders speak.

Now, as a leader, I put so much time, and thought, and intention into what we actually say in those meetings because I want to signal to people the key strategic things we’re working on so that they then take them back to their work and focus their work around them, but also people who are interested can come forward and contribute to those things. So what I would say to people is, pay attention. Pay attention when leaders are speaking. See what they talk about. See what they focus on and use that to calibrate where you put your thoughts and put your time. So that’s where I would start.

Get out of the building and get to know your users [07:58]

Obviously, once you’ve identified a topic, there’s a lot more to do from there. So for me, the key things that one needs to do are to start building relationships with people currently working in areas you want to work in. I recall when I joined Glovo, I was working in the courier space, the rider space, so these people that do deliveries, the people we see out on the streets, on bikes and motorbikes with food in the back. I was working in this space, and I came in engineering, and I felt like I didn’t really know how the business operated that well.

So I wasn’t really able to input effectively into any strategic decision making. So I spent a couple of days actually doing deliveries myself. I went to the courier center where our operations team worked and where couriers would come every single day with questions about both the application that we were building, but just real life questions, like, can you lend me some money Glovo because I’m struggling to pay my bills and support my family this month?

I would just sit there, and speak to people, and just learn about the users and what their issues were. I went to our LiveOps center where we deal with real-time issues and so you’d have these huge dashboards. I literally went round the company, and went to every adjacent function, and spend time learning what they did.

And through doing that, I obviously got a lot of context about what’s strategically important, but I also built relationships, and that meant that when things came up and somebody needed somebody in engineering, I was just the logical person that people would go to. Yes, we know that guy, let’s bring him in. That’s not how I would like organizations to work, but it is. There is some reality that people knew I had context, people knew that I could input, and so that was very useful and it became my internal brand essentially.

Build your own brand [09:47]

I was the guy in engineering that knew all about this and that’s a really powerful thing that I advise people to think about. Think about your internal brand. How do people who are more senior than you perceive you? How do people in diagonal seniority positions, in other functions that collaborate with yours, how do they think about you and how do they perceive you?

And I actively jot down thoughts on this, words, and I ask people as well, what words they associate with me, what are the first things that come to mind, and really try and make them be things where I would want them to be. Because I think often, I recall when I joined Isometric and I think first six months, we have loads of hiring to do. I was trying to get to know the product, and after six months, if you’d asked anybody in the organization what words they thought of me, I think it would’ve been, hiring, strong, technical manager.

Maybe that would’ve been it. And that’s not super strategic, but first six months, and I think after 12 months it would’ve just been very different because I had very consciously focused on becoming a knowledge domain expert on a couple of really important strategic topics, reforestation being an example. I was one of the authors of our reforestation methodology and identifying these strategic topics, building these relationships and then building an internal brand around them was super helpful.

Obviously, there’s another part of this that once you build a brand, you do have to say, “Yes”, to the opportunities that start to come up, and you also have to say, “No”, to the opportunities that are probably not going to be a good use of your time, and you have to say, “No”, to the day-to-day things that you have previously been praised for.

Time is not free, you can’t create more time to do strategic work. You have to sacrifice something and this is the super hard part. All of us have things that we know we’re good at. It could be like you could be fantastic at just quickly identifying and fixing bugs in a microservice that your team own. You could be a really good at being a team-level manager, a team-level lead and making sure the team have great strategic direction. But if you want to grow, you have to figure out how to delegate those things.

You have to figure out other people to do them and you have to cut back on them. Stay away from the things you’ll get praised for, and go out there and into things you’re less comfortable with, and start taking them on, and saying, “Yes”, to opportunities probabilistically as well. So that’s a run-through of some of the topics that I covered in my talk.

Shane Hastie: These are generally not skills that are covered in any engineering training, and often in our professional development as engineers. How do I build those skills?

Developing strategic skills [12:35]

Mark Allen: I always think of these things as a virtuous circle. Firstly, you start small in and reinforce. There’s no quick path. You can’t just go and sit down with the head of sales for half an hour, and make friends with someone from marketing, and then suddenly you’re invited to a board meeting. That’s not going to happen, right? You have to start small and work on reinforcing these things. I’ve had a couple of really good coaches and mentors in my career, but I’ve been very intentional about saying to them, “This is the thing I want to focus on.” Selecting them because I think you are good at this and you can help me. Here’s the value I’m going to bring you. And really deliberate practice and intentional work on building these skills.

They say a great way of learning is teaching others as well. So once you get to six or seven out of 10, and you look around, and you see that you manage or collaborate with engineers who are maybe a little bit earlier on the journey, then you can also start helping them and working with them, and also learning from them because they’ll have ideas and input as well. Those are a couple of ways. Exposure’s also a way, just trying and learning by trying, which can be tough and can be hard.

I also mentor a number of people in my organization. Some of them report to me, some of them don’t, on this topic, and I’m also happy to give advice to people who also reach out to me as well. It happens from time to time that people message me on LinkedIn, send me an email. And I’m also happy to help people who want to grow in this part of the journey. I honestly have struggled to find really good books on this topic to recommend, which is unfortunate, but maybe a gap in the market, maybe should write something and see how it goes.

Shane Hastie: So coaching and mentoring, it is something that, as you said, it’s good to find somebody who’s maybe a little bit behind you on your journey, and help bring them along. But what does it take to coach and/or mentor somebody?

What it takes to coach and mentor others [14:47]

Mark Allen: I think it’s a reciprocal thing, and I almost think that more emphasis is on the mentee, the person being mentored, to be really intentional about it, what they want to get out of it. Not just go to somebody who is senior and successful and say, “Can you be my mentor and distil my knowledge?” I think you have to be very, this is the skill that I want to work on as the mentee. Do you think you could help me with this? And then as the mentor or the coach, you have to be upfront with yourself and figure out whether you can help the person or not.

I try and hold people to quite high levels of accountability. I try and refrain from just pontificating in sharing advice, and saying, I would share my thoughts and then say, “Do you think by the next time we meet”, one week, two weeks, four weeks, whatever the cadence is, “How do you think you can have practically applied this?” And try and set up a plan for them to actually put things into action.

I don’t find just theoretical mentoring, coaching, that effective or useful. So I think it takes that as well. It also takes resilience and a big heart. You won’t always get good results, and you’ll commit to something sometimes, and the other person won’t always reciprocate with their commitment. And the easy path then is to pull back from that or set up a massive gatekeeping against that. But I try and persist with it and try and commit to any given time having five to 10 people that I’m working with. Maybe not on a weekly cadence, but on specific topics. Yes.

Shane Hastie: Shifting focus a little bit, when we were chatting before the conversation, you mentioned the extreme user focus for an engineering team. What does that mean?

Having an extreme user focus for an engineering team [16:49]

Mark Allen: Yes. Yes, I mean, I think we live in a world now of product engineering in many companies where software engineers are not just asked to write code in a vacuum or according to requirements that are written by somebody else in great detail in a ticket, but are given much more high-level user expectations and then are required to break them down themselves, make decisions or provide recommendations on a lot of the implementation details. And they can only do that based on strong knowledge of the user and alignment with the kind of user value the company’s trying to bring.

So one of the things that we really do at Isometric is try and make sure every engineer has a deep understanding of the problem and a deep understanding of the user. And we see from that the ability to ship things quickly, that are the thing the user, radically increases.

You don’t have this back and forth about, oh, I’m stuck. I don’t know what to do. Engineers can make decisions that are right enough of the time to be worth them not having to have this conversation, stop, pause, go back to the designer, go back to the product manager, set up a new user call in seven days time to ask the user some questions.

Some of the ways we do this, so our engineering team spends a significant amount of time interacting with users. That could be being involved in Slack channels, asynchronously, helping them solve problems directly rather than going through a customer support flow. Engineers join calls with our top customers. In the beginning, all of our engineers were given a group of our top customers and they would be on calls with those customers every week, answering technical questions, going through the product, explaining APIs.

We had four people from our team go and run a series of workshops in San Francisco for San Francisco Climate Week. So engineers actually going to people removing carbon dioxide from the atmosphere, in their facilities, in their offices and sitting down for half a day, and understanding their problems, talking through the product, talking through the roadmap. Yes, we have engineers go on site visits and go to facilities in the UK and around Europe as well. We obviously have the product analytics that many people have, and we have engineers setting up dashboards in Metabase using BI tools to understand user journeys. And we obviously organizationally reward all this as well.

We have a culture when, when people show a huge amount of user focus, it’s recognized and when people are reluctant to engage with users and say, “Look, I’m..”. And this doesn’t really happen, but when people say, “I’m an engineer and it’s just my job to put on my headphones and write code”, we would be very intolerant of that and try and align them with what we’re trying to do as an organization. I think the proof in the pudding.

As we know, it’s incredibly hard to quantify engineering productivity in a meaningful way. But even looking at number of impactful production changes as a proxy metric, our top engineers ship 40 to 50 commits, changes to main every week, which is a number that I’m pretty proud of, particularly because, looking at it qualitatively, these are our substantive and meaningful, impactful changes as well. They’re not just fixing a typo in a README or merging a dependency update.

Shane Hastie: Some real get out of the building and go and meet people where they’re at. Another thing that I know from our conversation before that you have a passion about is on-call incident management and doing it well. What does that look like?

Excellence in on-call incident management [20:43]

Mark Allen: I’ve always been really fascinated by incident management. I remember working at Skyscanner, fantastic team, leading global availability. Principal engineer there, John Paris, fantastic. The team around him, really, really good. At Glovo was lucky enough to lead a lot of the changes we made to our incident management practice and bring it in line with best practices, introducing incident managers on call, that sort of thing.

And at Isometric, we use incident.io, which product I really like, and I’ve been working very hard with our most senior engineers to make sure that we are excellent at on-call. I think it comes back to that user focus. When a user experiences pain, holding yourself to incredibly high standards to both resolve the incident but also be able to speak to them and say, “Look, this isn’t going to happen again. Our standards are so high that we are going to get to the root cause of this and fix it”.

A thing that I’ve been thinking about a lot is that I think in all organizations, the way that you improve incident management is by narrowing the gap between the best and the worst people, like apps doing it. And best and worst are very reductive, but I think we’ve all worked with people that are complete on-call heroes.

They just revel in, there’s an emergency situation, get to the bottom of the problem quickly, fix it, go super deep, think about the root causes, implement the fixes, speak to customer and say, “We had this issue three minutes ago. You’ve not even noticed yet, but by the way, we’ve fixed it already and here’s our assessment of impact on you”. I’ve always met people who, in every organization, who are just really good at that. But I’ve also worked with a lot of people that it’s not their natural thing. It might be the pressure.

It might be that they’re just a bit earlier on in their careers or have lower tenure at the company and maybe don’t have enough of a understanding of the code base or parts of the platform to tackle on-call issues in a confident and fast way. So we do a lot to really focus on lifting those people up and improving their standards. So there’s a culture element, which is about a huge amount of recognition for people that do well on call, and then having them talk through their methodology and what they did.

So we have company awards at Isometric, as many companies do, and one of them is called Do It Right, which is one of our operating principles. Build things to a high standard, be rigorous, be robust. And across the whole company and only a third of the company work in technology, but across the whole company, it’s been great to see that award, which is only given out once every six months, be given out to engineers for doing great jobs in on-call incidents, specific on-call incidents.

So there’s that culture element of reinforcement and then the knowledge sharing, which we do every week. We have an on-call run through in an extensive doc, but then summarized by the engineers who were on call, about specific learnings for people, run throughs of how they solve the thing.

Sometimes supported by a Loom recording of here is what I did replayed, so other people can go and watch it. We have the engineers that we think are the best, working actively with other engineers on improving their own core skills. We obviously have run books and materials to support, great tooling incident.io, really good observability thanks to Datadog and Sentry. And, yes, it’s just something that we talk about a lot. I’m the head of engineering, I manage managers and very senior engineers, and my boss is the CTO, and both of us get stuck into incidents. We get involved, ask questions.

We both know how to figure out what’s going on, looking at logs, looking at traces and spans, then help get to the bottom of things. And I think that kind of leadership commitments as well, not in a micromanage-y way, but in a positive all hands on deck here. This is a super important thing for us to get right as an engineering organization, it’s also a really important thing to emphasize.

So I think a combination of those things, what we try and do on call. And of course the final thing I’d say, and maybe I didn’t say this because it’s obvious is, everyone in our engineering org is on call as well. So we don’t have a specialist SRE team. All the product building teams are also on call. You build it, you run it, that kind of ownership thing, really making people feel like owners of the production system and not just people who write code that somebody else then puts somewhere in the cloud somehow.

Shane Hastie: Mark, a lot of really interesting points and some great advice in here. If people want to continue the conversation, where do they find you?

Mark Allen: I’m on LinkedIn and I’m pretty good at responding. Obviously, a lot of my job is hiring and recruitment, so a lot of people messaging me on LinkedIn about positions. So I have to be quite on top of that. So you can definitely get in touch with me there. Sending over a short message about what I might be able to help with is the way I would go.

And then if I can, we might start talking by email, set up a call, something like that. I feel very privileged that in my career I’ve had people that have helped me on my journey, that didn’t have to and didn’t get paid for it a lot of the time. And so, yes, I really am committed to paying that back for people as well who want to get in touch.

Shane Hastie: Paying it forward. Thank you so much for taking the time to talk to us today.

Mark Allen: It’s been a pleasure. Thank you for inviting me.

Mentioned:

About the Author

.
From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.