In our Culture and Methodologies category, dive into Agile, career development, team management, and methodologies such as Waterfall, Lean, and Kanban. Whether you're looking for tips on how to integrate Scrum theory into your team's Agile practices or you need help prepping for your next interview, our resources can help set you up for success.
The Agile methodology is a project management approach that breaks larger projects into several phases. It is a process of planning, executing, and evaluating with stakeholders. Our resources provide information on processes and tools, documentation, customer collaboration, and adjustments to make when planning meetings.
There are several paths to starting a career in software development, including the more non-traditional routes that are now more accessible than ever. Whether you're interested in front-end, back-end, or full-stack development, we offer more than 10,000 resources that can help you grow your current career or *develop* a new one.
Agile, Waterfall, and Lean are just a few of the project-centric methodologies for software development that you'll find in this Zone. Whether your team is focused on goals like achieving greater speed, having well-defined project scopes, or using fewer resources, the approach you adopt will offer clear guidelines to help structure your team's work. In this Zone, you'll find resources on user stories, implementation examples, and more to help you decide which methodology is the best fit and apply it in your development practices.
Development team management involves a combination of technical leadership, project management, and the ability to grow and nurture a team. These skills have never been more important, especially with the rise of remote work both across industries and around the world. The ability to delegate decision-making is key to team engagement. Review our inventory of tutorials, interviews, and first-hand accounts of improving the team dynamic.
Kubernetes in the Enterprise
In 2022, Kubernetes has become a central component for containerized applications. And it is nowhere near its peak. In fact, based on our research, 94 percent of survey respondents believe that Kubernetes will be a bigger part of their system design over the next two to three years. With the expectations of Kubernetes becoming more entrenched into systems, what do the adoption and deployment methods look like compared to previous years?DZone's Kubernetes in the Enterprise Trend Report provides insights into how developers are leveraging Kubernetes in their organizations. It focuses on the evolution of Kubernetes beyond container orchestration, advancements in Kubernetes observability, Kubernetes in AI and ML, and more. Our goal for this Trend Report is to help inspire developers to leverage Kubernetes in their own organizations.
Design Patterns
By some estimates, up to 100% of software companies use automation testing in some capacity. A lot has been said about the importance and benefits of automation, including on our blog. Plus, we’ve already talked about building an efficient test automation strategy and choosing the right set of automation testing tools. Today we will talk about another core aspect at the heart of any test automation project: an automation testing team. What does an automation testing team do, how to build one, and how to ensure its effectiveness throughout the entire automation project? We’ve got all the answers you need right here. Who Should Do Automation Testing: A Manual QA Team, a Development Team, or a Separate Team? Test automation is a unique subset of software engineering: it’s a piece of code that is created with the sole purpose of testing another piece of code. This is why many software companies feel like it’s only natural to entrust the process of automation testing to the developers. Other organizations go in a different direction by creating an automation team from scratch. And some companies choose to grow their own automation testing departments using their available manual QA resources. So which strategy is the right one? The answer to this question depends on the company’s available resources and both short-term and long-term goals. For example, when the company is planning a long-term automation project that is expected to grow both in size and complexity, and there is already a skilled and motivated manual QA workforce, then helping them switch to automation seems like a reasonable move. The downside of this solution is that it takes time to acquire at least some knowledge of automation, and in the end, you’ll get Junior or Strong Junior automation engineers at best while still having to employ the services of a Senior Automation QA or a Lead. However, those can be arranged on an outsourced or freelance basis, so it shouldn’t become an issue. In the case of software developers turning into automation engineers, those situations are fairly rare and may not yield the best results for one reason: after spending so much time honing their coding skills, software developers may unconsciously try and write code that is guaranteed to pass the tests, not discover as many defects as possible. Therefore, the results of testing can be biased. All things considered, establishing an automation software testing team from scratch is probably the best option, provided that you have the resources and are confident that the scope of the project will keep your new automation QA department occupied long-term. You can hire an in-house team, choose to outsource instead or use a combination of the two methods — more on those later in our article. Typical Roles and Responsibilities in an Automation QA Team The automation test team structure in software testing is not that different from the setup of a manual team, although the exact composition and responsibilities of an automation software testing team structure will still be different from manual QA. These are the must-have automation testing roles and responsibilities: Automation QA Lead: This is the person responsible for setting up the automation project and overseeing it throughout all the phases. An Automation Lead mostly deals with the big picture, such as identifying the scope of testing, selecting the framework and the tools, and ensuring smooth communication between every party, including the project stakeholders. It’s worth noting that the work of Automation QA Leads goes way beyond writing the code, even though they are definitely capable of it. Senior Automation QA: When the project is big enough, there is certainly room for both a Senior and a Lead Automation QA. However, sometimes organizations choose to have just one of the two. Senior Automation Engineer also deals with the big picture, but a lot of their work also concerns the day-to-day execution of the project strategy, as well as helping junior members of the team get a full understanding of the task in front of them and the tools they need to use. Typically, senior engineers will also write code for tests. Infrastructure Engineer: This is a dedicated person for handling the technical details concerning the launch and progress of an automation project, such as the health of an automation test suite and the framework, as well as remote test execution. This position is usually reserved for large-scale and long-term projects, as there may simply not be enough for an Infrastructure Engineer to do on a smaller project. On a mid-sized project, this role can go to the Lead or Senior QAs, and on larger projects, the DevOps department can handle these tasks. Junior and Middle Automation QAs: This is the biggest part of the workforce of a typical automation testing project. Junior and Middle engineers are involved in every stage of the project, from developing the test suite and setting up the automation tools to generating and analyzing the reports, using the data to make the testing process more efficient and resource-effective. Other project team members may include a project manager, a product owner, and a software developer for handling code-related issues. What’s the Right Size for an Automation Team? When discussing how to build a software testing team that will deal with automation, the topic of team size is one of the most controversial yet most important ones. The reason why organizations care so much about the ideal team size is completely understandable: on the one hand, they don’t want an overblown staff; on the other hand, they don’t want to stretch their available resources too thin. Unfortunately, there aren’t any formulas with a 100% success record that can help find out the ideal size or composition of an automation testing team — ultimately, it depends on the specifics of the project. However, many automation experts agree that having one to two automation engineers per four or five software developers is an approach that usually works. Of course, it’s also important to take into account the seniority level of the automation QA: the higher the level, the more challenging tasks they will be able to complete in the same amount of time. However, “one automation QA to four or five developers” is a formula that can help you get started on a brand-new project and then adjust your resource allocation as you go. In-House or Outsourced: Which One Is Right for You? As it’s often the case with outsourcing your software needs or choosing to do everything in-house, this question is deeper than it may initially seem. It requires thorough consideration before any decisions can be made. Here are a few reasons why outsourcing all or some of the test automation can benefit your project: Niche expertise. When you are no longer limited to your local area in your hiring decisions, you get to work with engineers with a specific set of skills or one-of-a-kind expertise that can be rare to find in the industry. Financial benefits. Compared to the US and other Western countries, the work of an outsourced automation QA in Eastern Europe or Asia can cost you several times less for the same selection of services. Moreover, you don’t have to worry about office space, insurance, and other overhead costs. Flexibility. Working with an outsourced automation QA engineer or a whole team always happens on your terms, as you get to determine the scope and duration of the project, team size, and so on. You can even create a unique automation setup at your organization — for example, have the in-house team work for you full-time and outsource the Automation QA Lead position to an offshore engineer for 10 hours a week — which is rarely possible with a full in-house project. One of the concerns keeping some organizations from fully taking advantage of the outsourcing model is that managing and evaluating a remote team is not as easy as when everyone is working from the same premises. However, if the past three years have taught us anything in terms of job models, it’s that remote and hybrid work are only going to become more common and that different locations and time zones do not stand in the way of efficient management. How To Build an Automation QA Team That Meets Your Needs When building an automation software testing team from scratch or strengthening your existing setup with new team members, selecting and hiring the right people is a task of utmost importance. Here is how to develop high-performing teams for automation. 1. Create a Solid Vacancy Description The key here is to make the description as relevant to the job as possible and not just copy and paste the requirements from another vacancy. A difference in the requirements and duties between the job description and the actual interview will create a lot of confusion and damage the candidate’s opinion of the company. This is why it’s always a good idea to collaborate with someone who is actually working on the same project to outline the description and ensure smooth two-way communication between the departments in case the project is to be launched from scratch. 2. Allocate Enough Time for Hiring Assembling an automation team from scratch or getting one or two strong additions to the team is not something that happens overnight. Things can get even more challenging when you are looking for senior-level engineers or automation leads. They are no longer motivated to switch jobs frequently and are typically pretty happy where they currently are. The two things more likely to make them change their mind are an interesting tech stack and higher compensation. The rule of thumb is that the more seniority you want to see in the position, the more time it will take to sign the contract. On average, it takes around a month to hire one senior automation engineer. It’s also worth noting that a currently employed candidate may need to fulfill their existing contract requirements, which can take another two to four weeks. 3. Know What To Look For in an Automation Engineer A competent automation QA combines both hard and soft skills that make them good at their job, and you can usually tell about some of those skills being present or missing already at the screening stage. Here are some of the things to pay attention to in an automation engineer’s CV: How many years of experience they have in total, how many years they’ve spent on average in every organization, and whether their experience in the last workplace is a logical continuation of their overall experience; How detailed the description of the last projects is and whether the type of product, platform variety, tech stack, and toolset match the requirements of the project; Whether there are any inexplicable gaps in the professional experience; The overall look and feel of the CV: it doesn’t have to be overly polished or overly creative, but it does need to be well-written, informative, and free of mistakes purely out of respect for anyone reading it; Whether the candidate goes into detail when explaining their role, responsibilities, and accomplishments on the project or simply lists the basic project specifications that may not even fully match their seniority level. If you want to get a better idea of the candidate’s personality, you can also check the section where they list their qualities and hobbies outside of work. However, it’s only natural for people to try and present themselves in a more positive light whenever possible, so take those words with a grain of salt. 4. Complete the Interview Stage Ideally, the interview — especially the technical one in case the company uses multiple interviews to assess one candidate — should once again be conducted by a person with immediate knowledge about the process and the tech stack of the upcoming or current project. That way, the company can choose a candidate with the most relevant skills and experience. But since an interview is a two-way process, it’s also important to give the candidate a realistic picture of what the project entails and what is expected of them. 5. Assign the Leadership Role Any automation testing team, whether it has two, five, or twenty members, should have a clearly identified leader. And it’s not always the person with the most seniority or the person with the longest CV. It should be the person who is experienced in building test automation from scratch, maintaining it, and training other members of the team. Moreover, this should be a person with a realistic idea about automation in general, thinking of it as a helpful tool rather than the ultimate answer to every quality-related question or a complete replacement for manual QA in general. 6. Consider Bringing Additional Specialists on Board Many organizations want to go the lean route when establishing an automation QA department, but the truth is that it’s nearly impossible to build high-performing teams for automation without eventually adding niche specialists on board. This can be a principal developer with a strong background in methodology, a project manager with experience encompassing software development and quality assurance, an infrastructure engineer, or a person who will deal with setting up the reports and processing them for maximum efficiency. 7. Lead by Example Whether every member of your automation team is well-versed in their craft or there are some junior members who need time to master automation as a whole and the project specifications in particular, the best way to launch an effective automation QA operation is to go all-in. Identify the scope of tasks for each member, assign the people responsible for different aspects of the project, tell your junior team members who they can turn to in case they have questions, and launch the project, showing how it should be done. Automation Team Culture: How To Create a Good One and Why It Matters Team culture is not always the number one idea in the mind of a person running an automation department, and it’s completely understandable: with so many technical matters to take into account and so many goals to meet, culture risks becoming an afterthought. So does team culture matter for automation QA, what does it entail, and how to maintain it at the right level? The important thing to note here is that within an automation testing project, team culture is more about sharing the same work ethic and approach to solving problems than about sharing the same interests outside of work or having a similar sense of humor, although those definitely help in establishing a good rapport within the team. When you build high-performing teams for test automation, team culture can be fostered in the following ways: Knowing the end goals of the automation project and which results will matter the most; Fully believing in the importance of automation as the key way to achieve those goals; Demonstrating firm leadership but also knowing when and how to delegate tasks; Promoting the idea of constant learning and mentorship among the team members; Creating an environment where people can communicate and exchange ideas openly; Gradually lowering the amount of control as the project progresses successfully; Locating the ideal balance between speed and quality without compromising one or the other; Adopting the practice of stopping for a moment to get a bird’s eye view of the project; Making an effort to get to know each other not just from the professional but also from the personal standpoint; Encouraging the team to spend time outside of work, even in a virtual setting, but not insisting on it; Establishing effective communication across teams — most importantly, with the software development and the manual QA departments; Avoiding the desire to make the team completely homogenous, as variety and thinking outside the box fuel innovation and drive progress. How To Manage an Automation Team for Maximum Efficiency “How to develop high-performing teams” is one of the key interests for thousands of organizations globally, including ones that deal with automation. When you assemble a dream team of automation QA engineers, the last thing you want is to have them not live up to their full potential due to poor management or wrongly distributed tasks. Here are a few tips on how to make the most of your automation software testing team. 1. Choose Roles and Set Responsibilities Correctly There are few things more discouraging to a team member than having to deal with a task that doesn’t match their area of expertise or seniority level, and this can go either way: a Junior team member may be overwhelmed by an overly complex task, while a Senior team member may experience burnout from having to repeatedly deal with tasks below their skill level. This is why any automation QA project needs to have an experienced Lead in the role of a manager. The Automation Lead will be able to correctly identify the skill level and area of expertise of each team member and assign tasks accordingly. 2. Allocate Time for Training and Team Building Whether you are starting an automation project with a team assembled specifically for this task, a team of manual QAs ready to take on some new responsibilities, or a team of software developers with an interest in automation testing, you cannot expect every single team member to just jump head first into a completely new work environment and thrive there. Reasonable training time should be mandatory for any new automation-related project. This can be the time for the team members to familiarize themselves with the scope of the project, the objectives, the framework, and the tools, and, more importantly, with each other. These are going to be the people working on the same project day in and day out, so make sure they know each other on a decent level. 3. Keep Your Team Informed Throughout the Project We’ve already talked about the importance of good communication within an automation team, and that involves communication not just between the team members themselves but also with the management. The situation where each team member is constantly in contact with all of the stakeholders of the project may definitely be overkill. However, keeping your team in the loop at every stage of the project is integral for their complete understanding of the project specifics and their work towards the end result. This also includes investing effort into communicating the goals of the project to every team member in the very beginning so that everyone involved knows what they are doing it for. 4. Don’t Get Too Focused on Metrics There are different ways to measure the effectiveness of a test automation team, and various metrics are among the most commonly used ones. The exact set of metrics can largely depend on the project’s characteristics, although some, including the number of test cases automated, total test duration, number of user stories covered in a week/month, and number of defects located through automation, are applicable to nearly every QA project. At the same time, there is a risk of becoming too dependent on metrics. When the team’s leadership is all about the metrics and the team is aware of that, there is a real risk of the team treating metrics as the only way to know if they’re good at their job. Instead, the team members and the management should work together towards a bigger goal, such as the quality of the product overall. 5. Promote Out-Of-The-Box Thinking The work of an individual automation QA engineer or the whole team should not be just a sequence of tasks needed to get from point A to point B with a predetermined selection of tools and solutions. While following standard procedures is definitely beneficial to a project to some degree, creativity, and out-of-the-box thinking are at the heart of being a successful automation QA. This is why the person managing an automation testing team should always encourage inventiveness and help the team members form their own vision. This is exactly how efficient, innovative automation testing engineers are born and how the automation QA industry is constantly moving forward, powered by the creative thinking of its players. How an Automation Team Can Change and Evolve With Time A test automation team is not some fixed mechanism that performs tasks in a robotic manner and only changes when someone with more seniority tells it to change. A well-established, well-functioning automation team will transform and evolve naturally as part of its course. The question is which direction to choose for the transformation. Perhaps, the most straightforward one is adopting new technologies to the mix to make testing more efficient and all-encompassing. For example, ideally, a senior-level automation QA needs to: Know two programming languages — an object-oriented one, such as Java or C#, and a scripting one, such as Ruby, Python, or JavaScript; Have experience with automation at different levels — UI, API, Unit, etc.; Be familiar with different automation platforms — web, desktop, mobile; Have both the desire to manage a team and knowledge of how to do it; Be able to act as a visionary on a project, not just as a person to execute other people’s vision. It’s also worth mentioning that not every automation QA wants or needs to assume a senior or management role, just as not every manual QA wants or needs to go into automation testing. However, with adequate leadership within the team and enough opportunities for improvement, each member of the team can locate and execute a comfortable growth trajectory. Final Thoughts When done right, automation testing can dramatically improve the quality of the product while saving time and other resources in getting there. However, the key element and the most important aspect of an automation QA project is the automation team you’re working with. There are different ways to set up the automation operation at your company: hiring an in-house team, outsourcing the whole project, or choosing a combination of the two. What matters the most is that each team member is there for the right reasons, knows the objectives of the project, and strives to become better at automation testing week after week. With that in check and with talented management, the only way to go is up.
Do our personal learning preferences actually affect how well we learn? And what makes learning new skills — like a programming language — so hard in the first place? On this week’s episode of Dev Interrupted, we’re joined by Hywel Carver, founder & CEO at Skiller Whale. An expert in the principles and practices behind learning and knowledge retention, Hywel walks us through the best learning techniques for engineers. He also discusses how engineering leaders can upskill their teams without hiring additional staff, why modern approaches to learning often fall short (think YouTube), and why there is no evidence to support the idea that personal learning styles, such as visual or kinesthetic, impact learning outcomes. Episode Highlights (2:25) Why is it difficult to learn something new? (4:30) Learning types: passive, constructive, interactive (12:38) Learning hard skills vs. 'power' skills (15:00) Do children and adults learn the same? (20:15) Problem with how new skills are taught (25:24) Upskilling your eng team (31:00) Tracking learning success (35:42) Best ways for engineers to learn new skills Episode Excerpt Conor Bronsdon: Hey, everyone. Welcome to Dev Interrupted. This is your co-host, Conor Bronsdon. And today, we're joined by Hywel Carver, founder and CEO at Skiller Whale. Hywel, welcome to the show. Hywel Carver: Hi, Conor. I'm very happy to be here. Thanks for having me. Conor Bronsdon: And you're joining us from London today, is that right? Hywel Carver: I am. I am in North London, where it is gray and dull. Conor Bronsdon: I'm over in the Seattle area same deal here. So it's a pleasure to have you to talk to and dive into some interesting info to provide. In both of our days, you've identified a problem that I think everyone in the audience can relate to, that knowledge isn't as sticky as we'd like it to be. I'm sure we've all felt this, and there are different statistics on the subject, but it's often noted that a person only remembers about 10% of a book within two weeks of reading. and that can make it difficult to learn and retain new skills, especially when the subject is coding. So, that's why we're gonna chat today. About what it takes to actually learn a new skill, put it into practice, and how if you're an engineering leader, you can build more skills in your existing team without having to hire more people. So let's jump right in. How, why is it so difficult to learn something new, and what's going on in the brain when that happens? Hywel Carver: So, the reason it's difficult to learn something new is because things have to be right in order to learn. We are generally not very good at optimizing the sort of scenario around us for the best learning. So in your entry, you talked about both reading a book and the development of skills, which I would say are actually quite separate. Things like reading a book are a good way of getting knowledge and information, which is necessary to get a skill, but it is not sufficient if you want the skill. Oh, then a base. Exactly. It doesn't get you able to do. It gets you able to maybe understand it best to do the thing, to actually have the skill, and to be able to put it into practice. You need to be doing it. You need to have a go. You need to fail and get feedback on that skill. And if you think about, if you think about any kind of. The critical application is where we care about skills a lot. That's pretty much exactly what happens if you're training to be an airline pilot. They don't just have you read the manual and then stick you in a plane. There are thousands of hours in flight simulators, which are constantly giving you feedback and letting you see the results of your actions and putting you in different scenarios, and giving you the opportunity to respond to those and improve your skills before they let you actually fly the plane. I think that is generally emblematic of how we should approach all skill learning. We need the knowledge, but we also need to put it into practice and do the thing and before we can expect to have the skill. And so this is why to come back to your question, why it's difficult to learn something new is because often we conflate those things together and we think I've read the book, I should be able to do the thing. And there's actually this gap in between, which is that trial and error and feedback process. Conor Bronsdon: And to your point, there's also the challenge around the baseline actual learning in order to apply it right, where every human has different conditions around what makes the right situation for them to learn. Read the rest of the transcript here. A Three-Part Summer Workshop Series for Engineering Executives Engineering executives, register now for LinearB's 3-part workshop series designed to improve your team's business outcomes. Learn the three essential steps used by elite software engineering organizations to decrease cycle time by 47% on average and deliver better results: Benchmark, Automate, and Improve. Don't miss this opportunity to take your team to the next level — save your seat today.
There's a good reason why Java is one of the most widely used programming languages: it's very powerful and flexible. Because of its adaptability and power, it may be used in a wide variety of applications, including the development of web applications and Android applications. However, it may be difficult for newcomers to know where to begin since there is so much information out there. But worry not! You won't need to go elsewhere after reading this article. We have compiled a list of the five best Java books for beginners, each of which is simple to read and understand while yet doing an excellent job of explaining the fundamentals of the language. These books provide a complete overview of the world of Java programming, covering everything from syntax and programming ideas to more advanced subjects such as data structures and object-oriented programming. What Is Java? Java is a widely used object-oriented programming language and flexible software platform that guides billions of devices across the globe, including computers, gaming consoles, medical equipment, and a broad variety of other types of products. Java provides developers with several advantages since it is based on the syntax and guidelines of C and C++. When it comes to the development of software, adopting Java has a number of key benefits, one of the most prominent being its remarkable portability. You can use a notebook computer to develop code and then simply move that code to any device, including mobile devices, if you are using Java. Since its creation in 1991 by James Gosling of Sun Microsystems (which is now owned by Oracle), the language has remained a top option for developers all over the globe. The language was established with the objective of "write once, run anywhere,". Java allows developers to concentrate on developing cutting-edge applications without worrying whether or not their code will work correctly on other systems. Although the terms Java and JavaScript may seem interchangeable, there is a significant difference between the two. JavaScript does not need compilation, but Java does. On top of that, in contrast to JavaScript, Java may be executed on any platform. New and enhanced software development tools are being released at a dizzying rate, driving fast change in the industry. These technologies are posing a threat to businesses that were previously considered vital; nonetheless, in the middle of all this upheaval, one language has stayed constant: Java. Even more amazing is the fact that almost two decades after its creation, Java remains the preferred language for the development of application software. Developers continuously choose it above other popular languages such as Python, Ruby, PHP, Swift, and C++. Therefore, it should come as no surprise that having knowledge of Java is necessary for everyone who wants to compete in the employment market of today. The language has been around for a long time and is very popular, which shows how reliable and useful it is. This makes it a valuable tool for coders and organizations alike. How To Determine Which Java Book Is Right for You You could feel overwhelmed if you're just starting out in programming and looking for the perfect Java book, but don't worry about it! You'll find the ideal resource quickly with the help of our educated recommendations. First and foremost, you need to evaluate your existing level of expertise. If you're just starting off, it's best to read a book that lays a solid foundation for you. Give priority to writers that have years of expertise in real-world programming and a track record of being effective in teaching Java. It is helpful to read reviews written by other customers before making a purchase decision. Readability, structure, and general effectiveness of the material as a Java guide are all things that need to be investigated. Next, take into account the time and financial limits you have. Compare the advantages of purchasing a physical book vs an e-book or online course and decide if you want a full book or a short guide. Last but not least, give some thought to the way in which you take in information best. If you learn best via direct participation, you should look for a book that is packed with a wide variety of hands-on activities and projects. If you would rather take a more theoretical approach, another option is to choose a book that explores the "why" behind Java's features and the way it operates. Top 5 Java Books for Beginners 1. Head First Java Kathy Sierra and Bert Bates' Head First Java is widely regarded as the definitive introduction to the Java programming language. This book is packed with extensive knowledge of Java programming fundamentals such as classes, threads, objects, collections, and language features. The content is delivered in a visually attractive way, and the book incorporates puzzles and games to make it easier to comprehend Java programming. This book stands out from others on the market due to the fact that it contains interviews with experienced Java programmers. These programmers are kind enough to offer their expertise and tips in order to accelerate the learning process for Java beginners. In the first chapter of Head First Java, the author takes a deep dive into the concepts of inheritance and composition. These concepts provide a terrific opportunity to improve computing practices via the process of problem-solving. In addition, the reader will find helpful tools in the form of vivid charts, memory maps, exercises, and bulleted lists throughout the course of the book to assist them in comprehending design patterns. This book, which has a total of 18 chapters and covers topics ranging from basic introductions to distributed and deployment computing, is without a doubt the best resource available for beginners who are just starting out in the world of Java programming. If you can have the greatest, why go for anything else? Grab Head First Java right now to get started on your path to becoming a Java programming expert, and get ready to open the door to a world of unimaginable opportunities. 2. Java for Dummies The book Java for Dummies written by Barry A. Burd is an excellent resource for anyone who is interested in delving into the realm of Java programming. Using the book's lucid instructions, readers can learn to design their own fundamental Java objects and become experts at code reuse. This book gives a full explanation of how Java code is processed on the CPU by providing a wealth of visual aids, including useful photographs and screenshots. However, this is not all that Java for Dummies has to offer; it goes above and beyond to provide a reading experience of the highest caliber. The book is comprised of nineteen chapters, the first of which provides readers with professional advice on how to make the most of their time spent reading the book, while the last chapter provides readers with a list of the best ten websites available to Java programmers. Along the way, readers will get familiar with enhanced features and tools introduced in Java 9, acquire knowledge of approaches and strategies for integrating smaller applications into larger applications, and acquire a thorough understanding of Java objects and code reuse. The reader will be able to comfortably overcome any programming difficulty after reading this book since it also offers helpful guidance on how to easily manage events and exceptions. Overall, Java for Dummies is a book that should be read by everyone who wants to become an expert in Java programming and push their abilities to the next level. 3. Java Programming for Beginners The book Java Programming for Beginners, by Mark Lassoff, is a great way to get started in the world of Java programming. It will walk you through the fundamentals of Java syntax as well as the complex parts of object-oriented programming. By the end of the book, you will have a thorough grasp of Java SE and be able to create GUI-based Java programs that run on Windows, macOS, and Linux computers. This book is packed with information that is both informative and entertaining, as well as challenging exercises and hundreds of code examples that can be executed and used as a learning resource. By reading this book, you will go from knowing the data types in Java through loops and conditionals, and then on to functions, classes, and file handling. The last chapter of the book provides instructions on how to deal with XML and examines the process of developing graphical user interfaces (GUIs). This book provides a practical approach to navigating the Java environment and covers all of the fundamental subjects that are necessary for a Java programmer. 4. Java: A Beginner's Guide Herbert Schildt's book Java: A Beginner's Guide is widely regarded as one of the best introductions to the Java programming language. Aspiring computer programmers should make this book, which is more than 700 pages long and contains a jewel, their primary reference since it covers all the fundamentals in an easy-to-read way. This book starts out with the fundamentals of Java syntax, compiling, and application planning, but it goes fast on to more sophisticated subjects really quickly. You'll get right into practical, hands-on lessons that push you to consider carefully the fundamental ideas behind Java programming. In addition, there is a test at the end of each chapter, so you'll have lots of opportunities to put what you've learned into practice and demonstrate that you understand it. However, what sets this book different from others on the market are the helpful insights and suggestions provided by Java programmers who have years of experience. These professionals share their insights and experiences with you, allowing you to win over everything that stands in your way. They cover anything from everyday quirks to massive challenges. It's possible that Java: A Beginner's Guide is too complex for some people, but it's ideal for those who are prepared to put in the work and Google questions as they go along. So, why should you wait? With the help of this invaluable book, you can get started on your path to becoming a Java expert right now. 5. Sams Teach Yourself Java Sams Teach Yourself Java is distinguished not only by its outstanding writing style but also by its ability to enable readers to comprehend the language in less than 24 hours. Okay, maybe 24 hours is a bit of a stretch, but the fact remains that this book is the best way to learn Java quickly. The activities are broken down into manageable chunks, and the provided explanations are both thorough and easy to follow. This book walks you through the full process of building a program by breaking it down into stages that are simple to comprehend and follow you step-by-step. You'll learn how to examine the process and apply key ideas to future tasks, which will help you understand the language better overall. Having a solid understanding of the theory that lies behind Java is one of the most essential components of producing code in that language. This is where the book really shines since it makes you think about the whole process before you write a single line of code. If you do so, you will put yourself in a position where you can easily tackle even the most difficult programming problems. Sams Teach Yourself Java is a wonderful option for anybody who wants to get a deeper grasp of the language, regardless of whether they are beginners or intermediate coders. Is It Worth Learning Java in 2023? Are you considering learning Java in 2023? There is no need to continue investigating since the answer is an obvious yes. Java is quickly becoming a crucial programming language for software developers as the focus of the globe moves more and more toward mobile applications and convenience. It's been the third most popular language among employers for the past two years, and it doesn't look like it's going to slow down anytime soon. Despite the fact that the pandemic has clearly had an effect on the number of available jobs, the demand for Java developers is still considerable. In point of fact, there is a great deal of compelling reasons why you need to study Java in the year 2023. Reasons Why You Should Seriously Consider Learning Java in 2023 Java Is Friendly for Beginners Java has an open-door policy for beginners. Java is a fantastic language that will assist you in getting your feet wet in the realm of coding and navigating your way through the complex landscape of software development. In addition, since Java programmers earn a wage that is on average higher than those who program in other languages, Java is an excellent choice for new programmers to study as they extend their language skills and advance their careers. Use of Java Is Not Going Away Anytime Soon In the last few years, Java has stayed in a pretty stable situation, with at least 60,000 jobs always open. Python has made significant progress in recent years, but this has not prevented Java from becoming the dominant programming language in use today. Java has earned its reputation as the "workhorse" language of the programming industry for a good reason. When we look into the future, we can say with absolute certainty that Java will continue to be regarded as the most effective programming language for many years to come. Because of its reliability and adaptability, it is an excellent investment for any programmer or company that aims to develop systems that will stand the test of time. Therefore, you may relax knowing that Java will not be disappearing at any time in the near future. Versatile and Flexible Language Companies were confronted with a significant obstacle during the pandemic when workers were required to work from home. Because many businesses did not have the appropriate infrastructure and equipment to support remote work, their workers were forced to utilize their own personal devices, such as laptops, mobile phones, and tablets. However, the trend toward remote work began long before the pandemic and will continue even after it has passed. Good News for Those Who Code in Java Java is a very versatile and adaptable programming language that can operate on any operating system, including Mac OS, Windows, and even Android. Java allows businesses to design their own private software with the peace of mind that it will function faultlessly across all of the devices used by their workers while maintaining the highest levels of safety, security, and reliability. Java is, without a doubt, the best answer for businesses that want to keep up with the times and provide their workers with the resources they want to be able to do their jobs from any location and at any time. Strong Support From the Community Java has been around for a number of decades now and can be thought of as one of the oldest programming languages that are still in use when compared to its competitors. Many developers utilize Java for many challenges. There is a good probability that the solutions to the majority of the issues will already be accessible, since the method to finding them may have been tried and proven before. Additionally, there are a large number of communities and groups on the internet and social media, respectively. The other developers and newcomers to the field will find that their peers in the community are eager to provide a helping hand and find solutions to the problems they are experiencing. Multiple Open-Source Libraries Are Available for Java The materials included in open-source libraries may be copied, researched, modified, altered, and shared, among others. There are a number of open-source libraries in Java, including JHipster, Maven, Google Guava, Apache Commons, and others, which may be used to make Java development simpler, more affordable, and more efficient. Java Has Powerful Development Tools Java is more than just a programming language; its Integrated Development Environments (IDEs) make it a software development juggernaut. Developers have all the resources they need to produce top-notch apps thanks to industry-leading tools like Eclipse, NetBeans, and IntelliJ IDEA. These integrated development environments (IDEs) provide a wide variety of features, ranging from code completion and automatic refactoring to debugging and syntax highlighting. Not only is it simpler to write code while using Java, but it's also quicker. When it comes to the development of back-end apps, Java is the go-to solution for 90 percent of the organizations that make up the Fortune 500. Java serves as the basis for the Android operating system. Java is also essential for cloud computing systems like Amazon Web Services and Microsoft's Windows Azure and plays a key role in data processing for Apache Hadoop. Java Can Run on a Wide Variety of Platforms Java is a platform-independent programming language because the Java source code has been broken down to byte code by the Java compiler. This byte code may then be run on any platform by utilizing the Java Virtual Machine. Because it can operate on a variety of platforms, Java is sometimes referred to as a WORA language, which stands for "write once, run anywhere." Additionally, due to the platform-independent nature of Java, the majority of Java programs are developed in a Windows environment, even if they are ultimately deployed and operate on UNIX platforms. Conclusion To summarize, Java is a reliable and extensively used programming language that is important for the process of developing a broad variety of software applications. Possessing the appropriate resources can make a substantial difference in a beginner's ability to effectively acquire the language. This article features an overview of the five Java books that are considered to be the best for beginners and come highly recommended by Java professionals and industry experts. Because they include information on fundamental aspects of programming as well as object-oriented programming, data structures, and algorithms, these books are a good place for beginners to begin their studies. Beginners may get a strong foundation in Java programming and enhance their abilities in developing complicated software programs by following the directions and examples that are offered in these books and using them as a guide.
As an executive leader, I know Agile can produce great results. Why would I not want to jump on board the bandwagon? My organization can do more with the same amount of people. All we need to do is change some processes that we use. I encourage or direct my groups to implement a new framework to accelerate all the above improvements and come back to me with a budget for what it will take. The opposite side of the coin can also be proper. Why would executives expect that implementing Agile would take this level of change? Did anyone tell them how the organization needs to change and how much they will need to be involved in the transformation? Probably not. Leaders usually request funds for training but need help getting the education behind what it will take to succeed. At a high level, the executives expected that they would have to train their people and they would instantly become Agile. They didn’t know that a mindset from the executives down to the recently hired needs to change, and it’s the executive's job to lead that transformation. The executives are the only people in the organization that can pivot without mercy or guilt and steer the ship in a new direction. Leadership participation is necessary; however, comprehending the change management that needs to occur is paramount. Many organizations will start small and implement Agile or Scrum in a few teams to see how it works. There are many eyes on this in these experiments. You have two specialty roles in Scrum: the Product Manager and the Scrum Master. The rest of the team members are called developers. A developer is an all-encompassing, cross-functional name that covers development, design, and testing. The Scrum team is supposed to be self-organizing and self-leading. This is fine until external dependencies with other teams are not working on the same priority or schedule. This is an example where if the organization was all on the same page and the leadership led the transformation, the scrum teams could work much better and not be slowed down by these impediments. The scrum teams continue to work well until the point where the organization has not changed slows them down. This is also where the naysayers, even those in the Agile Teams, say Agile will not work.Another example is the product owner (PO), who should own the team's backlog of work. The PO will create stories and prioritize the work the team should be working on. Unfortunately, they could be working in a functional silo and be unaware or not in sync with the Product Management team's needs and priorities. On top of the impediments already identified, the team will still be required to follow the governance around deployment and release. The beauty of a Scrum team is that the team should be able to make the decisions and deploy their work. The organization's release management may be set up to only minor monthly releases and quarterly product updates. This again adds more delays to the overall cycle time of the team. Additionally, the metrics the team may need to capture for the enterprise may no longer align with their framework. The Scrum teams feel powerless and unable to communicate upward to effect the necessary change. If someone is brave enough to address the concerns of the Scrum teams with the executives, they will most likely state that they have always supported what the team has asked for. In the mind of the executives, they paid for the retraining of the Scrum teams to act differently. The executives had no concept that they would need to change and effect it across the ecosystem to allow these Scrum teams to succeed. The Scrum teams see the executives as not supporting them. The executive feels that they did what was asked for. Where is the disconnect? The Executives were at A, and the Scrum Teams were at Z, but the organization never went through B to Y, nor did anyone tell them they needed to. What would be worse is that the organization knew they needed to do B to Y but chose not to because the executives were not leading them to do so. The most important question is, how do you make the executives want to lead the organization through steps B to Y? That is an easy answer, find out what is most valuable to them that you know you can deliver by implementing Scrum. For instance, SAFe promotes implementing the outcome of predictability above everything else. If you have predictability, you will naturally improve the speed to market, engagement, productivity, and quality of the products you deliver. If you take a lean approach to eliminate or lessen waste in our processes, productivity and market speed will increase. How do you lessen or eliminate waste? An example may be empowering your Scrum teams to deploy on their own. Another example may be having dependent teams working together in cadence and synchronization. The Scrum teams see the executives as not supporting them. The executive feels that they did what was asked for. Where is the disconnect? The Executives were at A, and the Scrum Teams were at Z, but the organization never went through B to Y, nor did anyone tell them they needed to. What would be worse is that the organization knew they needed to do B to Y but chose not to because the executives were not leading them to do so. Leaders must pay more attention to how long these process changes can take. Every organization is different, and no exact estimate works well across all. Bringing in trainers is an excellent first step, but what do you do once the team is out of training? The organization needs to understand that a rebuild of the way the organization works may be in order. A coaching group that leads organizations through what needs to be done and what needs to be accomplished is paramount. Please reach out to an experienced Agile Coaching organization.
Building a new version of your product is an exciting endeavor, but it can also be an overwhelming one. In the earliest days of a startup, there tends to be little formal structure in place, which is usually for the best! Everyone’s wearing numerous hats and just trying to get the product and company off the ground. It’s a time of innovation and creativity. When we built the first version of our product, we didn’t have a dedicated product team. That changed with version two, bringing new opportunities and challenges along with it. Through trial and error, we moved through several iterations of workflow, communication, and reporting. The key was balancing input from both the engineering and product teams while also balancing planning and innovation. We learned a lot from this endeavor and, in addition to successfully updating our core offering, gained some important insights about how to set yourself up for success even (and especially) as your company grows. With that in mind, here are my top three tips for success to stay on track as your engineering and product teams grow. 1. Center the User To successfully build a new product, your engineering teams and product team must be in alignment. Of course, alignment can happen in many ways. If you simply have the engineering team taking orders from the product team, it will likely result in a worse outcome. Instead, the best way to align engineering and product is to make sure both are focused on users. Equip both teams with sufficient knowledge about the pain points and needs of users, so they can be checking in with the product from a user perspective on an ongoing basis. Consider a situation where an engineer suspects that following directives from the product team will result in clunky UX. They don’t necessarily have to solve the issue, but they should raise the concern. I’ve seen engineers do this quite effectively — asking if it’s possible to simplify the design, for instance. This speeds up development and, in the end, results in a product that is more valuable to users. By centering users, you’re aligning the goals of both teams and empowering engineers to push back and innovate when necessary, as opposed to simply nodding along and building exactly what the product team suggests. 2. Prioritize Reporting Alignment also comes as the result of ongoing communication. To that end, I suggest implementing a weekly reporting system. When both the product and engineering teams are being vocal about what they are working on each week, it helps everyone stay on the same page and makes the two teams feel more like one. Some updates might include: What are people working on at the moment, and what have they achieved? What else is left? What roadblocks or hurdles have slowed down work or might do so in the week ahead? Once again, both teams should be contributing updates. In the past, there were times in which there was tremendous communication within each team but a lack of communication outside of them. Sometimes, we failed to update the roadmap when a feature was complete. Other times, a product might be released as a minimal viable product, so it was considered complete on the roadmap, but the reality was a little different. Being proactive about, first, making sure the roadmap reflects the reality of the work taking place and, second, making sure communication happens on an ongoing basis is extremely helpful. To make reporting sustainable, choose a platform that’s easy to use. At Prefect, we conduct weekly reporting in a Slack channel. We also sync up quarterly to review larger goals and check our progress against them. 3. Leave Room for Innovation Speaking of the roadmap, one of the most difficult things to balance when the building is how much engineers should stick to the roadmap versus going off-script to build something they’re more excited about. The only way to know if you’re following the roadmap too closely is to have a strong connection with your engineers and to speak with them on an ongoing basis. Ask them: Do they feel like they've got the space to go and be creative, or do they feel like all of their time is taken up with roadmap items and prescriptive work? Of course, there are times when you need to follow the roadmap almost exactly, whether because of a deadline or user demands. When the roadmap has been disclosed to the board and current customers, swaying from it can be more challenging because several audiences are counting on the agreed-upon direction. At the same time, being too prescriptive about particular features can be really harmful to both the product and the morale of the engineering team. A 50/50 balance is a good goal. Is about half of your engineering team’s work creative or self-directed, or are they simply managing requests and checking boxes? The Bottom Line New workflows can feel daunting, but they’re also opportunities. If there’s one key takeaway, it’s that balance is paramount. As your product and engineering teams grow, it’s imperative to strike the right balance between adhering to the roadmap and allowing for creativity. But the first two tips— ongoing communication and alignment (by having everyone focus on the user) lay the foundation for finding this balance. That’s not to say challenges won’t arise. But with the help of these tips, your product and engineering teams will be better suited to handle them — and primed for making the best possible product in the process.
Much has been written about the impact of AI tooling on software development, or indeed on any creative endeavor. Some of those blogs may already be written by AI, who knows? If the benefits for mundane coding tasks today are any foretaste of what lies ahead, I dare not contemplate what the next year will bring, let alone the next decade. I’m not overly worried. The price of job security was always continuous upgrading of your skillset - which is why I’m studying for the Oracle Certified Professional Java SE 17 developer exam. The OCP is reassuringly and infuriatingly old-school. It grills you on arrays, shorts, ObjectOutputStream, the flip bit operator ~, and much you’re probably not going to write or encounter. What is the point? I’ll tell you. On the one hand, the programming profession has changed beyond recognition from when I started in 1999 and long before that. I look forward to veteran Jim Highsmith’s upcoming book Wild West to Agile. It’s supposed to be liberally sprinkled with personal anecdotes from the era of punch cards and overnight compiles. The teasers remind me of the classic Four Yorkshiremen sketch by Monty Python, boasting how tough they had it. “We lived eighteen to a room! – Luxury! We lived in a septic tank.” On the other hand, much less has changed at the level of methods and classes or loops and logic, despite the mushrooming complexity and range of APIs and tooling. Real language innovations are rare and the challenges for learners remain the same. Autocomplete doesn’t make understanding a tail recursive function any easier, but before Stack Overflow, it made sense to memorize such common patterns, because it was too much bother to look them up. It still makes sense. Professor Dijkstra Would Not Approve of Copilot You can safely assume that a famous Turing award winner like Edsger Dijkstra (1930-2002), would have been horrified by GitHub Copilot. He preferred doing his mathematical proofs on a blackboard and believed that software engineering had little to do with academic computer science and that the latter was not even about computers. After all, we don’t call a surgeon’s work "knife-science." Studying for the OCP means honing your Spartan mindset. Taking it unprepared, even as an experienced developer, is a waste of money. You will fail. Because it’s not a test of your design intuitions or clean coding hygiene. It calls on your knowledge of arcane details and APIs, but even more on your short-term memory skills to grasp some quite insane code. Boy, have these skills gone rusty! I wrote earlier that IntelliJ has made us all a bit stupid and it’s true. I’m still making plenty of mistakes. Factual knowledge gaps don’t trip me up anymore, but the time constraint does. The two-minute average you can spend on each question is tight. Yes, there are short questions requiring a single answer, but they don’t offset the ones with convoluted sample code, where you rack your brains for five minutes over the effect of changing one statement and fail to spot the missing semicolon after a switch expression, so the whole mess would never compile. Three Reasons Not To Bother There are reasons not to bother with this self-torture, but there’s a flavor of cognitive dissonance to them. They’re attractive to let yourself off the hook. First, what’s the point of playing human compiler and virtual machine over code samples that solve no real-world task and are only designed to confuse? The point is to train your mind muscles, to sharpen the saw. Nobody disputes that IDEs and their real-time compilation warnings are a great productivity boost. Nobody edits a big Java project in a plaintext editor. That would be inefficient and error-prone. But you want to know what you’re doing and at least understand the warnings. I don’t do dumbbell exercises for the sake of dumbbell exercises. I do them so I can still lift my own groceries when I retire. Secondly, neither this OCP nor any of its predecessors teach you how to write clean code, much less design a complex product. It has nothing to say about testing. It’s a thorough foundation of the language toolkit, but no more. Calling the exam inadequate for that reason is a strawman argument. You pooh-pooh it for not teaching you something it never claimed to teach you in the first place. If you take an advanced French grammar course, it won’t teach you how to write a novel either. A third bone of contention is the OCP’s focus on little-used and legacy features. Who uses serializable object streams when the whole world has been using JSON for years? Well, there’s an awful lot of twenty-year-old, pre-version 5 legacy around, and you shouldn’t be taken aback by it. Also, in the makers’ defense: deprecated features or ways of working do eventually make their way to the exit. The SCJP 6 I took in 2010 had some tough questions on low-level thread handling, all of which are now abstracted behind the concurrency API. We can expect arrays to go the same way, but no time soon. To Be Continued I have much more to say on each of the topics I raised, so I want to make this a series of blogs. I want to explore and explain my personal motivations throughout the process and hope to share useful advice on how to make the journey a success. The aim is not cramming to get a certificate and promptly forget what you learned. You’re not in high school. The aim is to respect the importance of certain mental skills we shouldn’t allow to get rusty. This will make you a better and happier software developer. I have the following topics in mind for the next months. Motivation and the "okay point." Do you enjoy learning for learning’s sake, or is it a means to an end? If so, you will master the bare minimum you need to get the job done and give up once you reach the okay point. This happens to seniors, especially when they are burdened with many non-coding tasks. The only effective way to learn is to make it fun, compelling, and practical. Always learn with the IDE at your side and disable all the clever assistants. I’m compiling a collection of mnemonics and rhymes, which I hope to expand. When it comes to remembering, the sillier and crazier the better – actually, the lewder the better, but I’ll leave that to your own imagination.
Field CTO is a job role that comes up more and more in software companies. There is no standard definition for this job role. As I regularly get the question about what a Field CTO does, this blog post summarizes a few general characteristics and then explores my daily life as a Field CTO. The post concludes with the answer to how you can also become a Field CTO at a software company in your career. General Characteristics of a Field CTO Search through business and employment-focused social media platforms like LinkedIn or jobs networks and portals like Indeed or Glassdoor. You will see many of the following characteristics, experiences, and tasks of most people that own a position as Field CTO: Meet many stakeholders across entire customer projects and sales lifecycles: Work with prospects/customers and partners (like cloud service providers, other software vendors, and system integrators) to ensure customer success. This includes joint planning of customer projects, a strategic roadmap for the enterprise architecture, or technical partnerships. Talk business and tech in the same meeting: Explain the product portfolio and business value of your solution on all levels, including business executives, tech executives, and whole project teams with project leads, architects, engineers, and business people. Evangelize the product portfolio and success stories: Perform internal and external events and create public content about case studies, technical architectures, and the business value of your solution mapped to industry and business problems. Events include webinars, business roundtables, tech meetups, and international conference talks. Content creation covers podcast interviews, blog posts, slide decks, and articles in magazines/electric journals. Collaborate with product and field marketing: Close to evangelism, but often independent, work with the internal marketing to support product announcements, regional road shows, global webinars, customer case studies, and other marketing initiatives to generate product/vendor awareness and sales pipeline. Be a public spokesperson: Present the employer in public relations. This differs from evangelism, as it is much more strict, dangerous, and sensitive. The key partners are the media/press holding interviews and research analysts (like Gartner and Forrester) getting educated about the product portfolio and case studies. Collaborate with product and engineering: Provide feedback from the meetings and public events to product management and engineering teams, like new feature requirements. And the other way, present the roadmap and strategic decisions to customers. This was the general summary. In the following sections, I will go into more detail about my individual daily life as a Field CTO. My Regular Personal Tasks as Field CTO In my world, everything is around open source, cloud, data streaming, analytics, and big data. My current employer Confluent provides a complete data streaming solution that can be deployed everywhere with a cloud-native product portfolio. Let's look at my recurring daily, weekly, or monthly tasks. The mix of all the following functions makes the difference. I might not be a complete expert in any of these categories. But I can leverage and combine my knowledge and experiences across different aspects. Each section shows a few references, so you get a feeling about my work in the different areas. Task 1: Support the Success of Our Customers Customer success is a term software companies focus much more on compared to the last decades - even to the degree that whole departments are named after it. While it makes total sense to make and keep the customer happy, the cloud enforced this paradigm much more strictly as the financial success for the software vendors is based on continuous consumption of the cloud products instead of just selling perpetual software licenses. Customer success obviously increases the customers' satisfaction while using a product or service. This results in decreased customer churn and increased up-sell opportunities. Customer success is a company effort from the CEO down to the account team. You work with strategic customers on every level, including top management, decision-makers, project leads, architects, developers, etc. Here are a few things I do to support a great relationship and the success of our strategic customers. Share Technical Architectures Mapped To Real-World Experiences I map my experience from what I see from customers across industries with relevant technologies. In my case, I have worked in the data integration and analytics space since I wrote my degree dissertation at the university many years ago about middleware, service-oriented architecture (SOA), and enterprise service bus architectures. Today, working for the data streaming vendor Confluent, I focus on open-source technologies and cloud services around Apache Kafka. A Field CTO is not necessarily a deep technical expert like the consultants or support engineers. Still, the Field CTO understands the technology and how it complements or competes with other technologies. I can explain design principles for distributed computing architectures, hybrid cloud deployments, cloud-native architectures, microservices, and data mesh. As Field CTO, I understand how data streaming helps to solve business problems using these architectures. Last but not least, and maybe most importantly, I educate how data streaming fits into the enterprise architecture with other technologies and products for middleware, data analytics, machine learning, the internet of things, blockchain, and so on. Here is a concrete example where I map retail use cases for omnichannel communication focusing on use cases, not technology. Despite the technical content, this slide is also easily understood by the executives and business teams: Some Field CTOs are very technical and collaborate a lot with engineering to add technical features or improve the performance of the product together with key customers. To be very clear: That's not me. :-) Talk to Executives and Very Technical People in the Same Room A Field CTO can and has to talk at the right abstraction level. Contrary to many other colleagues involved in customer success, I do not focus on just selling our product or supporting the customer in production, or implementing a new application. Instead, I discuss the value of our product portfolio for the next customer project or the strategic enterprise architecture. Hence, a few aspects are different in my meetings compared to my colleagues from presales, consulting, or support: I usually support the early stages of a customer project or sales cycle, where a decision needs to be made about the best architecture, technologies, and strategic planning. The starting project teams get support from me to spread the benefits of their strategic decision across their organization - the bigger the account, the more often this might need to happen. I need to speak the languages of executives and technical people in the same meeting room and confidently answer questions on all levels. I interact with senior executives and technical experts within the Fortune and Global 2000, but also smaller enterprises and startups. The meetings are very different depending on the company size. An executive in a startup is often still the technical decision-maker. The mix of meetings with different kinds of companies is one of the most helpful aspects because one can learn from the other. Think about a traditional bank and a FinTech startup. The Field CTO helps connect the dots and educates companies on how others solve business problems and innovate. Share Industry Expertise To Talk at the Right Level No matter what company size, the key challenge is usually the same (and that's what most people struggle with): Talk at the right level. For instance, don't discuss technical details if you talk to a CIO. Don't even talk about the product or technology. A CIO needs to solve business problems and buys any product that helps. In my case, the CIO rarely cares if the problem is solved with Apache Kafka or any other technology. So, how do you talk at the right level? The answer is simple and complicated: start with case studies. Show knowledge of the customer's industry. Speak to customers in a language they understand. The conversations begin well if you explore a success story from another public customer in the same industry. You can go down to technologies and architectures as much as needed (or skip it if you talk to an executive or business person). For instance, if the developers ask how transactional workloads are implemented with data streaming, I go down to the API level and explain the concepts and functions of Apache Kafka's exactly-once semantics. Represent Headquarters in Other Time Zones Here is one of the biggest problems of most software companies that originate in Silicon Valley: Time zones. Actually, every startup begins with this problem, no matter if you create an innovative business model in a tech hub like Tel Aviv, Berlin, or Bangalore. I am used to working for companies that emerged in Silicon Valley. The time zone is nine hours behind my home in Germany. The Middle East, Asia, and Australia struggle even more. Sales, marketing, consulting, and support need to be regional. A software company cannot grow successfully otherwise. But what about top management, field leadership, and product management? Correct. Most of these colleagues often live close to the Pacific time zone. That's where Silicon Valley is. Otherwise, alignment in creating strategies, making decisions, and coordinating the worldwide business is much more complex. A regional Field CTO is especially helpful in regions outside the headquarters' time zone. So, even if the most significant piece of revenue comes out of the US, you might find one Field CTO for the US, one for EMEA, and one for APAC in the company. Why? Because the Field CTO in other time zones takes over some tasks of headquarters. Present and Discuss the Company Vision and Roadmap One of the most common inquiries I get, especially when traveling outside the US, is doing roadmap presentations about the company’s vision and strategy (under NDA, hence not in public events) because product management sleeps while I visit the customer. But there is more than roadmap discussions. The reality is that digital innovation usually happens first in a few countries, like the US or Mainland China. Other countries learn and repeat. The Field CTO sees innovative and successful trends and shares the news with different time zones. Two examples: Technical Example — Cloud Infrastructure: Some countries are just moving to the cloud. For instance, when I visited the Middle East a few times in 2022, the significant discussions were still about the availability of cloud providers like AWS or Azure in countries like Qatar or Saudi. Hence, these countries are forced to be years behind the US or many European countries. Business Example — Live commerce (aka social commerce): It has been a very common business model in retail in Asia for several years already. This sales innovation combines instant purchasing of a featured product and audience participation via social networks. It still surprised customers in the US and Europe when I present how Apache Kafka transforms the retail and shopping industry with live commerce. Task 2: Thought Leadership A thought leader is a known expert in a specific field. In my case, I have worked in the data integration and analytics space for many years. The topics and technologies change over time. In my early career, I focused on service-oriented architectures using Enterprise Service Bus (ESB) technologies and Batch ETL tools. Today, I focus on data streaming with technologies like Apache Kafka or Apache Flink and design principles like microservices and data mesh. But since the start of my career, I have documented the integration and data space evolution with public presentations, blog posts, and articles. I share my experiences with case studies, best practices, anti-patterns, and trends. Thought leadership means sharing experiences and educating others. There is disagreement, too. That's fine and part of why the software industry is so exciting. Evolution and innovation never stop. Trustworthy Consulting for Customers, Partners, and Community Sales and marketing are crucial for the success of every software company. Each business unit has its own goals, like reaching revenue goals or creating a lead generation and revenue pipeline. These goals sometimes conflict with focusing on the big picture of the customer and its enterprise architecture. Every software company puts itself in the middle. You won't imagine how many vendors I have seen in the integration and analytics space pitching themselves as the heart of the customer's enterprise architecture. Every company has plenty of other vendor agreements. Not everyone can be at the heart of the enterprise architecture. I always recommend using the right tool for the job. It is typically not sales or marketing that solve this conflict. It is not their task either. Independent consultants and system integrators help fix this mess. From the software vendor side, the Field CTO is a trustworthy person explaining when to use the own product portfolio and how to complement other technologies in the enterprise architecture. The beauty of open source is that you can help your colleagues and the broader community simultaneously with thought leadership. In the end, it is a win-win situation. You won't imagine how often I come into a meeting anywhere in the world, and a few people in the room from the customer already know me before I introduce myself. I articulate when and when not to use our products. Sometimes, sales reps in a customer meeting might go a little crazy inside when I present when NOT to use Apache Kafka. A Field CTO is a trustworthy advisor. Present Industry Trends Mapped to the Product Portfolio I learn daily about new use cases, technologies, and other trends across industries. Without up-to-date industry knowledge, it is impossible to be a trusted advisor to customers, partners, and the broader community. I spend at least an hour every single day educating myself. The focus here is not technology but industry developments. Podcasts are your best friend when traveling or just taking a break from work and going for a walk or run. As Field CTO, I remain current on industry trends and act as an industry thought leader and trusted advisor in internal discussions, customer meetings, and public events. Deliver tangible content (articles, whitepapers, slides, videos, demos, etc.) to be used by various business units like sales, presales, marketing, partner, product management, and others. But the content is NOT sales but trustworthy education for everyone. In my case, I get great feedback from colleagues, partners, customers, researchers, students, and competitors (!) about how my thought leadership helps to define the proper enterprise architectures and solve business problems. My presentation about use cases and architectures for data streaming across industries is a great example focusing on case studies, not the underlying technologies and products. A Field CTO confidently presents in front of audiences of all sizes (from 1 to 1,000 and more people) to communicate the value proposition of strategic and tactical concepts and architectures for complex enterprise use cases. This happens in on-site and virtual events. I deliver virtual webinars, customer tech talks, on-site conference talks, keynotes, roundtables, and in-person panel discussions every month. Nobody was born with the talent of speaking in public. Speaker training never hurt anyone. One should seek honest feedback on the presentation style regularly. Look at what kinds of international talks I give across the globe to get a better feeling for my public content. Here is a picture where I speak at Big Data Spain in Madrid: A Field CTO in a bigger company might focus solely on a single industry to go deep into conversations on all levels. I prefer another way. I am not a deep expert in one industry. Instead, I can share case studies and architectures across all major industries. Customer Meetings at International Conferences and Regional Events Thought leadership is not just about writing blog posts and doing presentations. I attend many public events every year around the world. This includes events organized by our company and external conferences. For instance, at Confluent, the most critical events are our yearly conferences in the US (Current, 2022 in Austin) and Europe (Kafka Summit, 2022 in London), plus regional events (Data in Motion tour around the world; I attended Frankfurt, Zurich, Stockholm, Amsterdam, Tel Aviv, and Dubai in 2022). I also participate in external events. One of my yearly favorites is AWS ReInvent in Las Vegas. But I am not an attendee at all these events. I usually don't have much time to attend sessions. Instead, I have customer meetings. Up to ten per day. It can become very stressful and exciting at the same time. Additionally, I usually give a talk or keynote and moderate a customer roundtable (often for executives). Looking at my slide decks and blog posts, I have plenty of success stories and architectures I can discuss on every level, from the CIO to the software developer for financial services, insurance, retail, telcos, gaming, public sector, logistics, travel, energy, automotive, healthcare, and software industry. I can adjust my content depending on the audience. For instance, if I speak at the yearly Automotive IT Congress in Berlin, I know the audience is top management from OEMs and suppliers. Hence, I present case studies about car makers, manufacturing, and mobility services. When I go to the Apache Kafka open source community meetup in Berlin in the evening, I speak about deep technical and non-industry specific general content like disaster recovery strategies for data streaming. And when we have a customer roundtable for lead architects, the conversation changes to a completely different story once again. A Field CTO Is Not a Developer Advocate or Evangelist Note that the content of a Field CTO differs from developer advocates/technology evangelists. These colleagues focus on source code, live demos, deep technical Q&A, etc. Don't get me wrong: Some developer advocates publish unique thought leadership content. And Field CTOs create code examples and demos. But the priority and focus are very different. The overlapping in the daily business is less than 10% in my experience. The Field CTO understands the market and the business in depth. The focus is on customers' problems and innovation. Mapping these challenges into the software vendor's product portfolio is a key focus area. Contrarily, the developer advocate focus is using the product portfolio of the software vendor to create exceptional code examples/demos and shares the developer experience with the community (i.e., customers and potential customers) by doing blog posts, meetups, conference talks, podcasts, etc. Having said all this, some content I create is comparable to presentations or blogs of developer advocates. For instance, I wrote a few quite technical articles on the Confluent blog. Hence, some people define Field CTO as a C-level developer advocate and evangelist. The content of the Field CTO (similar to the content of the developer advocate) is not just helping the customers, partners, and the broader community. I also use it for internal enablement. I have a detailed explanation in the next section for this. Task 3: Collaborate With Internal Teams A Field CTO is connected with colleagues across various departments within the company. And on all levels, from C-level to field teams to engineering. Collaborate With Product Management and Engineering The Field CTO supports product management and engineering with feedback from customer conversations and shares the company's strategy and vision with the customer. Here are specific tasks I do regularly. I want to emphasize that I am not the lead or expert in any of these tasks. I add another perspective from my experience (that is different because of my daily job meetings customers, creating thought leadership content, etc.): Share feedback from the field: Feedback includes ideas, complaints, and trends that I hear in my 100+ customer meetings during the year across the globe. I do monthly 1:1s with a few product managers, plus many discussions whenever I meet product managers or engineers at internal or external events. Join subject matter expert (SME) groups: Dedicated groups with colleagues from all different business units meet weekly to discuss a specific topic. I join a few of these whenever I have time. Review internal and external documents: I look at internal documents like new product ideas, previews, or roadmap draft templates. I also collaborate with our marketing team when we create external-facing content like case studies or pitching decks. Analyze competitive intelligence: A dedicated group focuses on market intel. In the software industry, it is hard to be and stay successful if you don't know what your competitors are doing. I share feedback with this group whenever something comes up in a customer meeting or at an event. I read our updated internal documents monthly to learn how to discuss our strategy and product in competitive situations. Present roadmap to customers and prospects: I discuss the company's vision and upcoming features (under NDA) in customer meetings. This is crucial, especially outside the US, where it is much harder for the account teams to get an appointment with colleagues from the US time zone. I cannot go as deep as a product manager. I only share the high-level overview and involve the right product manager in a follow-up with the customer. Internal Enablement of Sales and Marketing In a good company, even the account manager and presales colleagues clearly explain how the own product fits or does not fit into the enterprise architecture of the customer. No one lies and sells products where it is no fit. Though, often this is more of an educational problem. The Field CTO educates internal teams about practical DOs and DONTs. In my case, data streaming is a super complex field. Hence, thought leadership is not just for customers. It is widely used by colleagues, too. For instance, my blog series about data streaming vs. data warehouse and data lake explores how and when data streaming complements other data platforms. Many new hires across business units read this to understand how we fit into the broader data platform market. The Field CTO enables internal teams by demonstrating how to pitch their product's business value and unique selling points. This is crucial for many departments, including sales and marketing. I work with our internal enablement team to incorporate and share my knowledge and experience with new hires. This is not replacing any other internal enablement but is complementary. It adds another perspective. Support Mergers and Acquisitions (M&A) Mergers and acquisitions (M&A) allow enterprises to grow or add new products more quickly and change the nature of their business or competitive position. A Field CTO helps evaluate other companies to guide the M&A team and top management in making the right decisions about buying or not buying the company. The feedback from the Field CTO is about market trends, visibility of the company in the customer base, feedback about the product experience, etc. Task 4: Public Spokesperson I have covered thought leadership and evangelism already. However, being a public spokesperson is very different. A spokesperson is engaged or elected to speak on behalf of others. In the present media-sensitive world, software companies have limited employees who are allowed to speak to the media and analysts. First, you receive formal training in journalism, communications, public relations, and public affairs in this role to ensure that public announcements are made in the most appropriate fashion and through the most appropriate channels to maximize the impact of favorable messages and minimize the impact of unfavorable messages. Being a spokesperson is much harder than doing thought leadership or technical evangelism. Hence, only the very experienced (and responsible) top management announces most critical messages, like the CEO and CFO doing the earning calls in a public company. A CTO or similar colleague announces new product releases. A Field CTO can work as a spokesperson to support: Public relations: Press articles, interviews, statements Analyst relations: Research interviews, presentation of product features and case studies Give Press Interviews and Write Public Articles For public relations, the Field CTO can help significantly in markets outside headquarters. In my case, most interviews and press releases in English are done out of headquarters in Silicon Valley and supported by top management and regional colleagues. I mainly do interviews and press articles for regional events in Europe. The public relations team uses me a lot as a German spokesperson, as I am German. But I also do English press articles, interviews, and podcasts: Contrary to regular blog posts or podcast recordings, the internal communications team reviews (and often even prepares). I collaborate and align with the team to ensure the proper positioning of our products and review the technical content. My broad experience working with so many customers always helps me find the right words, whether an article is for a developer interview or an interview in a CIO automotive magazine. I link my press publications on my website. Educate Research Analysts Like Gartner and Forrester For analyst relations, it is different. While product management is crucial to present our product features and roadmap, I am involved in discussing case studies and industry-related trends. I have meetings and calls regularly with research analysts from Gartner, Forrester, IDG, and others to educate them and provide Q&A from my practical worldwide experience. Working with analysts differs from daily meetings with customers or partners. These research companies don't care only about the technology but about the success stories and the solved pain of customers. I guess everyone has seen a Gartner Magic Quadrant or Forrester Wave. People underestimate that these papers do not just evaluate the product portfolio but the vendor itself. The current product portfolio is essential, but the future product vision, continuous customer support of the vendor, and in the end, customer success and happiness are as necessary for the analysts. In What Business Unit Is a Field CTO? That's a brilliant question. There is no logical answer. I can only talk about myself. During most of my career, I was in "special groups" that have different quarterly goals (often hard to measure in $$$ and quota) and rules (like travel restrictions). My daily job is very flexible and differs every single week. My priorities can change from quarter to quarter depending on new prioritization, regional re-organizations, changes in the competitive market, and so on. I love it. But it does not fit into a standard sales, marketing, or engineering job role (with all its processes and rules). Most importantly: As Field CTO, I do not directly report to a sales or engineering manager. I work in a dedicated innovation group. That enables independent (but aligned) working on my tasks. Other companies might put the Field CTO role into another business unit. It does not matter as long as you can fulfill your tasks the right way. But I could see conflicts if I directly report to a sales or marketing manager. Why This Job Title? The title Field CTO is coming up more and more in software companies. It is often used because some people in the company need a clear, visible description of their tasks. Many people use this term because there is no better one, and the role (maybe) did not exist in the past. There are plenty of other job titles. Chief evangelist? Global technology advisor? Distinguished XYZ? I feel these titles make little sense and do not clearly say what I am doing. Hence, like data streaming or cloud-native data warehouses define new software categories, the job role of the Field CTO creates a new category. Let's review this in 2, 5, and 10 years... Is It a Management Role? No. Field CTO is NOT a people management role. My management asked me tens of times if I wanted to get management responsibility and lead other colleagues. The clear answer was always a rapid "no!"... I am very good at thought leadership in technology and innovation, creating public content, talking to different kinds of people in small and big audiences, and collaborating with customers and colleagues around the world. But I am not interested in managing other people. If you look at my long list of tasks, you quickly realize there is no time for this. Where Is the Headcount on Indeed, Glassdoor, LinkedIn, Etc.? You often don't find enterprises directly searching for this role. And frequently, it has a different name, as the title was just being created in the industry for a few years. There is no standard definition for a Field CTO like a sales rep, presales, field marketing, or software engineer. Sometimes, the Field CTO is an informal role, not an official headcount. Your Workday might still say you are a distinguished software developer, principal presales, or similar. But you still use Field CTO in your internal and public profile. Search for "Field CTO" in quotation marks (otherwise, you will only find CTOs - a very different and much more frequent job role). If you want to see a few other job descriptions and the career histories of Field CTOs, first check my Linkedin profile. Then search for "Field CTO", and you will find several people from software companies. For instance, my search shows connections from Snowflake, Databricks, VMware, MuleSoft, Tableau, and others. Field CTO is a new job role getting more and more traction. Other Field Ctos in the Software Industry This blog post is a story about my daily life as Field CTO. My personal definition of the job role of Field CTO in one sentence: The Field CTO is a trusted and well-known advisor for the product and technology my employer sells to make customers successful around the world. As discussed in this blog post, the role is very individual and can look very different in other business units or organizations. Hence, I also want to share a few of my fellows from other software companies so that you see a few more examples that are similar and different at the same time: Daniel Hand, Field CTO APJ, Cloudera: A senior technology leader building and leading teams within disruptive, high-growth technology companies. "As a Field CTO, I help guide organizations to become increasingly data-driven through the adoption of Cloudera’s Enterprise Data Cloud." He is also a published author and contributor to O’Reilly Media and Addison-Wesley. Fawad A. Qureshi, Global Industry Field CTO, Snowflake: Fawad is a strategic technology leader with more than two decades of international industry project experience involving consulting on enterprise data warehouses, big data analytics, and cloud solution architectures. He helps customers in multiple industries to translate their business requirements into technology solutions. He is passionate about sustainability and helps his clients achieve their sustainability goals using data and analytics. Jeroen Reizevoort, Field CTO EMEA, MuleSoft (Salesforce): Inspires customers by aligning their business initiatives to technology trends and helping them to make that combination actionable. "I am a technical executive responsible for communicating the corporate direction and product roadmap to regional customers’ business and technology leaders, as well as influencing the corporate and product strategy through industry expertise and synthesized field input." Stephen Walters, Field CTO, GitLab: Works with customers on DevOps initiatives to the development lifecycle. He is a subject matter expert with management and consultancy experience across end-to-end IT disciplines. "As a Field CTO, I am always looking at emergent areas of business and technology. A key area at the moment is value stream management." His job role includes being a keynote speaker on specialist subjects at conferences and webcasts and publishing articles. Liz Fong-Jones, Field CTO, Honeycomb.io: Promoted from Principal Developer Advocate to the Field CTO role. She blends hands-on technical experience as a member of Honeycomb's platform rotation, pairing with customers on implementation and articulating the business value of observability to leadership and executives. She's a frequent keynote speaker and author of Observability Engineering, published by O'Reilly Media. How To Become a Field CTO Many people ask me how they can get a job similar to mine. They see how many things I do, where I travel, and what lessons and case studies I share. That's very exciting and attracts many people. What previous job positions should you have had to become a Field CTO? A customer-facing role is critical. Ideally, you mix different experiences like developer relations, consulting, and technical sales (aka presales). Here is how I would define the critical criteria for becoming a Field CTO: Talent: Mix of many things (tech and non-tech skills) Experience: At least 10+ years with different companies, technologies, industries, regions, etc. Curiosity: Learn something new every day across many (tech and non-tech) topics Travel: Meet customers/prospects/partners/community/colleagues everywhere in your region or even worldwide Talent is likely the most challenging part, as you cannot learn everything. If you are unable (or don't enjoy) speaking to different personas (like CIO, business person, developer), this job is impossible. You must also work with many people with very different opinions and fight against your thought leadership. Experience is about broad knowledge across many topics. Technology is vital, but there is so much more. You must understand internal and external processes, sales cycles, cultures, regulations, etc. Curiosity is mandatory, as you will (have to) learn new trends and innovations before most people even think about it. And compare and integrate it with existing technologies and platforms. It is not just about "why change" but an evolution of your customers, not a "big bang". Travel is the hardest part for many people. If you cannot travel regularly (at least in your region), forget it. Yes, things go virtual. But like many tasks of executives and top management, the functions of the Field CTO need interaction with humans. Meeting customers on-site in critical meetings or sharing case studies in roundtables only works well in person. And each region is different. Did covid change travel? No. Not for the role of the Field CTO. Instead, it showed me how important and valuable on-site meetings are. Field CTO Is a Critical Position in a Software Company The broad spectrum of tasks allows a Field CTO to leverage the unique capabilities for internal and external thought leadership and knowledge sharing. The success of the customers is the ultimate goal of every employee of a company. Collaboration with various internal teams, partners, customers, and the community is essential. The combination of continuous learning and knowledge transfer makes a good Field CTO. Curiosity combined with the human factor of 1-1 conversations in a variety of contexts is the secret sauce. What are your tasks as a Field CTO? Or, if you want to grow into that role, what is your current job role and strategy for the future? Let’s connect on LinkedIn and discuss it! Join the data streaming community and stay informed about new blog posts by subscribing to my newsletter.
Is self-management an essential building block on an organization’s path to business agility or a nice-to-have cultural twist to, for example, keep teams happy and attract new talent? While many people, particularly at the management level, are skeptical about the concept, I am convinced that organizations need to descale and regroup around aligned, autonomous, self-managing teams in a complex environment. Ultimately, only the people closest to the customers’ problems can solve those within the given constraints while contributing to an organization’s sustainability. Please continue reading and delve into the reasons that support self-management. The Top Ten Business Reasons To Embrace Self-Management Here are my top ten reasons why self-management is essential for developing new products in complex environments and addressing customer needs: Increased innovation: Self-management fosters a culture of creativity and experimentation. Team members are empowered to take risks, try new ideas, and learn from failures, leading to more innovative solutions for customers. Greater adaptability: In a complex environment, change is inevitable. Self-managed teams are more agile and can adapt to new situations, pivot their approach, and respond to customer needs more effectively than traditional hierarchical teams. Improved communication: Self-management promotes open and transparent communication within the team. Transparency ensures that information is shared effectively, leading to better collaboration and problem-solving. Empowerment and autonomy: Self-management empowers individuals and teams to make decisions and take responsibility for their work. This autonomy leads to higher job satisfaction and increased commitment to the organization’s goals. Moreover, it attracts talent from other organizations. Faster decision-making: Self-managed teams can make decisions quickly without waiting for approval from multiple levels of management, accelerating the development process and enabling more immediate responses to customer needs. Better problem-solving: Self-managed teams work close to customers and have a deeper understanding of their needs. This proximity enables them to identify and address problems more effectively than a management-driven approach. Resilience and risk mitigation: Self-managed teams are better equipped to identify and address potential risks early in development. This proactive approach to risk management helps build resilience and ensures more predictable outcomes. Continuous improvement: Self-managed teams focus on continuous learning, improving, refining processes, and iterating on products within the given constraints of the organization. This commitment to constant improvement ensures that products evolve to meet customer needs. Higher engagement: When team members own their work, they are more engaged and motivated. This ownership leads to increased productivity, better quality work, and a more substantial commitment to meeting customer needs. More efficient use of resources: By allowing team members to allocate their own time and prioritize tasks, self-managed teams can use resources better, improving productivity and reducing waste. Now that we have established the usefulness of self-management from a business perspective, the question is: how do we get there? (Spoiler alert: Your teams won’t become self-managing by contracting McBoston to roll out a new initiative.) Why the Change to Self-Management Cannot Be Outsourced While external consultancies may support your organization’s effort to become an agile organization due to their broad experience with other clients, real change can only come from within an organization. Any change effort needs to include people, give them a voice, and convince them that change is in their best interest: “Agile” cannot be pushed; it needs to be pulled. Consequently, avoid relying on external consultants. Instead, to foster self-management within the organization, consider the following suggestions: Redefine leadership roles: Shift the focus of management from controlling and directing to supporting and enabling teams. Managers should help remove obstacles and provide resources for self-managed teams to thrive. Managers need to move on from problem-solvers on behalf of their teams to become servant-leaders who strive to make their teams successful. Internal agile champions: Identify and empower individuals with experience or interest in agile practices. These internal champions can advocate for and drive the adoption of self-management practices across teams. Agile training and education: Invest in training and education for employees at all levels, including workshops, online courses, or even certifications, to help them better understand and apply agile principles and self-management practices. Coaching and mentoring: Encourage experienced agile practitioners to coach and mentor others, helping to create a culture of learning, sharing, and fostering the growth of self-managed teams. Foster a culture of trust and transparency: Encourage open communication and collaboration across all levels of the organization. Transparency will build trust among team members and empower them to take more ownership of their work. Regularly inspect and adapt: Conduct periodic Retrospectives and assessments to gauge the progress of self-management adoption. Use the insights gathered to inspect and adapt the approach, ensuring it aligns with the organization’s unique needs and culture. Incremental adoption: Start small by implementing self-management practices in a few pilot teams. Learn from their experiences and gradually expand self-management adoption to other teams as they become comfortable with the new approach. Encourage cross-functional teams: Form cross-functional teams that bring together individuals with diverse skills and backgrounds. This encourages collaboration and knowledge-sharing and fosters self-management. Provide the necessary tools: Equip teams with the tools and resources to collaborate, plan, and track their work effectively. This could include agile project management tools, communication platforms, and continuous integration and deployment systems. Celebrate successes and learn from failures: Recognize and celebrate the accomplishments of self-managed teams. At the same time, encourage a culture of learning from mistakes and iterating on processes to improve continually. By focusing on these strategies, an organization can foster self-management among its teams and embark on its journey to become agile. Conclusion Self-management is essential for developing new products in complex environments and addressing customer needs. By embracing self-management, organizations can foster innovation, adaptability, and a stronger customer focus, ultimately leading to better products and satisfied customers. Moreover, adopting self-management also offers tangible benefits to shareholders by increasing efficiency, promoting innovation, and enhancing adaptability, ultimately driving growth and success for the organization. What is your experience with self-managing teams? Please share with us in the comments.
You probably have your favorite recipe you like to treat yourself to every once in a while. Would it still be your go-to dish if you were to miss a couple of ingredients while cooking? A good checklist in Jira can ensure that you and your team are following the recipe to a tee every time. Best Practices of Using Checklists in Jira Many users get blindsided by the deceptively simple nature of a ToDo list. These tips and best practices can help you transform a checklist into a tool that adds clarity to business processes, leverages new forms of automation, and helps to break down tasks more effectively, thus unloading your mind. Write a Checklist With the Correct Persona in Mind Sure, some of the tips below come from a more generalized approach to making checklists, but they are still a valid addition to managing checklists in Jira specifically. If writing a checklist for yourself: Checklists and the GTD (Getting Things Done) method are a match made in heaven. Putting all of your ideas and ToDo’s in a written form can help you clarify and prioritize tasks that can then be translated into clear and actionable checklist items. Speaking of actionable items, make sure that the tasks from your checklist are not too big (make sure they don’t require further decomposition), and not too small. If writing a checklist item takes longer than getting that part of the job done - just do it. Lastly, you need to account for things changing. Review your checklists regularly to make sure they fit into updated processes or account for new data. If writing a checklist for somebody else: People intuitively lean towards completing the tasks in the order they are presented to them. Therefore the first thing to consider when designing a checklist for someone else is the order of your checklist items. We’d also suggest ensuring that the weight and complexity of your checklist items are relatively similar to one another and that there are not too many of them. Having a checklist that holds more than ten items is intimidating and discouraging. Moreover, this volume indicates that the story itself can be broken into several smaller parts. Over-communication is your friend. Don’t hesitate to add information about something you believe is self-explanatory as not everyone comes from the same background. Add as many details as needed like, link to docs or internal policies, or even describe the context in your own words. A Good Checklist Is More Than a List of Items A good checklist is more than a list of items one crosses off to make sure that a feature meets its Acceptance Criteria. The functionality of Smart Checklist allows users to format their checklists, add assignees, share links and knowledge, and set up deadlines making a checklist item into a subtask of its own with the added benefit of keeping everything conveniently under one parent issue. Checklists will work better than a subtask when you want to break down work into smaller parts while keeping your Jira instance much cleaner and easier to navigate. Checklists are great for adding clarity to an issue such as context description, links to relevant materials and templates, etc. One of the primary use cases our engineers have is keeping the Definition of Done inside a ticket so that internal standards are enforced. Another great example of using a checklist would be a QA issue where a checklist can describe the test plan. Checklists are a great fit when the main feature has a list of requirements as in the screenshot below. Writing an implementation plan in case you are an engineer Handy Tips and Best Practices for Using Checklists in Jira Customize the checklist to fit the way you work. Smart Checklist, for instance, has customizable statuses and you can go beyond keeping them to “to do," "in progress," or “done." Having statuses like “in review” or “in QA” helps the team stay on the same page as to the overall progress on a given issue. Use checklist templates. Every company deals with recurring processes. Let’s take onboarding as our example: you need every newbie to finish certain predefined steps like logging into their corporate accounts, reading through the company’s or product’s wiki, etc. Our Jira Checklist allows you to make checklist templates for these kinds of recurring tasks.Engineers, Finance, Marketing, and HR teams are among the heaviest users of checklists at Railsware, and here are several examples of repetitive tasks they automate with a checklist: Definition of Done Onboarding Procurement Content publishing Use automation rules to your advantage. Automatically adding a checklist to an issue of a certain type to serve as a template is nice, but there’s more. Smart Checklist is integrated with Script Runner, JMWE, and Automation for Jira. What this means is that users can set up their automation in a way where a checklist is added based on the content of an issue and their workflow setup. Commit to the process: You will not be able to follow your plan when you can’t trust your own data. Unrealistic or outdated deadlines, for instance, are indicators that the process you’ve established isn’t working. The same can be said about checklist items that remain unchecked when the issue is moved to “done." Feel free to apply the Broken Windows theory to understand the impact of seemingly small cases like the ones mentioned above: if people start discarding certain checklist items, they will inevitably discard entire checklists sooner rather than later. How We Use Checklists at Railsware (Checklist Use Case Examples) We’ve touched on the subject of real-life checklist use cases in the best practices section of the article, but how about expanding the examples a bit? Definition of Done The best way to make your Definition of Done easily accessible for everyone involved is to simply put it inside your Jira. Once there, it’s all that much easier to keep things updated and organized across all issues. Checklists work exceptionally well in this case because Jira doesn’t have a dedicated feature for tracking the Definition of Done and having every element of it as a separate subtask leads to a mess on the board. Acceptance Criteria When the dev team is building a feature they have certain criteria they need to meet, these criteria are used to ensure the team knows what they are doing and why before the development begins. Some teams tend to put their Acceptance Criteria into the description field of a ticket. However, we’ve found that using a checklist is a bit more user-friendly as it’s much more visible when it is not squeezed together with the rest of the ticket description. Onboarding An onboarding ticket is an excellent example of using checklists to repetitively communicate value. Think about it - there are always certain steps a new employee needs to make in a particular order in order to start working. Moreover, there’s a lot of information you must share like security policies, corporate values, and vision, or tutorials on using software. Smart Checklist allows you to set this once and every new onboarding ticket will be generated with a checklist inside of it. Procurement Procurement is a complex process that involves a plethora of steps. A simple mistake at any stage from drafting a contract to a vendor to confirming the shipping address for new hardware can cost a lot of money. Having a checklist that sets the entire process in stone is an excellent way of securing the team from accidental data input errors or missing something that’s quintessential to the process by accident. QA Writing test case descriptions is a monotonous, repetitive task. But think about it this way – the better a job you do at this stage, the more time (and budget) you’ll save in the long run. Using a checklist tool can save you at least a bit of trouble as you can create the steps necessary to run the test case once, and they’ll automatically be there once you open an issue of a certain type. Migrating Checklists From Trello Managing several teams that are working together on a project is no simple feat. The fact that they are using different tools to track, plan, and coordinate their work adds even more salt to injury. Luckily, there are ways you can synchronize like, for instance, the Trello to Jira integration power-up. Our team has built a Smart Checklist Exporter power-up that helps strengthen this bond by allowing you to export checklists from Trello cards into Jira. This power-up makes following certain established workflows much simpler as you can take the ones that have proven their effectiveness from one project management tool and export them into another. Wrapping Up As you can see, there are plenty of benefits that come from introducing checklists to one’s Jira instance. Hopefully, these best practices will help break down tasks and unload your mind.
As AI technology continues to evolve, it is creating a vast array of job opportunities that were once unheard of. While traditional AI roles such as data scientists, machine learning engineers, and AI researchers are widely recognized, there are several lesser-known careers that are equally important in driving change in the tech industry. In this article, we will explore 21 hidden careers in the AI revolution. These hidden careers in the AI revolution are becoming increasingly vital as AI technology becomes more pervasive in various industries. From AI psychologists who understand the human impact of AI to AI knowledge engineers who ensure AI systems have the necessary information to perform their tasks, these roles are critical to creating AI systems that are effective and ethical. Moreover, the rise of AI in the industry has created a need for AI professionals who can develop and implement AI tools and solutions tailored to this niche market. This highlights the versatility of AI professionals and the diverse range of applications for this technology. Here are 21 hidden careers in the AI revolution that are driving change in the tech industry. AI Ethicist: An AI Ethicist is a professional who specializes in the ethical considerations and implications of Artificial Intelligence (AI). They work to identify and address potential ethical issues that may arise from the development and deployment of AI technologies. This includes topics such as bias, privacy, safety, and transparency. AI Ethicists collaborate with various stakeholders, including developers, policymakers, and end-users, to ensure that AI systems are developed and used in a responsible and ethical manner. Their work is essential in shaping the future of AI and ensuring that it aligns with the values and principles of society. AI Psychologist: An AI Psychologist is a professional who specializes in the intersection of artificial intelligence and human psychology. They work to develop and implement AI technologies that can enhance mental health and well-being, as well as improve the diagnosis and treatment of psychological disorders. AI Psychologists use machine learning algorithms and natural language processing to analyze large amounts of data and provide personalized interventions and recommendations to individuals. They collaborate with other mental health professionals to ensure that AI technologies are used in an ethical and responsible manner and that they align with the values and principles of the mental health profession. AI Business Strategist: In AI Business, my role is to help organizations leverage artificial intelligence to improve their operations and gain a competitive advantage. This involves identifying areas where AI can be applied, developing AI strategies, and overseeing the implementation of AI solutions. One of the key benefits of AI is its ability to automate repetitive tasks and analyze large amounts of data quickly and accurately. This can lead to increased efficiency, improved decision-making, and cost savings for businesses. However, implementing AI solutions also requires careful consideration of ethical and privacy concerns, as well as ensuring that employees are trained to work alongside AI systems. As an AI business strategist, I work to ensure that these issues are addressed and that AI is used in a responsible and effective way. AI Language Specialist: As an AI language specialist, my focus is on developing natural language processing (NLP) technologies that enable machines to understand and generate human language. This involves working with large datasets and using machine learning algorithms to teach machines to recognize patterns and understand language structures. NLP technologies have many practical applications, from chatbots and virtual assistants that can understand and respond to human queries to sentiment analysis tools that can analyze customer feedback and identify areas for improvement. One of the biggest challenges in NLP is developing systems that can understand the nuances of human language, such as sarcasm, irony, and metaphor. As an AI language specialist, I work to develop systems that can accurately interpret these nuances and generate appropriate responses. Overall, my goal as an AI language specialist is to create technologies that enable machines to communicate with humans in a natural and intuitive way, ultimately making our interactions with technology more seamless and productive. AI Trainer: An AI Trainer is a professional who specializes in training and developing artificial intelligence systems. They work to design and implement machine learning algorithms that can learn and adapt to new data over time. AI Trainers also work to identify and address potential biases or inaccuracies in AI models, ensuring that they are accurate, reliable, and effective. They collaborate with other professionals, such as data scientists and software engineers, to develop and test AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in shaping the future of AI and ensuring that it aligns with the needs and expectations of society. AI Translator: An AI Translator is a professional who specializes in developing and implementing artificial intelligence technologies to facilitate communication between people who speak different languages. They work to design and implement machine learning algorithms that can accurately translate speech and text in real time. AI Translators use natural language processing and other advanced techniques to identify nuances in language and ensure that translations are accurate and culturally appropriate. They collaborate with other professionals, such as linguists and software engineers, to develop and test AI translation systems across various industries, including travel, hospitality, and international business. Their work is essential in breaking down language barriers and facilitating global communication. AI Infrastructure Architect: An AI Infrastructure Architect is a professional who specializes in designing and implementing the technological infrastructure that supports AI systems. They work to develop and optimize the hardware and software components that are required for running large-scale AI applications. AI Infrastructure Architects also work to ensure that AI systems are secure, reliable, and scalable and that they can handle large amounts of data in real time. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in enabling the growth and advancement of AI technology. AI DevOps Engineer: An AI DevOps Engineer is a professional who specializes in the development and deployment of artificial intelligence systems. They work to streamline the process of building, testing, and deploying AI applications, ensuring that they are efficient, reliable, and scalable. AI DevOps Engineers also work to identify and address potential issues with AI systems, such as performance bottlenecks and security vulnerabilities. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in ensuring that AI systems are optimized for performance and reliability. AI Data Analyst: An AI Data Analyst is a professional who specializes in analyzing and interpreting large amounts of data using artificial intelligence technologies. They work to develop and implement machine learning algorithms that can identify patterns and insights in complex data sets. AI Data Analysts also work to ensure the accuracy and validity of data used in AI systems and to optimize data processing and storage methods. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in enabling data-driven decision-making and unlocking the potential of AI technology. AI User Experience (UX) Designer: An AI User Experience (UX) Designer is a professional who specializes in designing user interfaces and experiences for artificial intelligence systems. They work to create intuitive and user-friendly interfaces that enable users to interact with AI systems in a natural and intuitive way. AI UX Designers also work to optimize the performance and usability of AI systems, ensuring that they are accessible to users of all skill levels. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in creating engaging and effective AI applications that can be easily adopted by users. AI Product Manager: An AI Product Manager is a professional who specializes in managing the development and launch of artificial intelligence products. They work to identify market opportunities for AI products and define product requirements based on customer needs and market trends. AI Product Managers also work to ensure the successful launch and adoption of AI products by developing marketing and sales strategies, managing product pricing and distribution, and providing customer support. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in enabling businesses to leverage the potential of AI technology and stay competitive in the market. AI Security Specialist: An AI Security Specialist is a professional who specializes in ensuring the security and privacy of artificial intelligence systems. They work to identify potential security risks in AI systems and implement measures to protect them from cyber-attacks and other threats. AI Security Specialists also work to ensure the confidentiality of sensitive data used in AI systems, such as personal information and financial data. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in ensuring the safety and reliability of AI technology and preventing potential security breaches. AI Data Steward: An AI Data Steward is a professional who specializes in managing the quality, consistency, and security of data used in artificial intelligence systems. They work to ensure that data used in AI systems is accurate, complete, and up-to-date, and they implement measures to protect it from cyber threats and unauthorized access. AI Data Stewards also work to improve data governance practices, such as data lineage and data classification, to support the ethical and responsible use of AI systems. They collaborate with other professionals, such as data scientists and software engineers, to develop and implement AI systems across various industries, including healthcare, finance, and transportation. Their work is essential in enabling businesses to leverage the potential of AI technology while ensuring the quality and integrity of the data used to power AI systems. AI Human Enhancement Specialist: An AI Human Enhancement Specialist is a professional who specializes in using AI technology to enhance human capabilities, such as memory, vision, and decision-making. They work to develop and implement AI-powered tools and devices that can augment human abilities, such as brain-computer interfaces and neuroprosthetics. AI Human Enhancement Specialists also collaborate with healthcare professionals to develop AI-powered treatments for conditions such as paralysis, stroke, and Alzheimer's disease. They are experts in both AI technology and human physiology, and their work is essential in unlocking the full potential of AI technology in improving human health and performance. AI System Architect: An AI System Architect is a professional who designs and implements complex AI systems that integrate multiple technologies and data sources. They work to develop a comprehensive understanding of the business needs and objectives and then create a blueprint for the AI system architecture that will meet those needs. AI System Architects also work to identify and address potential technical challenges, such as data integration and security, and ensure that the AI system is scalable and adaptable to future changes in the business environment. They collaborate with other professionals, such as data scientists and software engineers, to implement and maintain the AI system, and their work is critical in enabling businesses to leverage the full potential of AI technology for competitive advantage. AI Process Engineer: An AI Process Engineer is a professional who specializes in using AI technology to optimize business processes and workflows. They work to identify opportunities for automation and streamlining of processes and then use AI tools and techniques to design and implement more efficient and effective processes. AI Process Engineers also monitor and analyze process data to identify areas for improvement and make data-driven recommendations to enhance performance. They collaborate with business stakeholders, such as operations managers and IT professionals, to ensure that the AI-powered processes are aligned with business objectives and requirements. Their work is essential in driving organizational efficiency and agility through the application of AI technology. AI Entertainment Producer: An AI entertainment producer utilizes AI tools and techniques to create and produce various forms of adult entertainment, such as Images, movies, TV shows, and video games. They can employ AI to generate scripts, characters, or music or to enhance the overall production process by automating tasks like editing and post-production. AI entertainment producers can help to streamline production timelines, reduce costs, and create new and innovative forms of entertainment that leverage the latest AI technology. AI Model Evaluator: An AI Model Evaluator is a professional who specializes in assessing the performance and reliability of AI models. They work to ensure that AI models are accurate, unbiased, and effective in solving specific business problems. AI Model Evaluators use a variety of tools and techniques to test the AI model's performance against relevant data sets and real-world scenarios. They also work to identify and mitigate potential risks associated with the use of AI, such as privacy violations or unintended consequences. AI Model Evaluators collaborate with data scientists and other stakeholders to make data-driven decisions about the design and implementation of AI models, and their work is critical in ensuring the responsible and ethical use of AI technology. AI Knowledge Engineer: An AI Knowledge Engineer is a professional who specializes in creating and managing the knowledge base for AI systems. They work to ensure that AI systems have access to relevant and accurate data and information, which is necessary for them to function effectively. AI Knowledge Engineers use a variety of tools and techniques to build, organize, and maintain the knowledge base, such as natural language processing, machine learning, and semantic web technologies. They collaborate with other AI professionals, such as data scientists and software developers, to design and implement AI systems that can effectively process and apply knowledge to real-world problems. The work of AI Knowledge Engineers is critical in ensuring the success of AI systems in various industries, from healthcare to finance to retail. AI Domain Expert: An AI Domain Expert is a professional who has deep knowledge and expertise in a specific domain or industry, such as healthcare, finance, or transportation. They work with AI teams to provide domain-specific insights and guidance, helping to ensure that AI systems are designed and implemented to meet the unique needs and challenges of their industry. AI Domain Experts work closely with AI developers, data scientists, and other professionals to develop and test AI models, ensuring that they are accurate, reliable, and aligned with industry best practices. They also play a key role in communicating the potential benefits and limitations of AI systems to stakeholders, such as policymakers, regulators, and customers. The work of AI Domain Experts is essential in enabling the successful deployment and adoption of AI technology in various industries. AI Solution Architect: An AI Solution Architect is a professional responsible for designing and implementing complex AI systems that meet the needs of their clients. They work with clients to understand their business requirements and design AI solutions that are efficient, scalable, and cost-effective. AI Solution Architects use their expertise in AI technologies, software engineering, and system integration to design and develop AI systems that can process and analyze large amounts of data, make accurate predictions, and automate tasks. They also ensure that AI systems are secure, reliable, and compliant with regulatory requirements. The work of AI Solution Architects is critical in enabling organizations to leverage the full potential of AI technology and gain a competitive edge in their respective industries. AI Education Specialist: An AI Education Specialist is an expert in developing and implementing AI-based educational programs and curricula. They design and create learning materials that incorporate AI technologies, such as machine learning and natural language processing, to enhance the learning experience. AI Education Specialists work with educators and institutions to help them integrate AI into their teaching methods and courses, and they provide training and support to ensure that educators have the skills and knowledge necessary to use AI effectively. They also conduct research on the impact of AI on education and work to develop new educational models that leverage AI to improve learning outcomes. The role of AI Education Specialists is becoming increasingly important as AI continues to transform the education industry and create new opportunities for students and educators alike. These are just a few examples of the hidden careers in the AI revolution that are driving change in the tech industry. As AI technology continues to advance, it is likely that new roles will emerge to support it. If you're interested in pursuing a career in the AI industry, it's worth exploring these lesser-known roles to find the perfect fit for your skills and interests.