Why do I see so many computer scientists who look drained, tired, and overstressed?

Why do I see so many computer scientists who look drained, tired, and overstressed? by @lancewalton

Answer by Lance Walton:

I think you mean ‘programmers’ rather than ‘computer scientists’. I'm going to answer on that basis.

One of the problems with programming as a job is that the following happens over & over again:

  1. Some people talk about something they’d like to get done that's going to involve some programming. They don't know anything about programming.
  2. They ask some other people to do some analysis on the problem.
  3. On the basis of that analysis, somebody is asked to come up with a best guess (the stupid word ‘guesstimate’ is often used) as to how long, how many people, how much, etc.
  4. They then start recruiting a development team while continuing to analyse, design, etc. All in Word documents & Visio.
  5. The development team looks at those documents & the older ones shake their heads in despair, while the younger ones think of the glory
  6. The required delivery date is stated
  7. The more belligerent developers will challenge it: what can be de-scoped, why is that date important, what can be moved out of the way to give even a glimmer of hope of hitting that date? The answer: nothing. It's all required by that date for reasons.
  8. Then the work starts. As the work starts, the problems are found in the analysis. Most likely the analysis covers the 1/10th of the actual work to be done because nobody has thought about the network failures, the problems associated with multiple users interacting, the fact that there isn't actually a source of reference data that somebody had assumed existed, the fact that you're talking about a global app but some of the analysis didn't think about different holiday calendars around the world (and do we have those holiday calendars? Of course not), & millions of others details, small & large that cannot be ignored any longer because the developer who is writing that line of code cannot just leave a blank in that branch no matter how infrequently the analyst thinks that that problem will occur. Some people are going to comment that not enough time was spent on analysis & design before the implementation started. It's not just time that's missing, it's the right people. & detailed up front analysis & design of systems of sufficient complexity essentially turns into an implementation activity anyway. When this is done in Word, it's implementation without appropriate formal structures.
  9. Now we’re running late because development is slow. Let’s ask the devs to work longer hours. A couple of extra hours a day for a few weeks to get the release our the door.
  10. Those couple of hours turn into 6 extra hours, not including the fact that each developer on the team is now unable to sleep without dreaming about whatever problem they are currently trying to deal with.
  11. Those few weeks turns into months.
  12. Finally something is pushed out the door that you have no pride in. Maybe you leave to go to somewhere new where things will be better. Or the same.

I did this for a few years before deciding that the problem was not mine. Now, I dig in hard when people bring me ill thought out documents. I help them to analyse. I help them to find ways to reduce scope in the interests of getting a small, functional system released into the world that can be evolved. I do work that I can be proud of.

But, I still pay a price for this. People want me to shut up & code to what they've written. They don't like me picking it apart. I have arguments. It can get stressful. But that stress lasts a short time (usually) and the conflict finds resolution (usually). Not tackling it this way, for me, feels like I've accepted the mantle & am failing. The only mantle I accept these days is one that’ll involve collaboration right until the end. People don't get to set dates, write documents & then blame the devs for failing to deliver & the testers for letting too many defects through.

Anyway, moan moan moan. I hope that answers your question to some extent.

Why do I see so many computer scientists who look drained, tired, and overstressed?

Iklan

Why does Facebook need so many developers?

Why does Facebook need so many developers? by @jessicatysu

Answer by Jessica Su:

Suppose you say "bake me a cookie."  Well that's easy, a ten-year-old could do it.

Suppose you say "bake me a billion cookies."  All of a sudden, you need

  • Buildings to store the cookies.  (Preferably in several different places, in case one of the buildings gets hit by a hurricane.)
  • Industrial-strength factories to bake the cookies.  Back-end developers to build the machinery and fix it when it breaks.
  • Front-end developers, who build machines that take the cookies served by the factories and package them into neat little boxes that are served to customers.
  • Data scientists to experiment with various recipes and see which ones people like the best.
  • Designers who decide what goes into the recipes.
  • A security team so nobody hacks into the buildings and steals cookies.
  • Quality assurance people who make sure the cookies are safe.
  • A legal team for when people sue you anyway.
  • A marketing team so people want to buy your cookies.
  • Managers to lead all these people and make sure they know what they're doing.  Managers to lead other managers.  Managers to lead those managers, etc.

Sooner or later, you need thousands of people, and that is why Facebook is so big.

Why does Facebook need so many developers?