>> Andrew Begel: All right. Well, thanks for... speaker, Jorge Aranda, who is currently a postdoc at University...

advertisement
>> Andrew Begel: All right. Well, thanks for coming, everybody. I'd like to introduce our
speaker, Jorge Aranda, who is currently a postdoc at University of Victoria working with Daniela
Damian and Peggy Storey at the same time. And he was a Ph.D. student at University of
Toronto until a year ago and has been a postdoc for one year.
And he also has the wonderful résumé of having worked for Gina Venolia right here at Microsoft
Research where he did some pretty influential work on studying some exciting things about what
software teams misremember. And he currently works in the areas of looking at collaboration
and coordination amongst the members of software teams.
So I'd like to introduce Jorge who's going to talk today about a study he did on understanding
roles in software organizations.
>> Jorge Aranda: Thank you. So hello, everyone, and thanks for coming. I'd like to start with a
picture that -- well, Andy has seen this before, probably you have, too, because it's been making
the rounds online, how different people in IT see each other.
So, I mean, this is of course in jest, but you can kind of see some of the stereotypes that people
assign to different kinds of roles in software organizations, right, how they see themselves,
always the heroes in all cases but in different ways, and how everyone else is screwing them up
in their own way.
So the study that I'm going to talk about is based on the observation that I made a while back;
that we have these terms in our literature everywhere, both in academia and in industry, we talk
about developers and designers and project or product managers, QA, et cetera.
But in the firms that I've studied and the groups that I've been to, these people apparently are
doing different things than what I often see in the literature.
So I'll give you a sample of the things. These are phrases published a year or two ago in the
academic literature. And some of them kind of adhere to what I was expecting to find from the
concept that people have on roles in software organizations, but some do not.
So, for instance, the first one someone says: Nonfunctional requirements are one of the hardest
problems analysts and designers have to deal with during software design.
And I agree that software designers have to be thinking of nonfunctional requirements all the
time; that it's just that I've never seen them doing it purposefully, right, to say now I'm going to
work on nonfunctional requirements.
Another on a similar vein: Developers identify and manage work dependencies. Again, it's
something that I guess they need to be doing in their daily work, but it's weird for me to see it
spelled out like that because I've never seen a developer discuss dependencies specifically.
Right?
A weirder one: If a software architect has to model a concern not supported by his own language
or tool. This is something that I've never seen. I've never seen a software architect modeling
concerns at all, no matter what the tool. Actually, I haven't seen anybody modeling concerns.
And just a few more. Users hardly get any support in creating process models. Okay. That's an
understanding of what a user does that does not match my own.
Our proposal provides software designers quantitative feedback they can use to meet a coverage
goal. So software designers I think in here is being used as a term to refer to software
professionals in general and how they want testing coverage, but a lot of people have associated
a label designer with something very different than, you know, establishing the quality of a piece
of code. And so on. It'll skip the last one.
The point is that in general reading the literature on software engineering, I get this feeling that
we're talking about different things; that people talk about a developer or a tester or a project
manager with a meaning very different from the one that I have and the one that I've seen.
So I said, well, I might be wrong too, right? Maybe my conception of what a software developer
is or what a tester is is very inaccurate.
So I wondered, you know, would it be a good idea to study what are the actual roles in software
development organizations and do we even have a consensus. Are there common,
well-established roles in the industry, or do they vary a lot across organizations or even within an
organization? Do roles change over time in a group, and, if so, why? What are the reasons that
people change their responsibilities? Do people in different roles use the same tools and do they
use them in a similar way? And also where do official positions fit in the picture, right? Is your
title directly related to what you're actually doing or not?
And so I started doing this study without really knowing if this was a problem that needed to be
fixed. Maybe it's not. Before starting, I hadn't heard complaints from anyone that said oh, well,
our distribution of labor is completely ambiguous and this is the influx of problems.
And what I didn't want to do was to end this study with a proposal for some kind of
standardization or certification or something like that. If you want to become a software tester,
these are the things that you should be doing. And if you want to be a project manager, these are
the things that you should be doing.
But I think there are good reasons to study roles in software organizations, mainly because they
are related in several ways to real concerns that managers and software professionals have. So
what are the right ratios of different kinds of professionals in a group, for instance. Let's say
developers and testers.
Oh, by the way, you can feel free to interrupt me anytime you want.
Often company policy is very detached from what's actually happening. How can we bring it
closer together so that what's stated in the formal policy makes sense in practice.
>>: Seems like actual dynamics. Does that ->> Jorge Aranda: Oh, but more consistent with what's actually happening in a team. So to give
an example, let's say that the policy states that requirements are written in the form of a
requirements document written by an analyst and passed on to designers and developers, and in
actual practice maybe there's -- a lot of people bypass that process.
So, you know, it's important to -- if you care a lot about having policy that's consistent to
practice, something needs to be changed there. So that's what I mean.
And also from an academic perspective, it's good to have some conceptual clarity, right? We're
talking a lot about these concepts. Almost every abstract in TSE or ICSI or FSE, you know,
mentions one kind of software professional. So it would be good at least to, you know, have a
better understanding of what are we talking about.
So the first thing I did was to go back to sociological literature and organizational science
literature to see how they conceive of roles in social groups. It's an old topic for them, right?
And the consensus seems to be that a role is -- or what we call a role is an abstraction that we use
to refer to a set of expectations placed on someone.
Okay. The keyword here is expectations. So role is kind of like at the molecule level, but the
expectations are the atoms that really constitute it.
So whatever a person's expected to do by virtue of their position, their status, their history, their
preference, all of that defines the role.
This means that roles are social constructs. There is -- a developer is whatever the relevant
social group determines that a developer should be, right?
So a researcher at Microsoft Research is whatever the group decides, perhaps unconsciously or
unintentionally, that a researcher should be.
This also means that there is no prototypical anything. There's no prototypical researcher or
developer or tester or anything because these concepts are defined at the group level.
And who places these expectations? Well, everyone. Teammates. So, for instance, you have
someone who is a developer. What does being a developer mean? Well, it means what the
teammates think that a developer should be doing, what their supervisors and maybe
subordinates think that they should be doing, people they interact with, also people they don't
interact with but with whom they have some kind of relationship.
So people who -- let's say Microsoft. You could have lots of developers who are unknown to
another division, another department, salespeople or whoever. Salespeople don't -- haven't
interacted with any developer in particular, but they are expecting something to happen in the
development group and that expectation is transferred into the actual developers.
Society in general also places some expectations. And of course the person who is enacting the
role also has some expectations on what is it I should be doing given that my social group is
giving me this role.
So there are some problems that come out of this conceptualization. The first one is that the set
of expectations of all of these people is probably not consistent or satisfiable even, right? I get
some expectations from my bosses and from my peers and from other people, and there my be no
way to make everything satisfiable.
Sociologists call this role strain; that you're being stressed by the different pulls that you have on
you. And it may lead to this function. So people are expecting you to do something, you can't
satisfy that something, and so there is a consistent mismatch between the expectations placed on
you and your behavior.
The other interesting thing is that since these expectations arise from there group that you're a
part of, that means that there's no guarantee that they match those expectations placed on
someone with a similar role somewhere else.
Now, in some professions, the roles and expectations are much more uniformly understood. So,
for instance, in the medical domain, we can talk of doctors and nurses and anesthesiologists and
surgeons. And just naming them, you can have a bunch of expectations of what is it that they
should be doing, what constitutes normal behavior and abnormal behavior from them.
But in our field I claim that the expectations are not that uniformly understood; that there's a lot
of variation. And we're going to see a few reasons why. Yes.
>>: That's what I wanted to ask before, is it seems like certain professions are more amorphous
and that's why if you can have these questions [inaudible] medical field or I think of like factory
workers [inaudible] there's not much leeway in what their roles are.
>> Jorge Aranda: Uh-huh.
>>: So have you found other professions that are more similar to software [inaudible] that you
are going to talk about?
>> Jorge Aranda: Yeah, that's a good question. I didn't specifically look for others that are
similar, but I can come up with some because I think this amorphousness -- is that a word? -comes from a number of factors.
I'm going to be going over some of those factors, but briefly, to anticipate that the main driver
for uniformity is institutionalization. Right? So the more institutionalized some role is in the
larger culture, the more that every instantiation of that role will fit that picture.
So if we have -- for instance, if we demanded that every software developer had a license or a
certification or something, you would expect to see a lot more uniformity. But I'll be going in
more detail on this.
Right. So the other wrinkle here is that we need to make a distinction between roles and
positions. A position or a title is what the business card reads. And sometimes they're the same
thing. You could be a software developer in practice, you know, you could be developing
production code, and at the same time have a business card that says software developer.
But these things don't necessarily match. And we -- so sociologists make a distinction between,
one, a position you occupy, a role you enact. Position is based on a form of policies and a role is
based on the norms of behavior in the social group. So just something to keep in mind. I'll come
back to this.
Woody Allen here is the president of some banana republic. And he has the official position of
president, but his role was slightly different, if you saw the movie.
Right. So that was a brief overview of the theoretical framework that we sketched out coming
from the sociological literature.
Then what we decided to do -- by the way, this is work that I did in collaboration with Adrian
Schröter and Daniela Damian and Peggy Storey. We decided to do a field study to test out this
theoretical framework, and I tried to modify a little bit if observations didn't match our
expectations.
So it was a case study of two organizations. And I need to tell you a little bit about both
organizations, because a lot of the examples I'm going to give in a few minutes use information
from those organizations.
So they're both small, fairly small, especially for Microsoft's numbers they're pretty small, about
50 people the first one and 25 the second one.
The 50 people one, which I'll call company A, is -- it does software for bioinformatics. It has a
development team of 17 people, mostly developers, some testers. This group is subdivided in
development teams, and they have about 30-something folks doing other kinds of stuff: sales,
field support, project management, product management, they have like five VPs.
This company is -- was -- by the time I went to spend time with them -- I spent three weeks with
them -- they were going over a rough patch. They had a downsizing two weeks before I arrived.
They lost I think about 15, 20 people. But it was the second downsizing they had gone through,
so things weren't going super for them. It was interesting for us because we could see, you
know, how responsibilities were changing as people were adapting to their new situation.
The second group, which I'll call company B -- although it's not really a company; it's a publicly
funded group -- is part of a research institute. And they're tasked with providing data and data
analysis services to scientists all over Canada and, because they do it over the Internet and the
Internet has no real boundaries, to scientists all over the world.
So they receive data from a bunch of places and they process it on site and they develop software
to help people access it, mine it, store versions of it, et cetera.
So it's a smaller group, and it's subdivided in three parts. We have the development side,
software developers, which are about eight people, if I remember correctly; they have scientists,
a bunch of scientists, who also do a little bit of development, mostly scripts; and they have
operations, an operations group, which is charged with providing data and services and ensuring
that they have a good uptime and that everyone's data is safe and so on.
All right. So I spent in total five weeks at both places. I conducted 36 interviews of about an
hour each. That comes to about 50 percent of the total staff at both sites.
And so we ended up with a bunch of stuff, a lot of examples that cannot be summarized very
easily. But we also came up with this table, which I know you won't be able to read. I'm sorry
about that. I couldn't come up with a better way to explain it.
So what is this? This is -- we got a lot of information from people when I asked them: Okay,
what is it that you should be doing here? What are you expected to do? If you go, what's going
to happen to the organization? What do you expect from other people, et cetera, right?
And so then I analyzed all that and I came up with this list of expectations that people have. And
the original list was much longer, but some of the expectations were too detailed, and so I
removed them because I was looking for something more universal to share.
And I also clustered the expectations by area. So you have the technical core. The first few
rows are technical core, which means actual development of software: fixing bugs, maintaining
legacy code, and script, scripts that -- or customizations that you need to do on the base systems.
And then in the columns in here you have a bunch of people which I mostly classify by either
positions more than by the roles. Although I made a couple of exceptions. For instance, the
second company had -- did not have official team leads, but two people were really doing more
team leading stuff, so I put them over here.
In each cluster in here, you can see a small subdivision. That means company 1 and company 2.
And each of these squares is colored by how much people expect that person to do something.
Right? So white means we don't expect you to do this, light gray means -- or gray means you're
somewhat expected to do this, and black means you're highly expected to do this.
Now, this is subjective. This comes from interview data, my interpretation of that interview
data. But I'll go back to this, because I think this could be the basis for some more objective
analysis or at least more of a self-reported analysis of expectations in software groups.
Anyway, a few patterns that I think are interesting here -- yep.
>>: Are these, those people you interviewed, perceptions of expectations of what other people
thought that they should do, or does it also combine what they thought other people should be
doing?
>> Jorge Aranda: Yeah, both. Both of them. Um-hmm. Now, mind you, this is only the people
that I talked to. If I included everyone in both organizations, the table would be twice as long.
But I had less information for the people that I didn't talk to, so I left those out. This is a subset
of all the people in both organizations.
>>: You tried to get -- are there any like [inaudible] positions that you didn't have coverage of?
>> Jorge Aranda: No. So I tried talking to people in every group. Yeah. Yeah, I did. Well, one
exception. There's a significant sales team in company 1, and I didn't talk to any of the
salespeople. And there's a sys admin at company 1 as well. I didn't talk to the sys admin. But,
other than that, I covered all the groups. Yep.
>>: One other question about when you asked them about expectations of others, were they
referring to individual people, like I expect John to be a developer or to write code as opposed to
all developers, whoever they are?
>> Jorge Aranda: Yeah. So I was looking for the first kind of response, John should be doing
this. I often got -- I often first got the second kind of response, developers should do this. And if
that was the case, then I would push them and say, okay, who in development should be doing
this? And that's what I went with. Yeah.
>>: So I noticed that you mixed QA and ops, and you also mentioned sys admins as maybe
being a subset of in some cases ops. What was the -- what was your reasoning for combining
those?
>> Jorge Aranda: Yeah. A practical reason, actually, which is that I only had one person from
ops. And looking at what that person was doing, it had a lot to do with -- I'll explain that in a
moment -- but a lot to do with quality assurance as well, so I just lumped that person together
with the others.
>>: And so really -- I know it's a small sample size, but really it sounds like there wasn't a lot of
operations and you had that specific discipline in the two companies.
>> Jorge Aranda: That's right. So the one company that had operations, an operations group,
there were four people in that group. The information you see here is from the head of that
group, which is the person I interviewed.
>>: Seems interesting that [inaudible] by the places that you get most uniformity and most
nonuniformity.
>> Jorge Aranda: Right. Exactly. So a few of the interesting patterns that I came up with, the
first one is this cluster here around the technical core and how you can spread out of working on
the technical core in two main ways. You can either spread out the way that the tech leads do by
designing system architecture, taking the toughest problems and providing some historical
perspective. You kind of become a bit of a team historian. Or the other one, the path of the team
leads, which is more towards management, reporting what the team is doing and so on. So that's
one.
Another one is you can't really see it very well in the table, but there are very few people that
have expectations placed in the technical side, in the management side, and in providing some
domain legitimacy or being domain experts.
Let's see if I can find -- so this one, for instance, this person works a lot with directors in
determining the long-term vision for the products, provides domain legitimacy to the
organization -- I'll explain what that means in a moment -- also is working coordinating product
release, writing documentation, and so on. So that person is all over the place. Those people
were very rare. But in the interviews, other people constantly refer to them as key for the
organization to keep on keep on going.
For one of those, I think it's this person, who is, again, all over the map, someone said, well, if
that person leaves, we may just, you know, close the doors and turn off the lights because there's
nothing else we can be doing here.
>>: I was -- actually I was referring to -- under maintain legacy code and the developers, the
larger organization varies from black to white [inaudible] advocate for resolutions of
user/customer problems, it's all black or gray for everybody in the support -- you know, it's
either ->> Jorge Aranda: It's true.
>>: -- [inaudible] variance.
>> Jorge Aranda: Now, I should warn you not to read too much into the actual details, because
this is only half of the organizations. Right? But you're right. And I can explain this thing here.
In that large organization, remember there's several subteams. One team was charged with the
main product that they were working on, which was kind of old and difficult to work with, and
so a lot of what they were doing was just solving bugs and working on the roadmap features that
they had.
The company also wanted to move away from that, and so they created this splinter group that
shouldn't be concerned at all with legacy code whatsoever and they had supposedly [inaudible].
So that's a reason why [inaudible].
>>: Questions were about specific people and not the role [inaudible].
>> Jorge Aranda: Yes. Right. Right. Yeah.
And just one more pattern. There were some expectations that are very weakly spread all
throughout the organization. So, for instance, writing low-level or unit test code. A lot of people
have that expectation weakly. It's like everyone says, oh, yeah, well, we should write unit tests.
We should all ensure that our code is fine. Or documentation. Yes. We're all in change of
documentation. But nobody's really charged with it. It's just everyone expects everyone else to
play nice and do something with this. Yeah.
>>: When you asked about expectations, did you ask also how significant that expectation was
for that person or for that role, whether that person was meeting their expectations?
>> Jorge Aranda: Yeah, so -- yes, I did, both. Although not always systematically, but -- so,
sorry, the first part is whether ->>: Is like what you were saying is how important is that expectation to that person, like is that a
significant part of the their job, or is that ->> Jorge Aranda: Yeah, we spent a lot of time doing this, and ->>: [inaudible] didn't seem particularly important to them.
>> Jorge Aranda: Yeah. I should also add that I also spent time observing what they were
doing. And so I interview someone and they say, oh, yeah we should unit test. And then I talk
to the QA person and I say do you have a set of unit tests to start with? No, of course not,
nobody's writing them, and that kind of thing. So we also -- as usual, I usually get conflicting
accounts, and it's a bit hard to determine where reality is.
Yeah, anyway, as you see, there are some patterns. And you can kind of classify a little bit of
what people are doing based on their expectations. But there's also a lot of role variation, so
order-solving detectives that everyone does it their own way. So just like we have that with
them, it was difficult for me to find people with the same roles in significant detail in the
organizations that I studied.
And I wanted to give you a couple of examples of that and an important exception. So in
company 1 there were three people that were doing product management stuff. Everyone called
them product managers. But -- and I talked to all three of them, and they were doing it very
differently, each of them.
So the first one was mostly doing actually product design. He was concerned with a little bit of
the architecture, talking a lot with tech leads and so on.
The second one, or a different team -- so each of them working different teams -- the second one
was mostly working on, you know, a documentation way of doing product management, trying
to specify the architecture, the APIs of the systems, writing the documentation himself and so on.
And the third one had a more external facing kind of product management. So what he did -remember, this is a bioinformatics company. He had a Ph.D. in bioinformatics and was doing a
lot of talking with clients, figuring out what they wanted and trying to bring that into the
development.
So three product managers; three very different ways of doing it.
The same thing happened with team leads. Everyone had different kind of sets of expectations
of what they should be doing as team leads. With developers, some people had to do more
documentation, some people had to do more requirements. And design, some people were just
expected to take this description and produce code that matches the specification.
The one important exception to this role variation finding was project managers at the first
company, at company 1. I talked to two of them, and I observed the third one at work. And, by
the way, there were just three. But all three were doing pretty much the exact same thing. The
variations were there but were minute.
And when I talked to them and asked why are you, you know -- I talked to them late in the study
and I was a bit surprised to see such uniformity. I asked them why is that the case. And they
said that it was intentional and part of it comes from a certification.
So all of these are project management professionals, PNPs, so they have their certification, they
have their body of knowledge and their processes. And they were actively trying to enforce their
own interpretation of what a project manager should be doing in the organization into everyone
else. So this is the way we're going to work, here are our policies, and get on with the program.
Right?
So that was an interesting exception to this role variation. Everyone else was kind of like
mucking around, but project managers were fixed on an idea of what they should be doing.
Okay. So I'll go back one slide. An interesting question for us was what makes some people in
here take some expectations, why are expectations clustered in ways that they are and not in
others. And so we came up with four kinds of factors that make certain people attract some
kinds of expectations or some expectations and not others.
The first kind of factor is institutional. This is what I was talking about earlier. This is the case
of the project managers, for instance. There is a relatively strong institution of what a project
manager should be doing, if you're trained like that. You come into an organization, you're told
you're a project manager and you know what to do. Right?
But the same thing happens to some degree with other roles. So, for instance, a tester. You
know, if you're hired into a company as a tester, even without anybody telling you anything, you
say, well, I mean, I guess I should be writing some tests, right? I should be checking the quality
of the code that people pass on to me. And when other people hear that you're a tester, they
expect certain behaviors from you.
So this comes from the larger culture from our institutions of what a software organization is
like. I have an example of this coming from company 1. For several years the company was just
chugging along as a startup, growing kind of organically, it hit about 15 to 20 people, and then
they acquired a lot of venture capital.
After acquiring venture capital, they had to change their ways. The venture capitalists expected
this. So they had to put in a CEO, a bunch of VPs. They needed a sales group, because every
self-respecting software company should have a sales group. They needed to have project
managers, a product management department, QA department, resource -- human resources
department.
So all of this structure just came into the organization externally. It's just what a company like
this was expected to be doing by the venture capitalists.
This probably was not the wisest move for them, I don't know, but it is an example of how the
larger culture affects what you're doing internally. Yes.
>>: Did either of the two companies have training programs for new hires? Like if you hire
somebody as a tester, you teach them what it is to be a tester in your organization [inaudible]?
>> Jorge Aranda: No, to a very limited extent. The only ones that have that are developers, and
the training is done by other developers. For instance, they have a week with problems to get
you started. Right? So, you know, the first thing you needed to do is to be able to build our
system. Here are the instructions.
The first day you're -- or, whatever, wherever -- whichever day you're supposed to do that, then
after that make these small modifications, see what happens, and so on. Some teams have that
better structured than others.
A second kind of factor that affects how expectations are clustered is historical factors. So, you
know, like a tree, you bend it some way; if it doesn't die, it just keeps on growing that way. Or
like, for instance, you have a patch of lawn, people start to walk over it in the same ways and
suddenly you have a path. And one day someone decides to pave that path; it becomes official.
So that's the thrust of what I'm talking about here.
The expectations that people have in a group partly come from what they used to be doing before
or other people enacting the role used to be doing before. For instance, at company 1, there was
-- when there was all this expansion, this VC-funded expansion going on, there was a guy that
they hired for the QA lead position and later moved on to become a program manager.
When the layoffs came in, they gave him a choice to either go out or become a tester, a QA
analyst. He decided to take the latter. But at the same time this guy knew a lot of what was
going on at a higher level in the organization.
He was still -- while I was there, even though he was a QA analyst, he was invited and
participated in positions that did not correspond to those of the other QAs. He was still attending
some management meetings, he still had some contacts that the company was exploiting in some
ways. In short, people were expecting from him things because of what had happened in the
past, not because of his position or institutional version of what he should be doing.
A third set of factors, structural. So if you're a slave in this line, you don't have much choice on
what you can do and the expectations put on you are pretty simple, just keep on pulling. But if
you're in some other point in the structure of the organization, you may have much more leeway
and ability to influence and to interact with others in the organization in some ways.
So an example of this in the second company I studied, in the second group, the head of
operations that I mentioned before, he had a unique position where he was the contact of the
whole group with the computing center, with the head of the software group, with the head of the
science group, with the database person, with all of the people below him.
And so that gave him more ability to do some things, but it also placed on him a lot of
expectations coming from many different ways. These expectations, just to repeat, come from
his position in the organizational structure, not from anything else.
And, finally, personal factors. Everyone brings something different to the role that they enact,
right? So it could be that you're not very good at doing what you're expected to be doing. It
could be that you're very proactive and doing far more than what is expected of you. And that
performance, that diversion of your performance, against your original expectations changes
what people expect from you.
The second company, there was this guy, a project administrator. He was -- this was really a
clerk position. He was supposedly just in charge of keeping track of the payroll and the budget
of the projects and so on. But he -- I mean, the job was not satisfying for him like that, so he
started taking on more stuff.
And the rest of the people got used to that, got used to him knowing all the terms and knowing
what was the status of the bugs and all of that and keeping track of all of it.
When he took some vacation time -- not vacation. When he took a leave to fulfill another
position in the group, the project administration role was crumbling down and everybody was -- I
guess everybody was expecting stuff to happen from the replacement of this guy that was not
happening.
By the time I was spending time at that company, they were redrafting the description of the
position so that the personal factors, in this case, the characteristics that this person brought into
the role, became official policy after a few years.
Right. So earlier I talked about the difference between roles and positions. The -- we found both
in overlap in some ways between what a person is expected to do by the group and what the
position is but also some mismatch. And we came up with an explanation for this.
Your position, your title, represents your placement in the organization structure, so it's a
structural factor. And it also defines to a large extent the institutional expectations placed on
you.
So you are a project manager. Okay. You're placed in a certain position in the organization to
satisfy the expectations of a project manager, so structure, and your title represents -- you know,
you should be managing projects, so you should be doing certain kinds of things.
But your position does not define anything -- does not have to do with the historical and the
personal factors that I also talked about. So a lot of the distinction between what your role is in
practice and what your official position is comes from the difference between what you bring to
the organization and what the formal policy of the organization is.
By the way, this is -- I don't know if you recognize him, this is from The Wire, a TV show, and
it's full of people that diverge from their positions trying to do some other role that was not
formally placed on them, and it doesn't always end well for them.
All right. So we also asked ourselves what makes a role evolve over time. And there are many
things, but we focused on two. The first one is organizational growth. As an organization
grows, sociologists tell us and our data confirms this, you have more specialization. And it is
easy to see why it is with work in practice.
So in the smallest possible company where you have just one person doing everything, that
person's role includes all the expectations of the organization. But as that person keeps hiring
other people, the expectations are more spread out, more specialized. And by the time when you
reach a larger group, you have a much heavier specialization, a much more detailed
specialization than before. So that's one of the things that drives role evolution.
The other one, I briefly alluded to it before, is the mismatch between expectations and behavior.
So either through a failure to meet the expectations placed on you or through contributing more
than what's expected from you, the other people adapt, right? They learn to expect the new
normal over time.
I gave you several examples of this already, but just one more. The head of the science group in
the second company that I was talking about was hired as a scientist just to do whatever it is that
scientists do but started to get involved in software development side of things without knowing
anything about it at the start.
By the time that I spent time with his company, he was attending all the meetings for the
development group, chipping in into what a product should be doing, how it should be behaving,
what do the user community think about it. And he became a very important voice within the
group, just thanks to his own initiative. Now people expect this from him. If he leaves, they will
miss that heavily.
One more finding and we're done. We also looked at what kinds of media people used based on
the role that they had and how they -- did they use it.
A problem for this observation was that, you know, these are small companies, completely
collocated, so a lot of the interaction was face to face. But moving beyond the face to face, what
kinds of artifacts people used to communicate, well, the broadest medium used in both
organizations was the issue tracking system. Okay.
But its use was not uniform. So developers and QA people used it a lot to have a conversation
going through the issue tracking system. But other people also interacted a lot in -- or took a lot
out of it in different leads.
So, for instance, team leads were interested in the aggregate information, what's the overall
activity going on. They get information from the issue tracking system even though they don't
put a lot in it.
Product managers use it to keep track of the general progress of particular kinds of features. The
director of software development in both places uses it to get a very high-level view of things.
He uses it more as a dashboard than anything else. Project managers use it. So, you know,
people all over use issue tracking systems.
But if you just look at who is communicating through it, you miss a lot of the people who are
listening or taking the aggregate activity out of it.
We were interested in this because of the earlier research project that Andy mentioned when he
introduced me, the one we did here with Gina Venolia. And we speculate that perhaps part of
the reason why sometimes software repositories are incomplete or misleading is that they're just
capturing one kind of role, interaction between just a few roles and missing all the other people
that are part of the conversation but in a more passive sense.
Other media, the use of other media were more localized. So, for instance, chat, IRC, was used
with some development teams but project managers didn't use it. The customer support people
used Google Docs to keep track of cases from their customers. Nobody else had access to these
documents. E-mail and phone were more prevalent for managers. Developers rarely used either,
especially phone.
Okay. So so what? So I went over our theoretical framework to make sense of roles in software
organizations. I argued that looking just at the role level may be misdirection; that we need to
look at the actual expectations placed on people and to distinguish between what a role is and
what a position is.
And I think at the very least this should give us better foundations to talk about different kinds of
software professionals.
And even though we're just beginning to do this, I think it would help us to design better studies
about organizational structure and organizational design.
For instance, remember that table I showed you earlier, we could devise a survey or some study
based on something like that, have it self-reported instead of derived from interviews to make
data collection easier, and from several people you could get a three-dimensional matrix of what
people expect from each other and what they think people expect from them and start to analyze
misunderstandings in placement of expectations within the organization.
So something like this I think could lead to better role definitions. It could help to study
bottlenecks and efficiencies in the organizational structure, what kind of expectations are just
placed on one or two people, and we lose those people, you know, the company is in trouble and
how to fix that.
Yeah. And finally some brief observations. Role-based differences in media use. So the fact
that people in different roles use different kinds of media or use them in different ways. Could
point to systematic omissions in repository mining. So that's something to pursue later on.
If in your organization you're concerned about role specialization, you're right to be concerned.
And it's important to realize that if you want a team of generalists, even though you're perhaps
having someone specialized briefly in something and then come back to the general group, the
way that Azure proponents advocate, that short-term specialization, unless you actively try to
fight it, could lead into a more hard-to-break long-term specialization [inaudible].
And finally if we just take the labels of the roles, if we just talk about project manager or
developer or product manager, that may obscure the true contributions that people bring into
the -- into their teams. If you're just a project administrator, you may not -- other people may not
realize all the other stuff that you're bringing into the project.
And I think I will end there. If there's any other questions, I will be very happy to take them.
>>: So do you have any plans or aware of any additional research? I mean, obviously, you
know, it's good to start somewhere, but varying sizes of organizations, larger organizations,
because I think that's -- it's a good start, but what's interesting to me is, as I talk to some
colleagues, or some people within Microsoft, that especially the generalization would be that
there definitely tends to be a movement -- well, I shouldn't say definitely because it's anecdotal,
but to me it [inaudible] to be a movement towards trying to generalize, or at least there's more
[inaudible] roles.
>> Jorge Aranda: Right.
>>: And it's starting to break down some of the walls.
>> Jorge Aranda: Yeah.
>>: You mentioned not just the -- the last point you made about even just the role contributions
maybe not being realized, but they also -- the potential contribution may also be constrained by
the role as well, right?
>> Jorge Aranda: That's true. Well, yeah, so to answer your question, definitely a study in a
larger organization is something that we would like to pursue.
>>: And also other domains, because, you know, [inaudible] huge and that may -- there may be
domain-specific things about roles that we don't understand yet as well.
>> Jorge Aranda: Yeah. So in the short term, in the fairly short term, if all goes as planned,
we're going to do something similar with a particular group at a very specialized -- in a very
specialized domain in a large company at General Motors. We're also pursuing other
replications of this in other sites.
What I should point out is the theoretical framework, if we got it right, it should still apply. But
it would still be interesting to see the variations in different settings.
The big one is we expect to see more specialization in larger organizations, even though you try
to fight it. Yes.
>>: Do you see your organization anywhere else [inaudible] where expectations were like
codified, like written down anywhere? Or did it really appear that people just kind of got
expectations from other people in that same role and other people in the company, just kind of
inferred what their expectations were?
>>: To a very large extent in both sites there was no formal -- no correct formal representation
of what the expectations are. The second site, remember, is publicly funded. So the position has
a description for everyone. That description often does not match what they're actually doing.
In the first site I got several people -- for instance, one of the product managers I was talking
about, the one that has a Ph.D. in bioinformatics, he says, well, I was hired in as a project
manager. I didn't know what a product manager does and nobody told me. I thought, he says,
that what a product manager should do is to, you know, be in touch with users and with the user
community and kind of tell people inside what would work and what wouldn't work.
He was frustrated and a bit confused by the amount of control he was expected to have of the
direction of the product. Like he should be saying work on this, not on that, instead of I think
maybe this is a nice avenue to pursue.
With time he learned to adapt his own behavior to the expectations that people placed on him.
And the role became more similar. His role became more similar to that of the other product
managers in terms of defining what the team is going to do. But this came from trial and error in
his case and in many others in these groups.
>>: So at the beginning you posed this question is there really a problem here. In your
interviews, did it -- did any people express like a desire to have a better understanding about their
own roles and expectations on them? Or was it like, yeah, it's kind of fuzzy, but, you know,
we're fine as -- you know, it doesn't need it?
>> Jorge Aranda: Yeah. Great question. I think -- so if I remember correctly, nobody said I
would like a better definition of what I should be doing now, although I would have liked it
before when I was figuring it out.
I think in general people like fuzziness for themselves because it's more convenient, right? I
mean, I didn't know I was supposed to be doing this, so you can't blame me, right?
So in a sense, you know, it helps you to have the fuzziness. It doesn't help you when other
people have it. And I did hear complaints that, you know ->>: [inaudible] other people have that about you?
>> Jorge Aranda: No. So what I got a lot of was stuff like, especially in the first company, these
folks should be doing this, you know, X, and they're not doing it. All the time we have to go in
and do it ourselves. That's not the way it should be. Right?
So I'm just hypothesizing here, but people, it would appear, do not like concreteness on their own
descriptions but would appreciate it on other people's descriptions.
>>: And the other thing that wasn't covered in this study is almost the opposite when you say
there's a downsizing, a very small, but let's say there's another round of VC funding, all of a
sudden, you know, company A wanted to double their size or their engineering team. And then
again, like your first point of is there a problem, well, which roles do I hire, what's the ratio of
people that I hire. And I think that's where you might get this, you know, where that fuzziness
can help, can possibly help.
>> Jorge Aranda: Yeah, that's right. Yes. Yes.
>>: Did you take these results back to the companies? And, if so, what was their reaction?
>> Jorge Aranda: I am taking them next week. I'll tell you then. So I have a presentation with
the first company on Monday.
>>: Find out if they believe you.
>> Jorge Aranda: Yeah. So informally the one -- the only person I talked this -- I talked about
this with was the director of software development. Nothing here [inaudible] him. But we'll see
about the rest of the organization. I'll report back.
>> Andrew Begel: All right. Well, let's thank our speaker.
>> Jorge Aranda: Okay. Thank you.
[applause]
Download