Tag: software developers

  • Best of 2022: Making the Move From Developer to Team Lead

    Best of 2022: Making the Move From Developer to Team Lead

    As we close out 2022, we at devopsy.kinsta.cloud wanted to highlight the most popular articles of the year. Following is the latest in our series of the Best of 2022.

    After working in their role for some time, software developers may wonder what career opportunities await them beyond coding. Certainly, taking the next step is not obligatory. Some people feel comfortable remaining developers for their entire professional careers.

    However, for those who wish to explore other options, there are a number of different growth paths to choose from—whether it’s working as a solution architect, a Scrum master or a product owner, just to name a few examples.

    Another option to consider is a team lead—considered by many to be a position that is a culmination of long-time efforts, passion and dedication as an IT specialist. But is becoming a team lead an opportunity that an ambitious developer should consider?

    What Makes a Great Team Lead?

    Unlike developers, who usually work on a specific aspect of a project and communicate mainly with other developers, team leads—as the title suggests—are focused on coordinating the activities of and collaborating with the entire team. They also spend far less time dealing with technical issues. A team lead is a leader, a representative and a manager of the team and, as such, their responsibilities involve communicating with both the team members and stakeholders within and outside the company.

    A team lead is the first person a developer would go to when a problem occurs and is the person responsible for suggesting a solution. Bug fixes, tooling and library choices or thoughts on how to approach a specific code-related problem—these are the team leads’ specialties since their technical knowledge and experience are what propelled them into a leadership role in the first place.

    The Go-To Point of Contact

    If you want to improve an application or a test, the team lead is the person to talk to about it. They should know the ins-and-outs of technology solutions and be able to explain to less-seasoned developers why something works and something else doesn’t, or why it may be a good idea to do X instead of Y.

    This doesn’t mean, however, that they are all-knowing. Asking other experienced developers for their insight, opinions or to share their knowledge is something good team leads do without fear of losing their authority. They should always be open to other people’s suggestions and welcome innovative ideas.

    In addition, team leads should think about a project as a whole, including all the people who are working on it. They can direct developers’ efforts and tell their teams what to pay attention to while making improvements, sharing best practices and taking care of code infrastructure and project architecture.

    When to Step Up

    It seems obvious that experience, knowledge, passion and communication skills are all things that ultimately make a good team lead. And these skills aren’t developed overnight—they often start as junior engineering or DevOps professionals and gain technical, social and leadership skills before they can guide an entire team or teams.

    Sometimes, this progression is a natural consequence of an individual’s personality and work style. A team may notice that one member has more extensive knowledge and/or that one particular person is a natural leader who can motivate others and direct their activities. At other times, team leads emerge spontaneously because of their technical knowledge or they volunteer to gain valuable experience.

    For a developer, taking the next step may seem like getting thrown into the deep end. But many current developer skills will be useful in their new role.

    For instance, attention to detail—something most developers are known for—can be invaluable as a team lead. Relentlessly analyzing and improving code, for example, is likely to come in handy in a team lead’s work.

    The Importance of Soft Skills

    Technical know-how, experience, passion, hard work and conscientiousness are the keys to becoming a successful team lead, but it’s also necessary to enjoy working with other people.

    A team leader’s job requires communication, collaboration and people skills more than ever before. Collaborating with team members as well as other stakeholders within and outside the company means that a team lead is a central figure in the IT and business processes. Being tech-savvy is great, but leading a team goes far beyond that since it’s about knowledge and experience and being able to communicate about that knowledge and experience.

    Another key competency is fluency in English. Using English for coding purposes and communicating in English are two different things. As a team lead, you must talk to your clients and team members, many of whom work remotely and may be in different countries. Of course, you can develop your language skills as you go when you’re a team lead; as with most skills, learning by doing can help with confidence and fluency.

    Building language skills can happen simultaneously with building technical and interpersonal skills. Knowledge of various technologies, frameworks and functionalities; experience in working with them; finding ways to change and improve things—all of these give team leads a good reason to practice language skills by talking with colleagues, supervising projects and advising their stakeholders within and outside the company.

    Making the Move to Team Lead

    With their bottomless willingness to work harder, learn more and take on more responsibility, team leads are an incredibly important role in software development. If you feel that constant development—both technical and interpersonal—is the right course of action for you, then consider becoming a team lead.


    Paulina Gatkowska, test automation lead and Robert Musil, Python team lead at STX Next contributed to this article.

  • One-Third of Developers Seeking New Job

    One-Third of Developers Seeking New Job

    With the relentless pace of enterprise digital transformation efforts, even in this softening economy, developers still face an enviable job market. The number of open job positions in computer occupations is greater than 804,000, according to National Foundation for American Policy (NFAP) analysis and, at 326,000 vacancies, software developers have by far the largest number of job openings available to them.

    US Developers Are Less Confident About Job Prospects

    Still, according to a new report from OutSystems, Developer Engagement Report: Are Your Developers Happy or Halfway Out The Door?, slightly more U.S. developers are seriously considering changing companies right now (33% U.S. versus 31% globally) and they feel less confident about their prospects. Only 25% of U.S. developers strongly agreed that there are many opportunities to easily get a better position right now, compared to 42% of global respondents.

    Still, not many developers are thrilled with their current jobs. According to the survey, only 49% of U.S. developers love their jobs and only 37% are very satisfied with the work they do every day. Outside the U.S., developers are a bit more optimistic. Globally, 64% reported that they love their jobs and 46% said that they are very satisfied with their day-to-day work.

    Interestingly, when it came to work-life balance, it was U.S. developers who felt more optimistic than their global counterparts. While 50% of all respondents strongly agreed that they need more work-life balance, only 38% of U.S. developers agreed on the same.

    Finally, while 48% of developers said that they would definitely be with their current employer within a year, when that timeframe was extended to two years, that figure fell to 29%. And U.S. developers are itchier to move, with only 38% saying that they would definitely be with their current employer in a year and 18% said they would remain there in two years.

    Most Low-Code Developers Also Traditional Coders

    The report also examined so-called low-code developers. As a subset of the broader population of developers, 59% of low-code developers reported being very satisfied with both team productivity and 57% were satisfied with the quality of tools they use at work. Only 41% of traditional developers felt the same toward team productivity, and only 36% of traditional developers are very satisfied with the quality of the tools they use.

    Interestingly, 71% of low-code developers reported that they can keep their workweek to the standard 40 hours, while only 44% of traditional developers said the same. While 63% of low-code developers said that they are happy with their salary and benefits, only 40% of traditional developers agreed. Further, low-code developers claimed an average of 3.5 job promotions at their current company while traditional developers said they’ve been promoted two times.

  • Innovation With Software Architectural Excellence

    Innovation With Software Architectural Excellence

    Software architecture plays an irreplaceable role in enabling businesses to deliver value efficiently. This is evident in how digital natives have been challenging incumbents and forcing them to rapidly digitize and transform how they operate and innovate. Accordingly, achieving architectural excellence is a continuous process of efficient implementation, advanced planning, and executive leadership engagement. Furthermore, it’s essential to recognize that software architectural strategies and planning shouldn’t be limited to IT. Enabling collaboration between IT and business leaders is necessary as software architecture plays a key role in delivering value, making processes robust, and tackling the next wave of changes in value creation and delivery.

    The Goal of a Good Software Architecture

    A good software architecture facilitates the ongoing business processes function robustly and ensures business capabilities are competitive against threatening challenges. Beyond this, the software architecture should also become the fundamental aspect of driving the next waves of business changes—whether they are processes, models, or innovative products and features. These changes result from competitive forces increasing digitization, transformation, and ecosystem-based consolidation, making change the overarching constant in various business aspects. Accordingly, conventionally viewing a software architecture at a limited software or product level doesn’t work as well as it used to. The practice of viewing software architecture at the business and ecosystem-level gains even more emphasis as digitization and innovation make businesses and ecosystems digitally intertwined in how they interact.

    The following fundamental aspects describe how to innovate with architectural excellence:

    Security and Privacy

    Customers are increasingly becoming wary of how their data is handled and protected—and are even reluctant to do business if an organization doesn’t have clear policies on how it protects and handles customer data. On the other hand, regulators are constantly improving their compliance requirements to protect customers. This landscape is changing at different rates across multiple countries, posing challenges and equally creating opportunities for fast adapters. All of this implies that businesses need to ethically manage customer data along with protecting against the constantly evolving threat landscape. To satisfy this need, it is necessary to revise the existing software architecture and involve senior executives in making critical decisions in this respect. Moreover, architectural planning cycles should come down to a few months—instead of years. This is key to building and implementing innovative solutions rapidly to tackle changing regulatory landscape and customer expectations.

    Satisfy User Needs

    Since 2008, the smartphone has been changing customers’ experiences and expectations. Digital disruptors are continually challenging incumbents and threatening their survival. In this paradigm shift, businesses should understand their customers more deeply, quickly adapt their business models and introduce new products to fulfill customer needs. It requires architectural agility that offers the flexibility to innovate business models in shorter cycles and improve them faster with customer feedback. This also means keeping a long-term view towards software architecture planning and strategy development that enables seamless innovation and eliminates process and performance bottlenecks. In this view, software architecture improvements and decisions should align with business objectives and strengthen business capabilities, not just the number of implementations or technical solutions the IT has delivered.

    Empower Developers

    Today, more and more businesses need developers to help them digitize and transform. Accordingly, empowering developers is essential, and software architecture is the fundamental way to help them drive innovation and build critical business capabilities. Developer empowerment is usually measured in terms of developer velocity — it defines how enabled developers are to be agile and how well their talent is utilized. To improve developer velocity, provide them with a well-defined software architecture to focus on quality and consistent development. Also, the software architecture must have scope for customization so that developers can utilize it to its full potential.

    While the above describes the overarching approach, the following sections detail the fundamental aspects of achieving innovation with architectural excellence.

    Scalability

    The software architecture should support scaling applications seamlessly on-demand to accommodate spikes in user growth and scale back to save operational costs. Accordingly, this approach requires deploying your application in the cloud while ensuring not just the underlying infrastructure but also the multiple components in your entire system scale without friction or intervention. High performance should accompany this to ensure customer satisfaction and deliver a superior experience. This means that your system should perform ideally at any scale at any time.

    Portability

    Can the system itself or components of it be deployed in any cloud platform—public, private or hybrid cloud? How much does it cost to move in terms of time, effort, and cost? In a world of hyperscale cloud providers and cutting-edge cloud services, a company’s IT ecosystem shouldn’t be locked into one platform or vendor but should utilize the best available services and technologies currently—that are also future-ready to improve performance and optimize overall costs.

    Compliance

    Businesses should develop a compliance framework that aligns people, processes and strategies with regulatory requirements to ensure compliance and avoid non-compliance risks. Also, the framework should be work-in-progress to accommodate upcoming changes from regulators across the board.

    Maintainability

    Similar to the source code of software components, software architecture should be easily maintainable—meaning that the software architecture shouldn’t introduce bottlenecks when modifying and improving it.

    Maintainability issues could take many forms: is the software architecture outdated for the current technical and business landscape? Is it using legacy versions that are incompatible when other components and dependencies are updated? Ensuring the software architecture’s maintainability helps facilitate innovation and move at a competitive pace. If at all unsure where to start improving or redefining a software architecture, start with maintainability.

    Cost

    IT is often under constant scrutiny to justify its expenditure, and it is complicated to measure IT’s meaningful contribution to the business outcomes. As a result, IT constantly faces the risk of budget cuts and challenges in optimizing costs. Typically, the software architecture is let to grow organically, leading to duplication of system and efforts and inconsistent data across systems. To overcome this, control the software architecture on an ongoing basis, which, in turn, allows for more predictable cost-control.

    In this fast-changing landscape of digital, businesses should maintain flexible architectures that facilitate innovation and continually improve the software architecture using agile methodologies to gain a competitive advantage in the business capabilities. This practice is much needed, especially when digital disruptors are increasingly threatening to take it all—leaving laggards behind.

  • When, How and Why to Build a Developer Relations Team

    When, How and Why to Build a Developer Relations Team

    The developer role is changing. More and more often they are being rightfully viewed as key stakeholders who aid in setting company direction in this product-led world that we live in. For many technology vendors, earning the trust of developers is critical to their short-term and long-term success, but this presents a challenge. Developers have more than a full plate of work and traditional marketing tactics can fail to gain their attention. A new, more authentic approach was needed. This has led to the emergence of developer relations (DevRel), a term that can mean a lot of different things to different people.

    I view the role of DevRel as being responsible for creating good mutual relationships between a technology company, its product and external developers. Mature DevRel programs typically sit at the intersection of the marketing, engineering and product teams, as it is common to have developers in each of those groups. As such, DevRel teams consist of a unique group of people who fall somewhere in between the developer world and the marketing world. However, DevRel isn’t a one-size-fits-all idea. For early-stage startups, the makeup of a DevRel team tends to be more organic.

    When Should an Early-Stage Company Build a DevRel Team?

    Creating a DevRel team too early can be a mistake for many early-stage companies. It can be exciting for an early-stage company to want to invest in DevRel from the get-go, but the truth is, putting together this team too early (and before knowing if the product is even a fit in the market) can be money wasted. Developers have long memories, and bringing a flawed or unfinished product to them could create long-term damage to your brand.

    You need to first prove your worth in the market and experience growth before investing in DevRel. This way, you can ensure that your hypothesis was correct and your products have proven value. Once you’ve proven your hypothesis and have tested your products thoroughly, the next step is establishing short-term and long-term goals for the DevRel team you want to create. Know your market and have a plan of execution ready.

    What Does an Early DevRel Team Look Like?

    In the early stages of Algolia, for example, our DevRel team wasn’t even a formal DevRel team. It was a blend of DevRel and customer support. Our first priority was to create the best possible developer experience (DX). We, as developers, took the initiative to interact with the market. We were personally engaging with people that signed up with the service to offer our help.

    When your customers are developers, they can find it frustrating to speak to those who don’t understand code; therefore, it can be helpful to embrace a developer-to-developer connection when handling one-on-one support. This is invaluable for helping understand customers’ pain points and iterate very quickly with regards to the product. Imagine hearing about a bug and being able to fix it near-real-time!

    The advice I would give to anyone starting an early DevRel team is that your first evangelists should always be your core developers—they know your product inside and out. However, make sure that your core developers are using your product—”Eat your own dog food!” This is a very good way to make sure that your core developers have empathy with external developers. In fact, even today we ask core developers to do support a couple of days per month. As we approached the 150-employee mark, only then did we create a fully dedicated DevRel team. It was only then that we could expand into specialized skill sets to push activities at a larger scale.

    How to Engage Your Own Developers to Be Evangelists

    Once a strong developer experience is established, DevRel should focus on maximizing inbound activity, not specifically revenue. This can be in the form of free users, trials, student interest, etc. It’s a long-term growth investment. Trying to treat DevRel as a sales strategy and having the goal of impacting revenue is a recipe for failure. You want the developers on your DevRel team to be authentic. They aren’t salespeople; they shouldn’t be salespeople and if they try to be salespeople, it won’t be authentic.

    Your developers don’t necessarily need to be overly social or extroverted to embrace DevRel, either—that’s a common myth. They can stay true to themselves and genuinely try to help in ways that play to their strengths. Providing content is a great example of this. Have developers complete documentation for the features they build. View documentation as a core part of the product. For too many people, documentation is an afterthought when, in fact, it is one of the most important aspects of a product. Documentation can then be used as a jumping-off point for other content—blogs, whitepapers, etc.

    That said, if your developers are genuinely interested in the more social aspects of DevRel, offer public speaking and training tools for them. Developers with these skills can become the face of the company on webinars and panel discussions, attend events on the company’s behalf and more.

    The best DevRel programs understand the developer community, what types of tech they are using and then go where developers are to make connections. DevRel should amplify what the developer community is doing by showcasing use cases and solutions to problems. It should give a voice to your community of users by being the glue between developers and product teams.

    Why Do Companies Need DevRel?

    The API economy is making the role of developers and DevRel even more important than it already was. The competition for the attention of developers is already fierce; it is only going to increase as more organizations recognize that developers need a seat at the table when strategic decisions are made.

    Many companies are going to view DevRel programs through the traditional marketing lens with big-budget bets made on general awareness that isn’t personalized. This is going to fail. Instead, companies that have an authentic and measurable DevRel program in place, built around making meaningful connections, will be the most successful. Early-stage companies that embrace this thinking will gain an edge on larger competitors that are stuck in the old school way of thinking.