InfoQ Homepage Culture & Methods Content on InfoQ
-
How to Do Sustainable Software Development
Software sustainability includes computing for environmental purposes and using resources appropriately. According to Coral Calero, software engineers need a holistic way of looking at software and should be aware of the environmental impact of software. Several tools and frameworks are available for software engineers to do sustainable software development.
-
QCon London: Scaling Microservices Architecture and Technology Organization at Trainline
During the recent QCon London conference, Trainline’s CTO spoke about the evolution of the company’s system architecture and organizational structure over the last five years. The company had to adapt to market changes and growing customer expectations by improving the performance and reliability of its technology platform.
-
Application Security Optimised for Engineering Productivity
Laura Bell Main presented a webinar on 2024 trends in application security. She called out a shift from siloed DevSecOps initiatives to building an understanding of dev friction, and presenting solutions which optimise engineering productivity. Nikki Robinson also recently spoke about the importance of taking a developer experience targeted approach to security platform engineering.
-
Fix Your SDLC before Adopting Gen AI in Your Organisation: Bannon’s Call to Action at QCon London
During her keynote at QCon London, Tracy Bannon, architect and researcher at MITRE, argued that AI will be able to enhance the software development lifecycle, though currently it’s at the “code completion” rather than “code generation” phase. Throughout her presentation, she continuously stresses the importance of keeping humans in the loop and fixing your company’s SDLC before embracing AI.
-
Building a Platform to Gain an Unexpected Competitive Advantage: Ranbir Chawla at QCon London
During his QCon London presentation, Ranbir Chawla presented the journey his team took from moving from an “architectural perfect storm” and a highly manual operational system to a product company with a modern event-based architecture that can be released in < 1 hour. The company now focuses on providing real business outcomes to its stakeholders, and ensuring developers find joy in their work.
-
Adopting Agile by Increasing Psychological Safety in a Software Team
To test the agile way of thinking, a software team worked on their psychological safety with kick-off exercises, sharing coffee breaks, celebrating wins, a stand-up question, and 1-on-1 talks. This helped them to increase psychological safety in their software team.
-
QCon London: The Art, Science and Psychology of Decision-Making
At QCon London 2024, Hannes Ricklefs, head of architecture at the BBC, gave a well-received talk on decision making. Ricklefs summarised the key reasons behind applying art, science and psychology to the discipline of decision-making, focusing on appropriate methodologies to use and the effects of biases on our ability to make good decisions in both a personal and business context.
-
Visual Studio 17.10 Preview 2: GitHub Copilot-Powered Pull Requests, SSDT Support for VS in ARM64
Microsoft has released Visual Studio 17.10 Preview 2. This release contains features regarding GitHub Copilot-powered pull requests, support for SQL Server Developer Tools in VS on ARM64 and support for Garbage Collection Insights in Managed Memory Window.
-
Enabling Software Platform Adoption with Self-Service and User Engagement
In order to scale a platform, it has to become a self-service product with software engineers and managers engaged, taking advantage of new technologies. A stakeholder engagement program was established with senior engineers and managers across the company, explaining how the new tools can increase developers' productivity and team velocity.
-
The Impact of Testing in Software Teams
Communicating quality gaps, holding space for good testing, and writing automation are some of the ways that testers contribute to software teams. According to Maaret Pyhäjärvi, we need to think about testing, not testers. Collaboration and having conversations between team members can result in valuable impact that changes the product and the experiences of our users.
-
How to Tame Technical Debt in Software Development
According to Marijn Huizenveld, discipline is key to preventing accumulating technical debt. In order to be disciplined you should make it difficult to ignore the debt. Heuristics like fixing small issues immediately, agreeing on a timebox for improvement, and making messy things look messy, can help tame technical debt.
-
Fostering an Experimentation Culture in Software Development
An experimental culture is a way of thinking; it is about trying new things and learning together, solving complex software problems, and creating value together. According to Terhi Aho, an experimental culture in software organizations requires strong management support and psychological safety.
-
How Continuous Discovery Helps Software Teams to Take Product Decisions
Continuous discovery for product development is regular research that involves the entire software product team, and that can actively inform product decisions. Equating continuous discovery to weekly conversations with one or more customers can be misleading. Combining quantitative and qualitative research methods can help software teams gather data and understand what is behind the data.
-
Making Software Development Boring to Deliver Business Value
Given there’s a limit to our cognitive abilities and our comprehension of complex systems, Corstian Boerman argues that software development should become boring. He suggests moving infrastructure out of the way so that it does not burden the day-to-day development process, and focusing on delivering business value in a predictable and repeatable way.
-
What Software Developers Can Do to Prevent Forgetting or Overlooking Things
According to Ilian Iliev, software developers tend to forget to do things they do not have to think about every day, which can cause delays or impact the functionality of the product during a software project. To prevent overlooking something, he suggested starting early with automating deployment, setting up error logging, and using lists and reminders of things that were forgotten previously.