BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Agile Conferences 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.

  • 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.

  • 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.

  • How Moral Values and Ethics Impact Software Delivery

    Ethics and morality ensure fairness and integrity, which according to Anton Angelov is crucial for software professionals and society. The rise of technological advances, globalization, and demographic changes pose challenges to maintaining moral values in software delivery. Angelov believes that it is crucial for the QA industry to have a strong ethical framework.

  • How to Prevent and Repay Technical Debt: What Teams, Tech Leads and Managers Can Do

    Tech leads, project managers, and managers can prevent technical debt by giving software developers more time; in addition, they can plan for spare time and refactoring sprints to allow teams to improve code. To prioritise technical debt, development teams can show how much time we can save if we invest, and how complicated the software will become in the future if we don’t repay technical debt.

  • How to Develop a Culture of Quality in Software Organizations

    According to Erika Chestnut, software organizations can develop a culture of quality with a clear commitment from leadership, not only to endorse quality efforts in software teams, but also to actively champion them. This commitment and advocacy should manifest in data-driven decision-making that strikes a balance between innovation and quality, ensuring that we maintain the highest quality.

  • How Continuous Mobile Development Can Benefit from Test Automation

    Test automation can support continuous mobile software development by reducing manual testing efforts, minimizing human errors, and accelerating the release cycle. Burak Ergören shared his experiences from automating their mobile testing at QA Challenge Accepted 2023.

  • Why Stable Software Teams Aren't Always Best: Self-Selection Reteaming at Redgate

    There are advantages to having the same group of people stay together, especially in achieving a time-bound software development project. However, in a world where we increasingly see product or stream-aligned teams who own long-living software from creation through to delivery, operation, and ongoing improvements, then optimising for very stable teams is not the best idea, Chris Smith argues.

  • Learning from Big Tech’s Engineering Productivity Metrics

    Gergely Orosz and Abi Noda published a Pragmatic Engineer article titled Measuring Developer Productivity: Real-World Examples. InfoQ reports on insights from Noda’s survey of engineering metrics used across 17 well-known tech giants. Noda found that rather than wholesale adoption of frameworks like DORA, leading teams use a mix of org-specific qualitative and quantitative metrics.

  • Using ChatGPT for Amplifying Software Testing Practices and Assisting Software Delivery

    Artificial intelligence can assist software delivery and be used to automate software testing and optimize project work. Dimitar Panayotov uses ChatGPT to generate test data, create email templates, and produce explanations based on test results. This saves him time that he can invest to become more productive.

BT