Any training process starts with a business need. That is, someone in the business wants or needs their employees to be more productive than they currently are and looks to training or a job aid to generate that productivity. The business owner is that person, who starts the process of improving productivity.
There’s a lot of attention on new delivery models, the desire to create shorter courses and the attempt to apply metrics to the training process. However, relatively little is being said about the fundamentals of the content development process. While there are absolutely differences in the way content is generated from one medium to another and from one organization to another, there are more similarities than there are differences. This article is the first in a series that will walk through the roles in the process, including how the process fits together and how the individual roles add to the result.
It’s been nearly a dozen years since I first wrote “Cracking the Code: Breaking Down the Software Development Roles” and the associated specific role articles. The world has changed substantially in the last dozen years, but strangely, relatively little has changed in the roles for software development—except in the transformation of the deployment role into what is now being called “DevOps”—a contraction of Development-Operations. In short, we’ve changed how we operationalize the deployment of our code into our environments and into customer systems. It’s time to address the changes that have come to the world of software deployment.
Thus far in the series, we’ve focused on managing productivity at an individual developer level. However, sometimes developer productivity results from the best management of the developers and the rest of the team. Measuring individual developer productivity is convenient because it tells you how well a single developer is performing. However, even the best developers can perform poorly when they’re put into a cadence that doesn’t work for the project or the organization. Here we’ll look at iterations, and how quickly we cycle can make a big difference.
If you work in an organization, you’ve experienced bad meetings. These soul-sucking, time-crushing meetings leave you deflated and wondering if you’ll ever be able to get anything done. Learning how to make sure that developers are only in the meetings they need to be in—and that the meetings that they’re in are productive—is a key way to maintain developer productivity.
Every new development tool promises improved productivity. New languages promise better developer productivity; but, sometimes, the key factors for developer productivity aren’t the tools, the computer, or even the additional monitors. Sometimes, the keys to allowing developers to get more done are psychological factors that we’ve known about for decades.
At the tail end of the process, the criticality of training and user assistance is often lost. The role is often underfunded and overworked – but intensely valuable to making the software work for the users. The Anatomy of a Software Development Role: Training shows how the role brings the development home to the users.
Bridging the gap between development and the infrastructure teams is the deployment specialist. These days the job is often titled DevOps specialist, indicating how these two worlds are being merged. You can see how this role started in Anatomy of a Software Development Role: Deployment.
In today’s world, most developers are building Web applications or applications that expose Web services publicly. Most applications are connected to the Internet in some way or another. However, most developers haven’t been formally (or informally) trained in Web application security or which vulnerabilities they should look out for.
Perhaps the most challenging role in the software development process is that of the quality assurance professional. It requires a set of soft skills for dealing with developer egos and hard technical skills to get bugs to scurry out of their hiding places and into the light. Candidate for these roles can expect questions about their hard skills including the tools that they use. For more about how critical the quality assurance role is, check out Anatomy of a Software Development Role: Quality Assurance.