Interviewing new employees is a two-way street. On the one hand, you want to know them. On the other hand, you want them to know you, too.
It's also useful to remember that the interaction is also an investment on both sides.
1/
While both parties are invested in similar ways, the conversation is not symmetric. For example, the interviewee is likely significantly more emotionally invested.
That's why as an interviewer, I prefer to compensate.
2/
Typically, interviews are optimized for the act of filtering interviewees. In these situations the organization gains the most. The interviewee can at most get in. However, in the worst case scenario is that nobody learns anything.
3/
I think we can improve on that. At the very least, the interviewee should get feedback. Not feedback like one gets from the HR representative. Real feedback about content.
And I think we can go a step further. What if we arrange the interview as a teaching scenario?
4/
There are plenty of things an organization can share with the individual to make the time more valuable. I am not talking about patronizing people. I am talking about sharing pieces that might be unique to the organization and from which others can learn.
5/
For example, an interview for a software engineering position could focus on demoing a product, but from the inside. That is, to show implementation parts in a way that's exciting for the viewer. It could be a model. A deployment pipeline. Or some architectural organization.
6/
This can be beneficial in several ways.
It focuses the conversation on what the interviewee could learn from.
It emphasizes what's important for the company.
It makes the organization more compassionate. More emphatetic.
7/
Interestingly, this design is beneficial for the organization, too. The questions of the interviewee in the context of a demo can be highly informative. Imagine showing a domain model only to get into a deep conversation about bounded contexts. Would that not be exciting?
8/
Of course, such a scenario implies that the organization does know how to their systems in exciting ways. That the inside of their systems are explainable. And, that they are honest about what they value.
9/
Perhaps that sounds too difficult. Still, imagine interviewee you reject going away satisfied. Perhaps even having learnt something new. Would that not be worth the effort?
10/
• • •
Missing some Tweet in this thread? You can try to
force a refresh
#MoldableDevelopment is a way of programming through which you construct custom tools for each problem.
What does that mean exactly?
Where does it come from?
Why is it relevant?
Read on.
1/
The original idea of #MoldableDevelopment came from the work on Humane Assessment through which I argued that we need custom tools to reason about software systems effectively.
A while back, I asked “what is architecture?” and I got many responses within just one day. Some serious, some more (bitter-sweet) joking. We can identify some cluster of responses, but even so, there are certainly a dozen distinct perspectives.
That there are many perspectives is not a surprise given that the literature is full with competing definitions. For example, it's not atypical for architecture books to say something like: “there exists many definitions, so here is ours”.
The search for the perfect definition of architecture captured the imagination of several generations by now, yet it still seems to remain elusive. But, what if it’s Ok to have many of them?
By now there is plenty of evidence that both architectures can lead to a “mess”. This only shows that we should not look at these as mechanisms for controlling the said mess” in the first place.
Well, as long as it’s people building the system, of course it’s the people. But, saying that does not get us closer to figuring a way forward though.
2/
Now, what exactly does “mess” mean? The famous spaghetti code?
Mess tends to assume that there is a clean way. And by clean, people typically mean easy to understand and change.
3/
“Developers spend most of their time figuring the system out."
Let’s dissect this a little.
🧵
1/
The oldest reference on the topic I know of dates back to 1979:
Zelkowitz, Shaw, and Gannon. Principles of software engineering and design. Prentice-Hall Englewood Cliffs, 1979.
2/
It said that most of the development time was spent on maintenance (67% in the book).
Granted, the book does not specify how the figure was obtained. Still, it was deemed an important enough problem to attract significant research attention since then.
This is how the software environmentalism crisis looks like. An explanatory thread. 1/
In the software development industry, we focus exclusively on building systems. The conversations are dominated by new languages, new frameworks, new deployment options. And the body of software grows exponentially. At the same time, we are unable to remove old systems. 2/
From this perspective, our software industry behave not unlike the plastic industry: we focus on building without any regards to recyclability. That is not sustainable. And, given the breadth of software’s reach, it is not responsible either. 3/