InfoQ Homepage Artifacts & Tools Content on InfoQ
-
Improving Mobile Test Automation with Continuous Integration, Central Logging, and Metrics Analysis
Continuous integration can enhance automated mobile testing. Test data from multiple mobile devices running parallel tests can be consolidated to support monitoring. Jira tickets from manual testing can trigger the build process to ensure that testers will have the correct software version to do the manual testing.
-
Enhancing Developer Experience for Creating Artificial Intelligence Applications
For one company, large language models created a breakthrough in artificial intelligence (AI) by shifting to crafting prompts and utilizing APIs without a need for AI science expertise. To enhance developer experience and craft applications and tools, they defined and established principles around simplicity, immediate accessibility, security and quality, and cost efficiency.
-
Catalyzing Change in Software Organizations: Find Allies, Invite People, and Sustain Engagement
Much of the change we experience in software organizations is coercive. Software engineers, architects, and people in software engineering management roles feel they cannot spark change without formal authority, Eb Ikonne mentioned at QCon London 2024. To catalyze change, he suggested identifying allies, inviting people to participate in the change, and sustaining engagement through storytelling.
-
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.
-
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.
-
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.
-
The Upsides and Downsides of Open Source Adoption
Benefits of open source projects are supporting rapid innovation, the flexibility provided to customize and adapt tools, and transparency of the code which can enhance security efforts. The downsides are that security by obscurity doesn’t apply, open source is potentially prone to abuse, and when open source tools are not backed up by companies, it might result in a lower level of maintainability.
-
The Value of Repaying Good Technical Debt
Bad technical debt is the stuff that has been lingering around; teams need to work around it or fix the fallout as a consequence of this bad technical debt. Good technical debt is intentional, enables benefits for the organisation, and is controlled. Teams can use a disciplined approach for managing and repaying technical debt, for instance by using the wall of technical debt.
-
Applying the Analytic Hierarchy Process for Tech Decisions
The analytic hierarchy process uses pairwise comparisons and scoring for criteria between the alternatives to give insights into what the best option is and why. John Riviello spoke about applying the analytic hierarchy process to decide what JavaScript framework to use at QCon New York 2023.
-
How to Create a UI That's Both Robust and User Friendly
The key challenge in building UIs is balancing ease of use and maintainability, with scale and complexity. It requires thoughtful component design and an understanding of common usage paths to create a UI that's both robust and user-friendly. Automation can be a game-changer when it comes to improving efficiency and consistency in your codebase.
-
A Ruthless Approach for Better Security by Identifying Key Risks and Ignoring Others
Risk management techniques can be used to decide which security and privacy aspects are important. You can simplify the risk impact calculations by identifying low, medium and high and critical losses, and by taking likelihoods from the industry to do likelihood calculations. This helps you to identify a few key risks, and ruthlessly ignore the rest.
-
Sustainable Software Systems Using Circular Economy Principles
The circular economy is a framework that aims to keep products and materials in use for as long as possible, reducing waste and pollution, and regenerating natural systems. As practitioners or change enablers, we can support sustainable product development using concepts from the circular economy in our daily work.
-
A Culture of Continuous Experimentation: Learnings from QCon New York
At QCon New York 2023, Sarah Aslanifar presented Building a Culture of Continuous Experimentation. She showed how fostering a culture of continuous experimentation and leveraging the principle of continuous learning can drive efficiency, eliminate waste, and improve product outcomes.
-
Testing across a Large Number of Inputs with Property-Based Testing
Property-based testing is an approach that involves specifying statements that should always be true, rather than relying on specific examples. It enables you to test functions across a large number of inputs with fewer tests. Every run of a property-based test will use different inputs, which can give you confidence your code works in a general case.
-
What Software Developers Can Do to Learn Effectively
Software developers are constantly learning new languages, frameworks, tools, and techniques. It can be challenging to decide which topic to learn, estimate our competence level, prevent becoming overwhelmed, and keep our learning effective. For better learning, break it down into realistically sized phases, and repeat the same topic several times to really get to experience it properly.