§ 2 Infrastructure Alignment
Context
Developers make use of a wide variety of tools in their software development activities, here called globally as infrastructure.
Problem
When developing software, the tools in use play a significant role in one’s cognitive processes and, as such, their DX. The current infrastructure, i.e. the tools in use, influences how we think and act in our work, and can have a beneficial or detrimental effect.
How can we maximise the effectiveness of the development infrastructure in use?
Forces
- The tools in use can support development activities through comprehensive feature sets, but steep learning curves, usability issues, or missing capabilities can hinder productivity.
- Having the right skills is essential to get things done, but reaching the necessary competence can take time and effort.
- We want our tasks and activities to be productive and relevant, but it can be hard to see which ones are helpful and which ones are wasteful.
Solution
Reflect on the conditions that influence how your work tasks are carried out, improving upon them if possible. Develop your skills, assess whether the tool is right for the job, and review the activities performed for their usefulness.
A developer should find the right factors for effective development within their infrastructure. This task involves aligning our needs with three significant factors:
- Know-how: The developer should know how different tasks are conducted and how they can achieve their goals. This knowledge is not limited to finding the suitable features in the tools to reach the intended result, but also includes taking a better approach over others (§5 Adequate Skills).
- Tool support: The developer tools should be capable of conducting the necessary development tasks and be a suitable addition to their workflow, supporting the developer’s workflow (§6 A Shoe That Fits).
- Activities: The activities performed by development staff should be relevant to current goals and objectives, eliminating spurious tasks and actions. This lets developers focus only on what matters and reduces their cognitive load (§7 Meaningful Activities).
Some of these factors may be more actionable on than others, depending on the situation or the tools in use: while it is crucial that we can effectively meet the technical and logical requirements of the desired end result, having a lower skill level than expected or having to work on tasks that do not seem immediately pertinent will not impede software development tasks.
Examples
- Frank often contributes to an open-source project, but he has lately been feeling frustrated with the experience. Despite being comfortable with the tech stack and the practices used by the project, his IDE has been working against him lately, with performance becoming more sluggish and new features clashing with his workflow. He decided to employ A Shoe That Fits to find a new IDE that would be a better alternative for him.
- Gillian’s team has hit a snag. She, along with her colleagues, have been feeling drained by the number of meetings they have been having for the current development milestone and have not made as much progress as they would like. With support from their manager, the team employed Meaningful Activities, sectioning off a part of their daily schedule for development time and starting to do pair and mob programming to help with knowledge sharing, code ownerships, and overall development speed.
- Harper has started a new semester and will have to work on a class project. Reflecting on their development infrastructure, they notice that while the tools are adequate and and the tasks they will work on are all productive towards the project, Harper isn’t very much familiar with the programming language required for the project. As such, they decide to employ Adequate Skills to build their skills and be more comfortable working for the project.
Consequences
- Ensuring a developer has the right skills and tools enhances the cognitive processes required for software development.
- Removing obstacles regarding skills, processes, and tool usage enables a developer to focus on their work and enter a flow state.
- Improving a developer’s skills, adjusting their processes intentionally, and ensuring they have the best tools for the job improves their productivity, as well as the cognitive aspects of their current DX.
- Making changes to the infrastructure can require the involvement of team members, organisational stakeholders, or even tool makers. If possible, a developer should gather their support to enact change.
- While it can help a lot, improving the development infrastructure may not be enough to solve the issues a developer has with their DX; they may also need to target how they feel about (§3 Good Feelings) or how they value (§4 Well-Valued Contribution) their work.
Last updated: December 18, 2025