Conscientiousness In The Software Realm
Conscientiousness in the Software Realm: How can software engineering teams be cognizant about their productivity and how does it relate to their organization?
Table of Contents
- Defining software engineering organization and productivity
- Adapting to the virtual environment
- Who should be accountable for a team’s productivity levels?
- How would adding additional roles on a team affect productivity?
- Wrapping up
- References
Defining software engineering organization and productivity
Developing successful and usable software should be the goal of any team, but how do we ensure proper organization and productivity throughout the process? Here, I plan to discuss ways that modern software teams can have fulfilling days and will tie in the organizations of their teams to explain how teams have had to adapt to the virtual space. First, what does team organization look like in the software space, and what roles are involved? According to Amy Ko, software engineers/designers typically interact with marketers, product managers, sales, and support, thus these are the essential positions that make up a team.
In another article, Ko also writes about what productivity looks like for a software team. However, it seems productivity is difficult to strictly define, so instead, it’s important to think about the factors that can benefit and/or hinder production and measuring individual production based on what a typical workday might look like. And lastly, I will mention ways that productivity might be harmed in the software workplace, as my article will hopefully diagnose reasons that developers struggle. Ko defines waste as anything that does not contribute to the software’s usage, value, or its customers. Some popular examples are building the wrong feature, reworking previously written code, distress, knowledge loss, and/or ineffective communication.
Adapting to the virtual environment
Since the COVID-19 pandemic, there has been a drastic increase in the number of companies who have shifted their main work environment to working from home. While there are many companies that do hybrid schedules, where team members are in the office are few times a week, this opportunity has provided flexibility for many, giving software developers options. Another great advantage of the virtual workspace is that it provides chances for people to work anywhere around the world, which can in turn create more job opportunities. This might also increase the diversity of teams as software jobs that permit full-time employment will allow their workers to live anywhere in the world. Thus, this creates the potential for more perspectives and culture to enter the software development workforce.
However, teams have had to adjust to the challenges of working from home. It’s imperative for teams to have a platform such as Teams or Slack to ensure effective communication. These platforms also allow for virtual team meetings, which can help foster discussion if participants are focused and present. While it is not essential for team members’ cameras to be on, it’s important that all team members are active. This way we do not lose both productivity and the effectiveness of in-person team meetings by moving them virtually.
One way to connect a team’s adaptation to the virtual shift with their organization is by looking at how many roles a team incorporates. The more roles a team has, the more meetings and communication a team would require, thus increasing the possibility of waste negatively affecting the team’s progress.
Who should be accountable for a team’s productivity levels?
It is critical for teams to work as a whole and they should all be confident in setting the same overall goals as each other. However, if productivity is to drop, there must be accountability to save team cohesion. Therefore, it is primarily up to the team’s leading manager to take responsibility for any misdirection. The team manager should be setting goals, managing workloads, and confirming their team members have support to meet their deadlines. This person will most likely engage in individual/group check-ins with their team, resolving conflict and providing constructive feedback.
Down the chain of command, it’s up to the project manager to steer the project in the right course of direction so set deadlines are met on time. It’s also their job to coordinate with other supporting roles on the team like marketing and sales to ensure the quality of the product is only being progressed. From there, it’s up to engineers and developers themselves to take accountability when their productivity levels are low. As part of the job, when working in software development, developers must complete assigned tasks on time, be in frequent communication with their team, and look to improve their skills where and when needed to benefit the team.
How would adding additional roles on a team affect productivity?
In the article/chapter on software organizations, Ko mentions how adding additional roles such as data scientists, researchers, and policy specialists are possibilities as well. These jobs can both benefit and complicate the development experience. Some benefits can be found from enhanced expertise, innovative solutions, improved decision making, and preventing risk. Overall, bringing in these additive hires could introduce more opinions to improve the value of the software being created. Yet, there can still be complications and increased waste when more people are added onto a team. These complications may include integration issues (ensuring all roles are properly aligned with the software development cycle), delays due to decision making, and resource allocation.
Other required roles in a company and their ensuing software team include marketing, support, and sales. The three of these positions likely have much more direct interaction with the software than previously mentioned “additional” roles, and their benefits to the team impact the project greatly. With that in mind, sometimes these roles can inadvertently slow the cycle down even though it might not be a negative thing. The roles often require teams to slow down their development to align with market needs and review quality. These tasks will often come in the form of release candidates, review of software requirements, and frequent communication/meetings between product managers, sales, and developers. That’s why it’s so important that teams continually check back in on their organization and role requirements, this way they can omit as much productivity loss as possible.
Wrapping up
To conclude, software teams should always be cognizant of their productivity levels and should be introspective about their organization. It’s crucial for teams to fill the essential roles with qualified people, moreover, there should be room to grow with secondary roles as well. This would likely help speed up the development process, however, this post has made aware the complexities that additional roles might add onto the already high burden of a software engineering team. That being said, teams must also be wary of transitioning to the modern-age virtual workplace and should understand how accountability moves throughout the chain of command as well. These aspects encompass how a team can modify its thinking of being the most productive they can be while considering their organization. Thanks for reading!