I have worked at a few different companies in my time, and one spectrum of how to characterize companies is is how well the company strives to enable their employees to become productive.
sink-or-swim ⟷ welcome-on-board
In the sink-or-swim organizations, after you are hired, you are generally thrown into the deep end and expected to figure everything out on your own. Sure there are generally people who will help you if you ask, but their patience runs out quickly if you ask for too much help, and woe to you if you ask for help on the same subject more than once. They expect everyone to take fastidious notes while they ramble on with verbal diarrhea.Also what tends to be common, is there are few, if any, written documents on process, methodology, policies, procedures, etc. You often hear excuses like "rules stifle creativity" or "to stay competitive, things change too quickly to document." That last quote was from a company that actually did not really have any competitors.
When these organizations recruit new employees they generally consider "trained workers" as a disposable commodity and emphasize a volume short-term skills in their job descriptions and job interviews, rather than a depth of experience and potential.
In this style of management, workers are a resource to be exploited.
In the welcome-on-board organizations, after you are hired you are typically assigned a guide or buddy, or pointed to some key documentation that explains everything in a logical manner. When you ask people questions, rather than just answer you verbally, they take the time to show you, or even better they send you an e-mail message with lots of links to the kind of knowledge you are looking for. It's not that they spend more time hand-holding you, rather they spend less time, and just give you higher quality answers, in more productive ways. There is no need to take notes, because every step along the knowledge path has the notes built in.
Not surprisingly these organizations tend to have well defined and documented process, methodology, policies, procedures, etc. While in older days it was common to produce much of this knowledge in-house, newer welcome-on-board organizations take an open source attitude towards knowledge, and shamelessly use/refer to existing industry knowledge in the form of web links, YouTube videos, etc.
When these organizations recruit new employees they generally consider "professional colleagues" as an investment in long-term success and emphasize long term education, resourcefulness, and adaptability in their job descriptions and job interviews.
In this style of management, employees are colleagues to be valued.
Beyond Organizations
These characteristics are not applicable to just organizations, but entire communities. In the computer and communications world you may work for one company, but you are likely a member of many different organizations, communities and cultures. Without any hard scientific data to cite, it is my perception that often times the most successful communities are those that practice a welcome-on-board spirit of collaboration. To cite some anecdotal evidence:Git & GitHub
I cannot speak directly to what it is like working inside GitHub, but from the various articles and YouTube videos I have seen from it's employees it seems like a really great, productive, and exciting place to work. However, there is the much wider body of the Git and GitHub community and culture, and that really embodies a welcome-on-board spirit.Maven
Maven is a fiercely powerful build tool, but not only a tool, rather an entire methodology and attitude to how to manage and build the artifacts of software projects. At the same time, Maven can be a source of enormous stress and anxiety in a person's life if you do not understand how to use it properly. In a nutshell, I would say that Maven is about 10 to 100 more complex to master than Git and GitHub. It is not that the technology is bad, so much as that the technology does so many more things around running a successful software project.Maven has a really great community of people eager to help other welcome others on-board, and while there is a great deal of documentation out there, it is very challenging documenting something so complex well. More recently, one of the great Maven experts, Russel Gold, created a set of videos that is by far the best introduction to Maven I have ever seen. My point is, that while there was an abundance of documentation for Maven already, the biggest advance in getting people on-board was a great set of videos created by a clear-thinking expert on Maven.
On-Board Engineering
If you have ever worked as a contractor you will appreciate how important the welcome-on-board process is. In particular, if you have ever contracted with a sink-or-swim organization you will know how frustrating it can be to figure out what is going on, become productive, and produce quality results you can be proud of.If you are an organization who hires a lot of contractors for short term projects, hopefully you will realize your contractors are of less value to you if it takes them too much time to get on-board with everything they need in the project. If you are an organization that experiences a lot of staff turnover, as is common in many developing nations, then it is pretty much the same as hiring contractors.
If you are a growing community or culture, and you want to keep growing or grow faster, then it is pretty much the same as hiring new employees constantly, which is pretty much the same as hiring contractors. If your community has a sink-or-swim smell to it, it is not likely going to attract too many people, and those you do attract are going to be looking for greener fields soon.
A welcome-on-board culture is not just an attitude that people have around being friendly and helpful, it actually takes conscious effort to intentionally architect a welcome-on-board infrastructure.
Scala
While Java was enormously successful, in large part to its on-board engineering, it was also backed by an extremely successful tech company, Sun Microsystems, at the time. A decade later, Martin Orderky brought Scala to the table in the Java ecosystem. Scala is an ambitious endeavor, backed by far fewer resources than Sun had at the time, but continues to become more successful, not only because of its great science and technology, but also because of excellent on-board engineering.
Java was a relatively easy to learn language and platform. Scala, on the other hand, is a multi-paradigm language, incorporating functional programming, something quite alien to many software developers. In a nutshell, getting on-board with Scala is often more of a challenge than something like Java or .NET.
While the Scala initiative followed many of the Java on-board engineering practices: java-doc/scala-doc, books, tutorials, conferences, etc. One of most novel and successful tactics has been the Coursea course: Functional Programming Principles in Scala. Some of the other feature of Scala that make it easier to get on-board is the emphasis on the REPL (Read Eval Print Loop) and IDE Workspaces.
Part 2
Will go into more details and examples of on-board-engineering, some tangible examples of how to easily engineer continuous on-boarding of people to technology, methodology and best practices.


No comments:
Post a Comment