Daniel Pinho

§ 7 Meaningful Activities

Context

Software developers, in their work, employ a wide variety of tasks to get things done. From dealing with requirements and documentation, to communicating with colleagues and stakeholders, developers cover many types of work in addition to coding tasks.

Problem

The time and energy developers spend on the job is limited, with budget constraints and project deadlines to be met. Choosing the right tasks and activities is important for developers, to ensure they can deliver quality software on time without getting burnt out.

What activities should development teams focus their time on?

Forces

  • Collaboration requires communication, but too many messages and meetings can take over a developer’s time, burying the work that actually moves things forward.
  • Stakeholders can set priorities with a broad view of the big picture, but giving developers autonomy often accelerates delivery and increases ownership.
  • Written documents can be a useful way of sharing knowledge asynchronously, but writing them can consume a lot of time only for them to go unread or quickly become stale, turning effort into waste.

Solution

Select activities and actions with intentionality to eliminate spurious or unfocused tasks and keep only what definitively drives progress to the work at hand. To that end, reflect on what is done during the day and remove obstacles and redundancies.

Obviously, tasks directly related to programming bring value — coding new features or fixing bugs are examples of tasks that lead to visible progress in the product.

Knowledge sharing tasks bring value by making the developers and the stakeholders more aware of the development context. Meetings provide spaces where this can be done, and having the right people participating can boost team knowledge. However, this is not always the most ideal way to approach knowledge sharing. An e-mail or a report can be, at times, more effective than a meeting, and has the benefit of being able to be archived, leading to the generation of §15 Written Knowledge.

There are practices that combine programming and sharing knowledge and, as such, bring their own kind of value: pair and mob programming, performing code reviews, and checking documentation and researching are activities that provide direct advancements in the product while also enabling the development team to grow their knowledge.

Being mindful of the team’s energy is important, as this will maintain everyone engaged and ready for tasks that may be more intense. Ensuring there is some slack time between intense and challenging tasks gives developers time to restore energy through work on less challenging tasks and learn through experimenting.

There will be times where the actions employed by the team will require some fine-tuning. This will happen every now and then. When the development team notices they are taking actions that do not bring value and are wasting time and effort, they should act upon it and work towards removing said sources of friction.

Examples

  • Agile methodologies, such as Scrum[1] and XP[2], provide starting points on how developers should focus their work, such as employing certain practices, habits, and ceremonies (e.g. the Daily Scrum in Scrum, or the Daily Stand-Up in XP). These can and should be refined to better fit the team’s work habits, as there is no one-size-fits-all solution[3].
  • Team retrospectives provide an instance where developers and their team members can assess how they are working and where there is room for improvement; by identifying what went well and what caused issues, they can adjust their behaviour accordingly.
  • Continuous integration and deployment pipelines automate trivial and repetitive tasks, enabling developers to focus on higher-value work while reducing manual overhead, thus making their activities more meaningful and productive.

Consequences

  • Choosing appropriate tasks will increase the team’s efficiency and speed while not bringing added stressors to the team.
  • Having an intentional mindset regarding the tasks that are chosen can, in an initial state, shake up how the team interacts with stakeholders and other organisation personnel; as such, having trusting Stakeholder Relationships and knowledge about each other’s needs is paramount to reducing communication and collaboration barriers that may show up.
  • Development teams can be too overzealous and overlook tasks that bring value but do not seem that way from within the team, such as, for example, some meetings with stakeholders. Developers should still make informed decisions and have support from the organisation.

This pattern, along with §6 A Shoe That Fits and §5 Adequate Skills, deals with the ways developers interact with their work at a cognitive level, as addressed by §2 Infrastructure Alignment.

Well-chosen activities help with building skills per §13 Practice Makes Perfect, and it is something that benefits from a good §8 Team Players culture.


References

  1. K. Schwaber and J. Sutherland, “The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game.” Nov. 2020. Available: https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf
  2. K. Beck and C. Andres, Extreme Programming Explained: Embrace Change, 2nd ed. Addison-Wesley, 2004.
  3. F. P. B. Jr., “No silver bullet - essence and accidents of software engineering,” in Information processing 86, proceedings of the IFIP 10th world computer congress, dublin, ireland, september 1-5, 1986, H.-J. Kugler, Ed., North-Holland/IFIP, 1986, pp. 1069–1076.

Last updated: December 18, 2025