summercomfort (
summercomfort) wrote2011-07-26 03:07 pm
On jobs
Being married to someone who works for Mozilla has allowed me a sideways peek at how things work behind the scenes. For example, I'm constantly surprised at the number of non-coders who are needed for every coder -- project managers, team managers, recruiting and HR, marketing, accounting, office assistants, art designers, UI, data analysis, etc etc. I guess in comparison, the number of non-teachers in a school is relatively low -- principal, registrar, nurse, librarian, guidance counselors, and a few administrative assistants. Related, I am also constantly surprised at the amount of non-coding work that the coders have to do -- it seems like all of those non-coding groups are asking something of the coder, whether it is a meeting, a report, or to do an interview for a potential new hire, and all of these demands take time away from coding. When Jono has a day where he can code, he comes home happy, and when he has a day of this other work, he comes home frustrated.
This is a structure that is very different from teaching, where no matter what else, the core activity of the school remains teaching kids, and everything that the non-teachers do is to support and foster that activity. I can't imagine a work day where I sit down to plan my lesson and teach my classes, but then the librarian shows up and wants to know how to teach a class on citation, and I check my calendar and the dean of faculty has scheduled for me to interview a potential math teacher in 2 hours, and then just as I was about to start class, the department chair walks in and wants to have a sit-down meeting to discuss my content teaching goals. Sure, there's always one or two other things to deal with, but it never really stops me from teaching.
This makes me think that (1) I'm glad that I'm in a profession where my job is at the core of the "industry", and I'm at a school that does its best to let me do my job; and (2) Either the writing of code is not at the core of the tech industry, or many tech companies are not very good at letting their coders do their job.
I hear/see it all the time around here -- "work" is where you have meetings, eat gourmet food, and go on scooter joyrides. "home" or "on the train" or "the coffee shop" or "3am" is where you get your coding done. People arrange special 24-hour hack-a-thons to get coding done. When I was little I thought that's just how coders worked -- get in to work at noon, start work around 3pm, finish around midnight, sleep. But now I think that's just how young people work -- ask any college student. But how do you maintain these hours if you have a family? How do you maintain these hours if you want to hang out with people who aren't coders?
The issue seems so prevalent around here that I wonder if it's because coding is not at the core of the tech industry. If not, what is? What is the thing that everything else is trying to facilitate? What is the activity that Does Not Get Interrupted? Perhaps the activity is Convincing Us We Need Their Product -- in the form of updates and shiny videos, and of course, the quality of the product/service itself.
But if that were the case -- if the primary goal is sales in a world where nothing is sold (except perhaps information), there doesn't seem to be a lot of attention paid to Us. Another thing that I didn't realize before living with Jono is that tech people live in a world with very different technology from the rest of us. They are always on the latest, fastest computers with the largest monitors. They intuitively understand how computers are supposed to behave, and what is and isn't possible in the world of computers and internet and stuff. Of course everyone is on the fastest internet. Of course everyone wants to communicate with all of their friends online. Everyone has the same Tech World Problems.
Wouldn't it be rather hard to Convince Us that We Need This if you don't live amongst us? Case in point: Firefox has been trying to get me to update to 6 beta, but whenever it pops up the reminder, I'm in a middle of a video, and I don't even know why I would need to update. The reminder just says something vague like "you need to do it ASAP!" But I'm doubtful-- If I update, are things going to break again? What's in it for me? Okay, I guess I can. But now I can't even find the update button. If you want me to update, why not (a) tell me why I should, in clear language, and (b) tell me the risks of updating, and (c) tell me how I should update. My guess is that the little reminder is going to pop up again just as I'm about to start another video.
This is a structure that is very different from teaching, where no matter what else, the core activity of the school remains teaching kids, and everything that the non-teachers do is to support and foster that activity. I can't imagine a work day where I sit down to plan my lesson and teach my classes, but then the librarian shows up and wants to know how to teach a class on citation, and I check my calendar and the dean of faculty has scheduled for me to interview a potential math teacher in 2 hours, and then just as I was about to start class, the department chair walks in and wants to have a sit-down meeting to discuss my content teaching goals. Sure, there's always one or two other things to deal with, but it never really stops me from teaching.
This makes me think that (1) I'm glad that I'm in a profession where my job is at the core of the "industry", and I'm at a school that does its best to let me do my job; and (2) Either the writing of code is not at the core of the tech industry, or many tech companies are not very good at letting their coders do their job.
I hear/see it all the time around here -- "work" is where you have meetings, eat gourmet food, and go on scooter joyrides. "home" or "on the train" or "the coffee shop" or "3am" is where you get your coding done. People arrange special 24-hour hack-a-thons to get coding done. When I was little I thought that's just how coders worked -- get in to work at noon, start work around 3pm, finish around midnight, sleep. But now I think that's just how young people work -- ask any college student. But how do you maintain these hours if you have a family? How do you maintain these hours if you want to hang out with people who aren't coders?
The issue seems so prevalent around here that I wonder if it's because coding is not at the core of the tech industry. If not, what is? What is the thing that everything else is trying to facilitate? What is the activity that Does Not Get Interrupted? Perhaps the activity is Convincing Us We Need Their Product -- in the form of updates and shiny videos, and of course, the quality of the product/service itself.
But if that were the case -- if the primary goal is sales in a world where nothing is sold (except perhaps information), there doesn't seem to be a lot of attention paid to Us. Another thing that I didn't realize before living with Jono is that tech people live in a world with very different technology from the rest of us. They are always on the latest, fastest computers with the largest monitors. They intuitively understand how computers are supposed to behave, and what is and isn't possible in the world of computers and internet and stuff. Of course everyone is on the fastest internet. Of course everyone wants to communicate with all of their friends online. Everyone has the same Tech World Problems.
Wouldn't it be rather hard to Convince Us that We Need This if you don't live amongst us? Case in point: Firefox has been trying to get me to update to 6 beta, but whenever it pops up the reminder, I'm in a middle of a video, and I don't even know why I would need to update. The reminder just says something vague like "you need to do it ASAP!" But I'm doubtful-- If I update, are things going to break again? What's in it for me? Okay, I guess I can. But now I can't even find the update button. If you want me to update, why not (a) tell me why I should, in clear language, and (b) tell me the risks of updating, and (c) tell me how I should update. My guess is that the little reminder is going to pop up again just as I'm about to start another video.

no subject
Tech industry in short:
1. We're going to sell you something we're not sure you want
2. We're going to spend a lot of time trying to convince you you want this, OR, finding out what you want even if you're not sure what you want
3. We're going to try to make things we're not sure you want, you're not sure you want, while trying to figure out if you want it.
4. We going to get a lot of investors to believe that we know what you want and we can make it well
For a constrasting parallel - this is everything you wouldn't want if you were doing graphic design - making stuff you're not sure the client wants, and constantly remaking it based on what you think they want, and, what an investor thinks they want.
no subject
no subject
And hey, sorry about bailing on you for LotR. I'd invite you to a movie, but it seems all the current ones are "meh".
no subject
You know what writers say? "Writing is easy, deciding what to write is hard".
Coding is like that too. Even when I'm working on a solo project, most of the time I spend is deciding what code to write. But since it's just me working on that, all the decisions are in my head or are in a text file of notes to myself, so the decision process looks a lot like writing code. At work, deciding what code to write is an exponentially more complicated and time-consuming process involving input from many people. So a lot of the meetings are "deciding what code to write". Doesn't make them any more pleasant, but coding without this decision process would be putting a lot of work into a blind alley.
Also, I bet they code more in the engineering team, but I'm in the user research team. I don't write code for Firefox. My job is to answer usability questions (so the engineering team can decide what code to write). Writing code for me is merely an incidental requirement of answering usability questions; other requirements include designing studies, analyzing data, keeping servers operational, etc.
So there are good reasons for all this non-coding work.
The frequent interruptions are a real problem. I believe many of them are a result of the mismatch between the "maker's schedule" and the "manager's schedule" as described here: http://www.paulgraham.com/makersschedule.html
Teaching is different because to teach twice as many kids the same material, you need roughly twice as many teachers. Whereas to give software to twice as many people, you just take the code you already wrote and ship it to twice as many people. So you basically don't need any more coders. (If some of the new users are on a different operating system or speak a different language you might need, like, one or two more coders to do a port or a translation.) But you will need twice as many tech support people, sales people, and so on. So as a school grows, the number of teachers grows with it. But as a software company grows, the proportion of coders gets smaller and smaller.
Anyway to address your complaint about the Firefox updates: Yes, they're freakin' annoying. Firefox will be moving to automatic silent updates, thank goodness. We've already moved to releasing a new Firefox every 6 weeks and if you're on that schedule you obviously don't want to be pestering your users about it every time. Honestly I think we messed up by starting the rapid releases before we had the silent update system in place.
(The other day somebody asked me to do a Test Pilot study on "update fatigue". I was like "why do we need a study? we already know people are annoyed by the pace of updates, we already know we need to move to a silent update system. studies are for questions we don't know the answer to.")
no subject
no subject
I think overall, it's not that tech companies are unusual... a chocolate company probably has a lot of people who aren't directly dealing with chocolate. Teaching is the unusual one. The other similar professions that come immediately to mind are law (law offices have pretty small administrative staffs), and small medical practices (but not hospitals!). I'm sure there are others, but I'm blanking out on them.
I totally agree on the update nonsense. I'm not thrilled about silent updating either, since sometimes updates end up deactivating my add-ons. Also, itunes has given me a deep distrust of updates, which isn't fair to firefox, but there you go.