What Leaders need to know to Optimize their teams in a more Complex Environment In today's fast-paced and ever-evolving world of software engineering, building a strong set of skills as a leader is essential for growth, learning, and collaboration. A vibrant leader with the right set of capabilities can foster knowledge sharing, provide support, and create opportunities for their teams to excel even as the technology environment grows more challenging. Here are some tips and strategies to help you build that "right" set of skills. 1. Start with Technology:
As an Engineer or Engineering leader, you must gain an holistic understanding of the basic architectural components of your software. A leader can never optimize their team on the backs of old ,monolithic, non-services based architectures. However, it is almost never possible to do complete re-write's of architectures in the commercial software world as you have to continue to add business value and capabilities to current products. Helping your team's create specific execution plans with incremental milestones to improve current architectures that will enable movement to leverage services models will not only improve velocity, but quality as well. 2. A definition of what "good" equals across all components of software development:
Look at the top metrics you need to collect in the metrics post on this site. This can be the "outcome" that teams need to shoot for to achieve the needed results customers expect. Without metrics (Quality, Velocity, Up-Time, etc.), your team will constantly be chasing results that have no prescribed success criteria. 3. A knowledge of Test Engineering:
Every development leader inherently believes they know testing, but can rarely put together holistic test approaches to assure the quality of their systems. A recent Stack Overflow article stated that software is more buggy, bloated and poor performing than ever before, I tend to agree. If you think the "everybody" is responsible for quality model will yield a high quality product, it will not, without a specific approach to quality. If you do not currently have a good test engineering background that helps you understand test models (phases, timing, coverage), metrics (defect tracking, coverage), and measurement, then take a look at our metrics and measurement section in the Services pages on the site. 4. Migrations to Modern Infrastructure:
As part the technology upgrade, movement to modern scalable, elastic infrastructure is a requirement. Without it, you will be challenged to scale your environments in a timely manner to match growth and usage models, secure them, and performance test your applications appropriately. As mentioned in the Blog post, teams need to guard against inefficient use of system resources that are "covered up" by using more CPU and Storage power that is provided by the elastic Cloud.
5.Communication and control of the narrative:
Every engineering leader needs to be able to communicate in writing about what their teams are doing and how their teams are performing. Without this information, the leader is constantly distracted by questions about productivity, why they need so many people, why is takes so long to develop capabilities (velocity), and why they have quality issues. For most engineers and leaders, the "in writing" part is the greatest challenge. Engineers love to white board things, but do not enjoy putting it down on paper in a concise easily digestible form. Practice makes perfect in this case, so engineers and leaders need to make opportunities to "do it" to improve their skills in this area.
Building a strong set of skills as a software engineering leader with maximize your teams time focusing on the right things and not being distracted with task that add less value for the business. By implementing these tips and strategies, you can create a vibrant and efficient engineering team that fosters collaboration, and growth.
Comments