AI discussion is now ubiquitous, and it impacts developer community the same way as other enterprise roles. They are expected to produce 'more' in the AI era. To define 'more' in terms of productivity is quite challenging and for our context it is still subjective. Many organizations measure developer productivity, even though it is far from perfect. Some organizations can do better with developer productivity metrics than others. Whether your organization measures productivity or has implemented the best tools AI has to offer, the situation is the same. There is always a high degree of technical debt, a shortage of development staff, short cuts are in plenty, simple maintenance items take much longer to implement, and heroic effort is often needed to make the ends meet. Many of the organizations face these challenges regardless of development model i.e. in-house, offshore, or hybrid model.
We take a slightly different stance for increasing productivity. Measurement in our model is not required and we just rely on doing a few basic things right. We believe teams who do these things can reap significant benefits and results will automatically reflect that. Following are those items, since we are in AI era, AI tooling is off course part of it:
Off course buy them AI Tooling such as GitHub Copilot or Microsoft Copilot or others depending upon your situation. AI tooling is table stakes. However just buying them is not sufficient. Patterns where developers can use it successfully should be shared with other teams and should be a topic of discussion in internal developer meets. This brings in the multiplier effect. A centralized document repository for successful usage patterns can be a start too.AI tooling should be enabled for all low hanging fruit type use cases. Consider AI tooling as an extension of your team and if AI tooling can do a task, delegate to it.
This is the most critical aspect of rampant delays. Raise the visibility of blockage. If the team follows agile methodology and meets periodically for updates such as daily standup, this should be the starting point of developer update. I am blocked, this is why and that is what I am going to do about it. Keep a blockage thread always active in team communication channels. Any time a person is blocked, there should be a post in the channel. Team moderator should actively view the channel to remove impediments. There should always be prioritized work ready for development; In case a developer is blocked, and it will take significant time to resolve.
You will often hear, failing test cases is blocking the pipeline. Blocked pipelines are a major time consumer for delivery. Ensure all the pipelines and or builds have alerts associated with them. Any issue and it needs to be dealt with appropriate urgency. One of the ways is to have a team member dedicated for half of their time to deal with non-urgent but important issues such as these. Smooth functioning of pipelines will ensure delivery happens when you need it the most. During times of urgency, these types of issues are deprioritized with bypasses or workarounds etc. Though ensure that you come back to it and resolve appropriately once urgency is dealt with.
Another issue teams faced is limited or limitations of test environments. This is worth investing in and saves time which is unnecessarily wasted in test region related discussions and unable to test situations. If you are working on brand new developments these can be built in from the get-go. For new systems, building an extra test region will give you dividends for years to come. However, for existing systems, this is easier said than done. Mostly due to interconnectedness of applications. For existing systems, whenever there is some time available for teams, this should be the priority. This can be a great mini project for interns to automate as well.
Meetings are a great consumer of time. Many a time developer walk out of the meetings thinking why I was in the meeting. Make it a team priority to question the purpose of the meeting and if it can be done via messaging or email. Team members should be empowered to skip the meeting if they do not have anything to contribute to the meeting. Even though we all are aware of meetings churn, will still are unable to avoid it. A deliberate culture is required to overcome this. If team leaders or leadership practice this, this is easy to cultivate. It goes without saying that if you are having a meeting, ensure there is a clearpurpose, agenda and a notes taker. AI tooling is an excellent option as it can take great notes, summarize and track action items out of the box.
We at Tech Exponent System bring in decades of experience for running smooth distributed models of the teams. We have years of experience running successful onsite and offshore collaborations. Each one of our team members is well versed and ensures we use effective patterns for designing, developing and maintaining software systems.
The author is Om Parkash having two decades of experience in IT and software development
Om Parkash, Director, New Business Development
Tech Exponent System