Slashdot Mirror


Ask Slashdot: What Defines Good Developer Culture?

An anonymous reader writes "I'm part of a team of six people developing applications for mobile devices (Android & iOS). In our company, which consists of many teams responsible for 'classic' software development, business intelligence, virtualization, hardware, etc., we are kind of a small startup because we were the first to use agile methods like Scrum and we are open to new technologies and methods. Also, our team is pretty young — I'm the oldest at 30 years of age. We would like to further raise productivity and motivation, so we're currently collecting ideas about what makes a good developer/hacker culture, and how it can be improved in our team/company. These can be things we do ourselves, or suggestions we pass on to management. I would like to know: what, in your opinion, defines good, modern developer culture? What does developer culture consists of? For example, is it: clearly defined career opportunities? A geeky office? Benefits like trips to extraordinary conferences? Please let me know what you think."

239 comments

  1. culture? by masternerdguy · · Score: 4, Funny

    Soon we'll be using rasberry pis bought with bitcoins in the year of the linux desktop.

    --
    To offset political mods, replace Flamebait with Insightful.
    1. Re:culture? by Anonymous Coward · · Score: 2, Funny

      ... reading about it all on SlashBI and SlashCloud.

    2. Re:culture? by Darinbob · · Score: 5, Insightful

      I know this is a joke, but seriously what the hell is "developer culture"? There seems to have been this bizarre and nonsensical fad with HR groups about developing corporate culture recently. They'll talk about what their culture is and try to foster it and all sorts of feel good fuzzy things, without even acknowledging that every building and every part of the buildings will have teams that act differently. The only times "culture" seems to make sense is with describing dysfunctional companies where some people don't fit in with the in-crowd and are excluded. I've seen kids complain that the companies they've applied to don't have a good "culture" and whine that they're expected to do unreasonable things like show up on time and get the job done.

      Only culture I've ever really seen in real life is that building A has the group that goes out and gets wasted every thursday, building B has Hawaiian shirt fridays, building C has the IT guys who stick to themselves.

      You definititely do NOT want homogeneous culture. If you have a goofy guy with all the toys you do not want that in every single cube. You don't want the guy with the tie in every single cube. You don't want everyone to be the same age, race, or gender. You don't want developer culture to be hippie dippie stuff like everyone has to sit around and brainstorm for 2 hours on tuesday, or have stand up meetings, or to give daily reports. You just want people who can do their jobs and interact with others. (I'd suggest not doing agile either but I see the OP has drunk that koolaid already)

    3. Re:culture? by laejoh · · Score: 1

      Smelling them, I'd say, fungus!

    4. Re:culture? by Gripp · · Score: 5, Funny

      meh... prior to my current job i would have agreed with you 100%. But I've actually stumbled into working somewhere that actually does have a culture. Everyone here is willing to put in as much time as it takes to make our clients happy; including staying up until 4am for a load test one night and then waking at 3am for a meeting with an overseas client the next. We've had people hop on and help troubleshoot while at the hospital and vacation, and drive hardware to other states over their weekend. More importantly, there is never a boss forcing or even asking it to be done, we just do what we know is needed. Co workers are open to receiving and dishing out honest opinions - no matter how harsh - and build stronger relationships with other on the count of it.

      It may sound gruesome, but that is where the company embracing culture and its employees comes in. While we are semi expected to be in the office between 10am and 6pm, there is no one watching or caring what time you leave or come in - so long as you're getting your job done. Hell, we don't even track time! Any given night there is at least a few of us out having drinks, and even working from the bar. And more importantly, we are all very accepting. Anyone busting their asses is welcome, with open arms. Our office has a full service coffee bar with a barrista (free), free soda, free snacks, ping pong tables, several arcade machines, a theater and buys lunch for everyone every friday. We have no internet filters or people watching our activity. it's not all that uncommon to see people on facebook or reddit or even playing a video game. It's not uncommon for nerf gun fights to break out, or coworkers facebook bombing each other. Again, all that matters is performance. We all recognize that some weeks are 80 hours of chasing fires, and others are spent dicking around. Working from home is accepted, so long as it isn't abused. And even then they deal with it on an individual basis rather the typical all-encompassing "new company rules" approach. There are no "designated smoke breaks" and no one bitching about the smokers (myself being one have been previously unaccustomed to not constantly hearing that crap). Internal meetings are full of cursing - with our CEO being the biggest potty mouth. In fact, we make it a point to drop as many 4 letter words as we can during interviews to make sure the candidate isn't uptight about that kind of thing.

      This may sound like an impossible environment to work/be productive in... but our flagship product has over 30 million lines of code, we have a hosted environment with 5 datacenters globally + EC2 overflow + PCI walled gardens, and hundreds of premise clients as well - all of which we support 24/7 without discrimination or cost to the client. And since our product is the backbone of many solutions, we have to deal with nearly every type of language and tech out there. python, ruby, groovy, java, C, php, opa, ccxml, vxml, html, groovy, js/jquery, etc. Even better, the purpose of our product is to parse/render many of those languages, it requirs a fairly deep understanding of them, and constant learning... we have to work with ALL db's, OS's, web service types, packet analysis, working with various carriers and telco's and hardwares, etc. . All done with around 100 employees, total - which only about 60 are technical.

      TL;DR - free/happy employees make the best employees. Just make sure you focus on hiring/keeping the aces.

    5. Re:culture? by Kogun · · Score: 1

      Culture happens anyway. It is always present and is not a fad. As you say, there may be a fad in promoting a "developer culture" as some kind of HR marketing ploy, which may all the point you hoped to make with that, but a culture exists, whether it is fostered or not. I think the OP is asking how to foster a good culture, and given that he is not in HR, I take his question at face value.

      Your dysfunctional example is a case where good culture is not being fostered by the tribal leaders Seeking good culture includes seeking to reduce the effects of dysfunctional companies on the tribe.

      I've worked in environments where a "fake" culture, denoted by the equivalent of Hawaiian-shirt Fridays, was promoted. That happens when clueless people try to grow the tribe beyond practical limits (there is a limit) or simply don't understand what culture is. But it is likewise clueless to suggest that "hippie dippie" stuff should be avoided. There is no right or wrong in those things. They are simply attributes that are available to be adopted or not according to the needs of the tribe.

      I totally agree that a good goal is "people who can do their jobs and interact with others", but like "profit $5 million annually per employee" is another good goal, it is not enough to say the goal, there must be a plan.

    6. Re:culture? by Chrisq · · Score: 0

      Soon we'll be using rasberry pis bought with bitcoins in the year of the linux desktop.

      yes and Islam really is the religion of peace!

    7. Re:culture? by sycodon · · Score: 1

      $$$$$$$$

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    8. Re:culture? by Anonymous Coward · · Score: 0

      I know this is a joke, but seriously what the hell is "developer culture"? Only culture I've ever really seen in real life is that building A has the group that goes out and gets wasted every thursday, building B has Hawaiian shirt fridays, building C has the IT guys who stick to themselves.

      Then that's your culture and you don't recognize it as such because you're in it. other ones exist. reminds me of this:

      There are these two young fish swimming along and they happen to meet an older fish swimming the other way, who nods at them and says "Morning, boys. How's the water?" And the two young fish swim on for a bit, and then eventually one of them looks over at the other and goes "What the hell is water?"
      David Foster Wallace Transcript of 2005 Kenyon College Commencement Address

    9. Re:culture? by Jonboy+X · · Score: 1

      So your job has a culture of peer-pressuring each other into working yourselves to death, and pretending it's a choice?

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    10. Re:culture? by composer777 · · Score: 4, Interesting

      I've found agile methodology is a great way to spot people that won't be writing software in 5 years. The more people spend their time trying to solve "meta" problems like what is wrong with the software development process, the more likely it is to be a reflection on their own issues with productively writing software. You can take a talented programmer, put them in a room alone, and get good work. You can also take a bunch of "agile" guys, put them in a room, and get nothing but BS about improving culture. Sorry, but programming is only very slightly about culture or methodology, and good coders get stuff done regardless of what is going on around them. If they can't get it done at work, they take it home with them. If their primary job isn't satisfying, then they work on side projects. I've never seen anything get in the way of talented developers. On the other hand, I have seen a lot of excuses from people that don't belong in the field.

    11. Re:culture? by composer777 · · Score: 2

      I worked at a place like that and they went down in flames. At my current job our total code base is only about 1 million lines of code that runs on OSX, linux, and windows. The difference is we do it with three people, and we also serve as IT for the lab. In and of itself that's not a big deal as the amount of code per developer is similar to your organization. The major difference is that we get it done in 8-10 hours a day Monday through Friday, with weekends off, and 6 weeks totals of paid vacation/holidays. Have fun trashing your body....

    12. Re:culture? by gbjbaanb · · Score: 1

      whjat you have does certainly sound similat to Alistair Cockburn's Crystal Clear methodology, in particular his ShuRaRi system of determining the appropriate level of expertise/handoff required:

      One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:

              âoePut 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone.â

      I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â

      you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.

    13. Re:culture? by gbjbaanb · · Score: 0

      what you have does certainly sound similar to Alistair Cockburn's Crystal Clear methodology, in particular his ShuHaRi" system of determining the appropriate level of expertise/handoff required:

      One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:

              "Put 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone."

      I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â

      you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.

    14. Re:culture? by Glonoinha · · Score: 4, Insightful

      This.

      Want some incredible results from your software engineers? Here's all the culture you need :
      Give them a very quiet place to work, free from distractions, and take away the barriers to success / productivity.
      - Too warm? That's a distraction that will destroy any attempts at getting work done that day.
      - One or more people having personal discussions loud enough that the dev overhears them? Esp if the chatty people aren't on the dev team? Another day's productivity pissed away.
      - It takes a good developer half an hour or so to 'get in the zone' doing heavy / hardcore coding and debugging. If he has to get up and go find food all those balls in the air drop to the ground and he starts over again when he finally gets back from eating. Find out what they eat and have it magically show up at their desk about 11:45am and they will feed their face while they continue being productive. If they're billable that extra hour, then there is nothing on Earth that you could feed them that costs more than that billable hour (but odds are they will be happy with a subway sandwich and a bag of chips.)
      - Need to request permission / wait for a signature before doing something routine? Need to wait to have someone else make changes that the developer could make (perfect example : DDL or DML changes in the developer database)? Another day's productivity lost.
      - Figure out who the slackers are and cull the herd a little. A small team of shit-hot developers that work well together can deliver rings around a larger team mixed with good / weak players.
      - Any meetings that are useless? Don't make them attend. Any meeting with 8+ non-developers in it is probably useless, from the 'does a developer need to be here' perspective.
      - Give the heavy hitters more hardware than you can imagine them possibly using - they'll find a way to put four monitors, two servers and two laptops to good use, and anything they don't use they will pass on to someone that can. Nothing says 'I love you' to a good developer than a new tech toy, or a new laptop when their old one is about two years old.

      All that 'team-building' crap? Save it. Want a real team-building exercise, send a few of them away to a conference and only give them one car so they have to stick together, give them enough rope to get in trouble together. When they come back they will be an Olympic quality team.

      --
      Glonoinha the MebiByte Slayer
    15. Re:culture? by jlowery · · Score: 1

      If coding is your life, this is not such a bad culture. But as we get older most of us have seen the same problems repeatedly, and it just becomes less fun. Then you want to do other things with your life, unpredictability of work hours makes chasing other interests (and spending time with family) difficult.

      Some people still have the enthusiasm for coding and technology into their 60's, but for most of us it get's harder and we don't want to spend the 80-ish hours/week trying to keep pace with the ever-changing technology stack, fads, and methodologies just so we can impress other developers with our cojones. Nowadays I'd rather impress women on facebook with a cleverly humorous limerick.

      --
      If you post it, they will read.
    16. Re:culture? by b4dc0d3r · · Score: 2

      We are not talking about individual developers. This topic is about providing an environment where people can do their best. A good developer should not have to take stuff home to work on if the environment is part of the workflow, instead of an impediment.

      Hiring the right people and firing the right people is a great way to start, but it's often very hard to do. Giving the developers some flexibility to choose their methodology, whether it's agile or something else, goes a lot further than telling them they will be agile because someone read it works better.

      Tools, flexibility, accountability, and stake are what it takes. They have to have some stake in the product, whether it's stock awards or pride or names in the credits. Just being on a first name basis with the purse-holder will go a long way, as the actual customer who uses your product can say they are happy with the progress made so far.

      More to your point, I have found agile to be a great way to salvage a program that wasted piles of money over several years. Every two weeks I can show progress, check things off the list, and the customer feels like he's getting something for his money. It's not always the method for the developers - sometimes the customers need to watch the progress, and agile is a great way to do that. You choose agile when it makes sense, not because it's the thing to do. Sometimes it doesn't make sense, and those are the people who won't be coding in 5 years.

    17. Re:culture? by Anonymous Coward · · Score: 0

      Your post contradicts itself. You say that "agile methodology is a great way to spot people that won't be writing software in 5 years" and you also say talented programmers can "get stuff done regardless of what is going on around them."

      So...doesn't that mean that a talented programmer can get stuff done, even if the agile process is what is going on around him?

      I think it does.

      My current employer did waterfall badly and took a beating for it, and then managed (thanks to one project manager with real talent) to do agile well and started kicking ass and taking names. They have been seeing steady and significant growth for the past decade now, despite the difficulties in the economy.

      Does this mean agile is the right solution for every business? Hell no. But it DOES mean that agile can and does work, when it is done right and the situation calls for it.

    18. Re:culture? by Brain-Fu · · Score: 1

      And are the salaries around $150 k per year? If they are much below that you are being taken advantage of; the market has many employers who are having a hard time hiring employees with half your devotion. You could easily make equivalent salary and still have free time for a personal life.

    19. Re:culture? by xtrafe · · Score: 1

      I think it's safe to say that such a thing as "developer culture" exists, insofar as it is reasonable to say that something called "culture" comes into play any time humans interact, and "developer culture" is something that goes on when developers interact.

      ...but if desirable developer culture is anything like any of the other big concepts in software dev that we've been figuring out over the last couple decades, (such as how to plan things well and how to satisfy our customers) it almost certainly can't be brought about by a silly HR campaign, conferences, breakroom snacks, or passing around the CEO's favorite book. Rather, like everything else, I expect the foundation of good developer culture is in communication and conversation.You might notice that I'm cheating here because this, like most discussions of culture, is highly self-referential. Good developer culture would seem to both imply and require good planning practices & satisfying customers, etc.

      Anyway, this is all just a lot of hot air to say: be cool to each other, really try to listen for what the other person needs to know or cares about before offering your own opinion, don't get angry, don't be an ass, don't try to assert yourself over others, strive for empathy, recognize merit, don't let others into your club unless they can meet the bar, and try to foster these notions as shared values though effective communication. If putting foozeball in the breakroom looks like it might be a useful tool to help you do that, fine. But if the foundation isn't conversation, you're not going to really get what you want, IMHO.

    20. Re:culture? by justforgetme · · Score: 1

      Yep, it does work.
      But actually such strategies need a much more intelligent overlord (manager, CEO) than you will get in most cases.
      Most will simply not have the nerve or trust in their own hires to actually stay aside.
      Also unfortunately, there is no worse thing in a high productivity environment than a micro-managing boss.

      --
      -- no sig today
    21. Re:culture? by Gripp · · Score: 1

      I can appreciate this. But my aim was advice I felt in-line with the ops inquiry.

    22. Re:culture? by Gripp · · Score: 1

      Not even close. I would hazard a guess of roughly half that, on average. We have a few that have left to pursue higher paying 9-5's. Usually in the 90 to $100k range. But many have returned out of pure boredom/lack of challenge. One even reported having been lambasted by his boss for completing his 6 week project in 3 days.... Of those who have not returned, many of them continue to be part of "the family" ... staying on the sports teams or continuing to join us for happy hour. Point being that "culture" is obtainable in a company. And more specifically, the young group the article references sounds in line with this type of mentality.

    23. Re:culture? by Gripp · · Score: 1

      Hmmm... I've never felt any peer pressure. More like client pressure. Though I certainly can't speak for everyone. I suppose it's worth asking around. In the few cases where I've been unwilling or unable to meet a client's demands others have gladly picked up the slack, without any amount of fussing. I suppose because I do the same for them.

      Personally I've never had a job that wasn't demanding. Never a "normal" 9-5. And I've had a lot of jobs... Generally they have all been "must be here during 'core hours,' regardless of work load or recent work levels, and still regularly work til 3am to meet project deadlines" Which, the choice between being leashed to a certain grouping of hours versus working "when needed, as much as needed" seems obvious to me. It may be personal preference but outside of having a child's schedule to contend with I can't imagine someone preferring the former after having experiencing both.

    24. Re:culture? by Brain-Fu · · Score: 1

      Amazing. I recognize that not everyone is motivated by money, and I can sympathize with a distaste for boredom, but it just seems strange to me that someone would turn down $20k per year and most of their personal life for a less boring job.

      How likely do you think it is that you will all have the spirit and the endurance to keep this pace up when you are past your 40's? And how likely do you think it is that your company won't start looking at replacing you with younger people at that time? sub-100k salaries are generally not retire-early salaries, and there is a bias against old programmers in the industry.

      Kudos for finding happiness, but, I hope you all know what you are doing.

    25. Re:culture? by Anonymous Coward · · Score: 0

      Is there an echo in here?

    26. Re:culture? by Anonymous Coward · · Score: 0

      http://programming-motherfucker.com

    27. Re:culture? by Gripp · · Score: 1

      well, if I were to stay with this company that long (32 now) I would probably move to project management or sales engineering. but yes, down the road when I'm ready to simply "be home" I'll likely move to one of those jobs. But not until I know the job i get is stable, well paying and I wont be treated poorly. A tall order in this economy - and I figure this job does well to qualify me for such positions.
      I will say that it seems most people hit a wall at about 5 years. We've been in business 11 years. After 7 years the company offers a 1 month paid sabbatical (in additional to regular PTO) as incentive to keep going.

    28. Re:culture? by Anonymous Coward · · Score: 0

      The first rule of good developer culture: Don't talk about developer culture.

    29. Re:culture? by Anonymous Coward · · Score: 0

      Is it GitHub? :-)

    30. Re:culture? by Anonymous Coward · · Score: 0

      This kind of sounds like hell to me. Sure, you have happy customers, but how happy is your family? How happy are you? I've done that BS for a long time (not doing it now), and I don't miss it one bit.

      All the free pop in the world can't give me back that hot yoga class I missed with all those cute girls! :)

    31. Re:culture? by Savage-Rabbit · · Score: 1

      I know this is a joke, but seriously what the hell is "developer culture"? There seems to have been this bizarre and nonsensical fad with HR groups about developing corporate culture recently. They'll talk about what their culture is and try to foster it and all sorts of feel good fuzzy things, without even acknowledging that every building and every part of the buildings will have teams that act differently. The only times "culture" seems to make sense is with describing dysfunctional companies where some people don't fit in with the in-crowd and are excluded. I've seen kids complain that the companies they've applied to don't have a good "culture" and whine that they're expected to do unreasonable things like show up on time and get the job done.

      Modern corporations have created a world where people are hired and fired at will, where you can return ftom lunch to find yourself locked out of the building only to be laid off by SMS five minutes before your phone is wiped remotelywhile you and a couple of hundred other sods stand there and wonder wtf is goingn on. A week later you then get a call from some HR drone reminding you that by contract you are obligated to train your Indian/Chinese replacement an like it. Problem is that, while convenient, this is not a good environment to foster the kind of team spirit (aka. Culture) that drives companies who do no treat their employees like disposable cutlery.

      --
      Only to idiots, are orders laws.
      -- Henning von Tresckow
    32. Re:culture? by jamiesan · · Score: 1

      Soon we'll be using beowolf clusters of rasberry pis bought with bitcoins in the year of the linux desktop.

      FTFY

    33. Re:culture? by Jane+Q.+Public · · Score: 1

      The hard part about Agile, if your on your own and not part of a shop, is that it is difficult to get the stakeholders to do their part properly. they (typically) aren't used to it, and resent having to change management style.

      If you are a team, it is much easier to sell Agile to a customer. "This is the way it's done," as opposed to "This is the way I do it."

  2. Not reading /. by genghisjahn · · Score: 1

    Do I need to tell you I'm joking?

    --
    Sorry about the mess.
  3. Good Development Culture by TheNinjaroach · · Score: 5, Interesting

    An emphasis on keeping high-quality & intelligent developers. Don't ever let intellectually lazy developers onto your team.

    --
    I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
    1. Re:Good Development Culture by DrVomact · · Score: 4, Informative

      This truly belongs in the category of questions that if you have to ask, then you're not going to understand the answers...Mostly because they will be of the same caliber as the question.

      --
      Great men are almost always bad men--Lord Acton's Corollary
    2. Re:Good Development Culture by sinan · · Score: 2

      Must be Barnum's Animal Crackers. I think they are the only ones that have seals (and giraffes)

    3. Re:Good Development Culture by alphatel · · Score: 1, Funny

      An emphasis on keeping high-quality & intelligent developers. Don't ever let intellectually lazy developers onto your team.

      We have a solution for lazy developers. Well, a solution for the whole team. Keeps things simple:

      We're adding a little something to this month's developer salaries. First prize is a Cadillac Eldorado. Anybody want to see second prize?
      Second prize is a set of steak knives.
      Third prize is you're fired.

      --
      When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
    4. Re:Good Development Culture by sisukapalli1 · · Score: 1

      "Don't ever let intellectually lazy developers onto your team."

      Or, at least let those developers know that they should start changing their approach -- and have some leverage and resources in achieving that goal. Beware of standard push backs: if you address issues of efficiency or design, there will be a push back in terms of "timeliness". Worst case is if higher ups don't want to be bothered with any of the underlying process related issues.

      If you are in the middle position where the higher ups do not care about the process, and the developers are a bit lazy and complacent (e.g. "I am fine as long as the higher ups are happy"), tough luck!

    5. Re:Good Development Culture by Tough+Love · · Score: 3, Insightful

      Watch out for intelligent developers whose strongest skill is creating the appearance of working without actually doing any. Watch out for intelligent developers whose main skill is undermining the work of other, even more intelligent developers. Sad but true, there is a subculture of both kinds of developers circulating through the industry moving from company to company just ahead of their termination notices, relying on the fact that no former employer will take the legal risk of telling the truth about how they actually performed.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    6. Re:Good Development Culture by Anonymous Coward · · Score: 0

      I've heard people advocate for lazy developers. Because they tend to automate tasks.

    7. Re:Good Development Culture by s.petry · · Score: 1

      I believe you are confusing System Administration with Coders, there is a huge huge difference.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    8. Re:Good Development Culture by gatkinso · · Score: 1

      That is the worse reply I have seen in ages... and very telling about the state of development in your shop.

      NO automated development practices? Really? You run all of your builds by hand? Your regression testing is all manual? You hand roll boiler plate serialization code? Continuous Integration... ring any bells?

      Christ that is pathetic.

      --
      I am very small, utmostly microscopic.
    9. Re:Good Development Culture by Anonymous Coward · · Score: 0

      THIS
      THIS
      THIS
      THIS
      THIS

      My current team was formed to support developers and make their work environment better. It was all really good and we had a wonderful team culture, except for one person on the team.

      He is a passive aggressive jerk who is only happy when he wins arguments. Problem is, while he has some ability most of what he thinks is vastly inflated as he was spoon fed for years. So, his 'coding library' and 'great ideas'? Yes, you guessed it, most of it comes from the people who spoon fed him.

      Working with him was depressing and led to people leaving and the team being reduced from seven to three. Even now I am getting the heck out.

      When you have just one person who is passive aggressive, a prick, does not pull his weight, cuts time, and who constantly attacks others (and gets away with it!) your culture is ruined and your projects start going down the drain.

      The main problem is that this jerk is lazy and just wants to turn up to work and collect a wage. He attacks others using passive aggressive techniques as a defence. Management gives up and the work environment is hell.

    10. Re:Good Development Culture by s.petry · · Score: 1

      Actually this is a pretty large shop where we have people that specialize in those areas, but it's not the average coders doing those jobs. Coders work on code, specialists work on automating builds in conjunction with System Admins that tune and build systems to meet the need. The same with regression testing. Specialists do those tasks, not average coders.

      If every coder had task automation as a primary task, we'd be in a world of hurt and probably write very little code.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

  4. No micro manages or quotes with NO TPS reports by Joe_Dragon · · Score: 1

    No micro manages or quotes with NO TPS reports

    Let people do work with out all the BS meetings and paper work.

    1. Re:No micro manages or quotes with NO TPS reports by fluffythedestroyer · · Score: 4, Insightful

      But meetings do serve a good purpose in a company like the plans on what to do next, whats going on right now, the reports, all those things a boss and other employees can communicate to each other when they don't have time. Meetings do serve that purpose and others like acting as a guide or a light in a big ocean as it's very easy to lose track. Taking 30-60 minutes per week minimum can help a company a lot since most of the time they work and don't have time to talk to each other. Just don't have too many since employee might get pissed off and demoralized by it.

    2. Re:No micro manages or quotes with NO TPS reports by silas_moeckel · · Score: 5, Insightful

      There are productive meetings and there are not so productive meetings. A lot of effective management is shielding your people from the unproductive ones and getting the right people to the others when needed. At 6 people that's pretty easy to do.

      --
      No sir I dont like it.
    3. Re:No micro manages or quotes with NO TPS reports by seepho · · Score: 5, Funny

      The solution is obvious: have a meeting to discuss the usefulness of meetings.

    4. Re:No micro manages or quotes with NO TPS reports by Korin43 · · Score: 2

      But meetings do serve a good purpose in a company like the plans on what to do next,

      A bug tracker + email is better.

      whats going on right now,

      Bug tracker + email

      the reports,

      Email

      all those things a boss and other employees can communicate to each other when they don't have time.

      Email + Instant messenger

      Benefits:

      1. Fast responses in general (don't have to wait for the meeting)
      2. People can respond when they have time (doesn't disrupt work)
      3. Doesn't take any time if you have nothing to say (no pointless meetings)

    5. Re:No micro manages or quotes with NO TPS reports by fluffythedestroyer · · Score: 1

      Email could be a good thing but in my experience since I'm working in a big office emails are easy to lose track. Lots of people don't read emails or don't take time to read them efficiently unfortunately. Also, some people might say that "Well i emailed you that meeting review so if you didn't read it it's your fault". That might be very true but the end results are the same, they didn't read the email so theres lots of potential important info that might be lost. IMO, just try emails like you said and if it works, stick with it but if it doesn't change quicky.

    6. Re:No micro manages or quotes with NO TPS reports by Yetihehe · · Score: 2

      Email + Instant messenger

      Benefits:

      2. People can respond when they have time (doesn't disrupt work)

      Only if your boss doesn't ask 5 minutes later why are you not responding to email.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    7. Re:No micro manages or quotes with NO TPS reports by ajcoon · · Score: 0

      Fast responses == more interruptions/context switches. That's horrible for productivity, quality, and creativity.

    8. Re:No micro manages or quotes with NO TPS reports by ShanghaiBill · · Score: 5, Interesting

      There are productive meetings and there are not so productive meetings.

      • Most meetings should involve two people. Sometimes three. Rarely more.
      • Any meeting that involves more than three people should be done standing up.
      • Anyone should feel free to excuse themselves from a meeting when they feel their presence is no longer useful.
      • Meetings should have a written agenda and a clear purpose
      • Meetings should have a clearly stated start time and a clearly stated end time. Never wait for late people.
      • Meetings should have a designated note taker, and any decisions should be documented and disseminated.
      • Most regularly scheduled "status" meetings are a waste of time
    9. Re:No micro manages or quotes with NO TPS reports by Troyusrex · · Score: 5, Funny

      The solution is obvious: have a meeting to discuss the usefulness of meetings.

      Yes but you can't rush right into a meeting like that. Often it takes four or five pre-meeting meetings before going into a meeting like that.

    10. Re:No micro manages or quotes with NO TPS reports by w_dragon · · Score: 3, Funny

      That describes pretty much every scrum retrospective I've been a part of.

    11. Re:No micro manages or quotes with NO TPS reports by Darinbob · · Score: 1

      All right, so we're agreed to have a pre-planning meeting on this?

    12. Re:No micro manages or quotes with NO TPS reports by Darinbob · · Score: 4, Insightful

      No standing up! First that gets really close to agism. Some people say only 5 minutes max but it won't happen, some doofus will keep talking. Standing up as a goal to keep meetings short will not work, it will just make people feel uncomfortable and fidgety. The only reason to have one is if your company is too poor to buy chairs and the carpet is too dirty to sit on.

      If you excuse yourself when you no longer feel useful, no meeting would ever last more than 30 seconds.

    13. Re:No micro manages or quotes with NO TPS reports by geekoid · · Score: 2

      "Most meetings should involve two people. Sometimes three. Rarely more."
      I disagree. Meeting need the person calling it to be a moderator, anyone would be able to call it when it starts to loose track, and develop a culture that respect those 2 rules. Some thing s are really to complex or require too many disciplines for meeting that small.

      "Any meeting that involves more than three people should be done standing up."
      Don't be an ass.

      "Anyone should feel free to excuse themselves from a meeting when they feel their presence is no longer useful."
      Absolutely.

      "Meetings should have a written agenda and a clear purpose"
      Absolutely.

      "Meetings should have a clearly stated start time and a clearly stated end time. Never wait for late people."
      depends. Sometime people will have meeting back to back. The culture I am currently in is 5 minutes.

      "Meetings should have a designated note taker, and any decisions should be documented and disseminated."
      Absolutely

      "Most regularly scheduled "status" meetings are a waste of time"
      I disagree. Have you ever worked on a multi-million project that involves a dozen or so different groups and disciplines?

      Sometime that are needed. Does this mean every week and everybody? not usually.
      And they should be quick. determine if the status are as expected. If there are problems that can't be solve sore explained in 30 seconds, set up a meeting with the people who know what you need.

      Never, ever, bring sugar heavy food.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    14. Re:No micro manages or quotes with NO TPS reports by Anonymous Coward · · Score: 3, Funny

      • Most meetings should involve two people. Sometimes three. Rarely more.
      • Any meeting that involves more than three people should be done standing up.
      • Anyone should feel free to excuse themselves from a meeting when they feel their presence is no longer useful.
      • Meetings should have a written agenda and a clear purpose
      • Meetings should have a clearly stated start time and a clearly stated end time. Never wait for late people.
      • Meetings should have a designated note taker, and any decisions should be documented and disseminated.
      • Most regularly scheduled "status" meetings are a waste of time

      Oh man! Hahaha! Whoosh on me! I laughed pretty hard when I finally realized that everyone was actually talking about sex.

    15. Re:No micro manages or quotes with NO TPS reports by Anonymous Coward · · Score: 0

      We know where we are now.
      And we know where we need to be.
      We just need to have some meetings to figure out the bits in the middle.

    16. Re:No micro manages or quotes with NO TPS reports by DarwinSurvivor · · Score: 1

      Sorry about that, the tube that goes to my computer is a little small, so the mail has to take turns going one way or the other. Once the incoming emails slow down, the outgoings ones will get a chance to leave.

    17. Re:No micro manages or quotes with NO TPS reports by DarwinSurvivor · · Score: 3, Informative

      Try shortening and reducing your emails. The best thing to do is split all information into 3 categories. A) What a person doesn't know they need to know B) What a person knows they need to know C) What a person doesn't need to know.

      Only stuff from category A should be send via e-mail. Everything in B and C you throw on a wiki, bug tracker, reference docs, etc so they can look it up themselves when they need it (instead of when you decide to send it). The only exception is a quick 1 line e-mail saying "the informatin regarding FOO you have been waiting for is now available at BAR" with a link to the resource.

      Not only does this keep the e-mail volume low (and increase the chances that your employees get the information they need), it will also help centralise and enforce your documentation instead of fracturing it among 10 employee inboxes.

    18. Re:No micro manages or quotes with NO TPS reports by Anonymous Coward · · Score: 0

      I remember being in meetings 16+ hrs per week (and I was the tech writer). Our lead dev was tyrannical. We would do Agile stand-up meetings and then meet for two hrs to talk about the stand-up. Then another hour or two to discuss that meeting, and so on. 60 hr weeks were typical, due to this control freak's insatiable need to hear his own voice.

    19. Re:No micro manages or quotes with NO TPS reports by idontgno · · Score: 1

      No, no, no no no... wait.

      This is the kind of planning planning that can really only be done at a pre-planning agenda working group. We need a standing... semi-weekly, I think... pre-planning agenda working group. Probably, need to charter it through the Processes and Moderation SIG. And buy-in from Quality and Timekeeping.

      Make it happen. Schedule a kick-off meeting for formulating the Pre-Planning Agenda Working Group Working Group planning group.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    20. Re:No micro manages or quotes with NO TPS reports by Korin43 · · Score: 1

      * Check email when you're bored or on a schedule
      * If you find that IM is distracting you, either don't sign in or leave notifications off. Log in whenever someone notifies you by email that they need to talk in real-time.

      This way you still have interruptions (like meetings would cause), but they're much smaller.

    21. Re:No micro manages or quotes with NO TPS reports by Korin43 · · Score: 3, Insightful

      If your boss can't leave you alone and let you work, then you have more serious problems than too many meetings.

    22. Re:No micro manages or quotes with NO TPS reports by Korin43 · · Score: 1

      I have the same experience with meetings -- people meet, talk about something important, then it never gets documented. This is a separate problem though -- you need to consciously try to document things.

      I've found that what works for me is to write READMEs or other documentation as requested, but save it in a standard place, then attach it to the email. The person who asked the question gets the answer they wanted, and the next person can find it again if I get hit by a bus.

    23. Re:No micro manages or quotes with NO TPS reports by xtrafe · · Score: 1

      That sounds like a pretty big project. Let's break it down into action teams, and have each one run with a scrum, and do the scrum of scrums at lunch.

      I'll see you at the sprint planning...

  5. Depends on your goals by Green+Salad · · Score: 5, Insightful

    I've seen many different developer cultures. Keep in mind people are not clones. What works for one set of people may not work for another. In an attempt to be trendy and hip, some groups seriously backfired. Ultimately, get to know your team and adopt whatever works for keeping your team productive, happy and constantly improving. This will vary from team to team. There is no substitute for getting to know your team and practicing decent project management.

    1. Re:Depends on your goals by PCM2 · · Score: 2

      I worked for a company that liked to pride itself on its "culture." They had a pool table in the office that you could play any time you felt like, free sodas, etc., etc. And in particular, it would throw elaborate parties every few months that were really thinly-disguised recruitment efforts. At one party, they rented a room full of vintage videogame cabinets and turned the office into an 80s arcade. At another, they had a car theme where they rented a large-scale remote control car track that people could take turns racing. Employees were encouraged to bring any of their talented friends to the parties to enjoy the fun and games and have all the free beer, wine, and booze they could swallow.

      Behind the scenes, the company was totally dysfunctional. Client services reps would agree to anything the client wanted, whenever they called, leading to constantly-shifting goals and endless scope creep. Working nights and weekends was the norm -- for developers, mind you, not the client services people. The VP of development actually tried a thing where he would start weekly meetings with a few minutes where developers could vent about what they hated about the company, just to get it off their chests. It was no secret that the founder of the company considered his graphic designers, hand-picked from CalArts, to be creative geniuses, but he felt programmers were a dime a dozen and were 100 percent replaceable. (The founder told the previous VP of development as much, in so many words, so he quit on the spot. The founder never understood this.) When the developers finally complained to senior management about how impossible the working conditions had become, the sales and client services department called a mandatory, company-wide meeting where they gave a PowerPoint presentation explaining why we were all wrong.

      But hey, at least the company had a great, fun "culture."

      --
      Breakfast served all day!
    2. Re:Depends on your goals by oakbox · · Score: 2

      +1
      Culture DOES vary from company to company, department to department. A culture is defined by a bunch of things: what behaviors are rewarded, relationship between employees and managers, relationship between employees, where is the focus (outside innovation and productivity or inside atmosphere and procedures?). There is no single 'correct' culture for developers, it really comes down to what kind of culture the developer wants to work in. Some developers want innovation and creativity to be the focus, some want to have structure and order. Some developers enjoy work because they like their coworkers, some are competitive and are in it for the recognition and rewards.

      I work for a psychological test development company and we have done a lot of research on this very topic. Success is based on the "fit" between the person and the position. There is no one-size-fits-all position, just as there is no one type of developer.

      - Richard

      --
      Not just answers, the correct questions.
  6. I Can Tell You What NOT To Do... by ilikenwf · · Score: 5, Interesting

    I now work in a very great job at a university, but prior to, I worked as a social media developer at __unnamed company__. While my background was in programming using C++ and derivatives, I also knew php and Javascript so it wasn't a stretch to start working there, building Facebook apps and such.

    They got me on board for a somewhat decent (out of college) hourly rate and gave me 250,000 shares of stock to sweeten the deal. Working remotely, I'd do 2-3 weeks onsite at the home office, and 2-3 weeks off, during the off times going back home - I got more done when I was at home, truth be told. I'd have to be up all hours of the day, sometimes getting 3-4 hours of sleep in between being called to fix some mistake someone made.

    I ended up having to wait 2-4 weeks for my paychecks sometimes, all the while the boss was wining and dining people, and flying all over the place. I let it slide, and eventually got a bonus system added to my pay for completed work.

    The 4th time I was to be paid a bonus (for taking over the role as sysadmin on top of everything else, as the previous guy left), I got paid but then they put a new guy over me, who got salaried making 3-4 times what I was, who used a completely different language than any of the other developers in the company. Three weeks later my boss breached my contract. I'm contemplating litigation.

    From my experience there, you should most definitely always pay your employees first, and treat them with respect. Furthermore, going geeky and loose on schedules and such is fine, but you should require 40 hours a week from everyone, regardless of when or where they get the work done. Incentives are nice, but don't make them too good. Further, treat everyone equally in terms of praise and respect...Finally, make sure not to allow drama in the office, it only destroys companies from the inside out.

    As an added bonus, you should make sure and not allow drinking and drug use in the work place. My former employer did, and there were a lot of useless sponges that just sat around drunk/high all the time.

    1. Re:I Can Tell You What NOT To Do... by mwvdlee · · Score: 3, Insightful

      Seems like a given for ANY healthy business culture; pay your employees on time. No matter how cool or fun of geeky a culture is, they are your employees because they need (not just "want") to have money. Your primary obligation as an employer is to pay your employees.

      Other than that a business culture, especially on a small team, is driven by the individuals. Just make sure people stay respectful of eachother and work as they should and everything else will flow from that.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:I Can Tell You What NOT To Do... by Anonymous Coward · · Score: 0

      I ended up having to wait 2-4 weeks for my paychecks sometimes,

      First time that happens, you leave. Nothing good ever comes out of employers like that, and you WILL end up being ripped off.

        If they don't have the business skill to manage their cash flow, they don't have the business skill to market a successful product.

    3. Re:I Can Tell You What NOT To Do... by ilikenwf · · Score: 1

      Indeed. Further, it seemed like any time we asked to be paid so we could keep our own freaking lights, internet, power, etc going at home the boss would act like we were hurting the company by doing so. He wanted us to work for free and like it instead of do good work and get paid for it - I was one of the few who cared, and we all ended up leaving, getting the axe, or otherwise getting screwed.

    4. Re:I Can Tell You What NOT To Do... by 19thNervousBreakdown · · Score: 5, Insightful

      Uh, what? I've worked at a number of jobs, and in 16 years have never once been paid late. That's like, big red letters "GET THE FUCK OUT" warning sign right there. Your employees will immediately start looking for other work.

      Pay your building lease late. Pay your electric bill late. You won't get kicked out, and the lights won't get shut off, for not having the money for two weeks. Chances are, your employees will never know, and if they do, they'll accept pretty much any BS excuse you can throw out there, including, "heh, I forgot to pay the electric bill."

      But they'll never, ever, ever, ever forget, or forgive, when somebody doesn't pay them. If you're any different, you should be aware that you've got a pretty bad case of battered-housewife syndrome.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    5. Re:I Can Tell You What NOT To Do... by geekoid · · Score: 0

      " I'm contemplating litigation. "
      do it and be loud. Hell, if you can run into him while he is wining and dining a potential customer, or bank loan, so much the better.

      Drinking can be fine, but people who are:
      " useless sponges that just sat around drunk/high all the time"
      will be useless sponges anyways. That's a management problem.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:I Can Tell You What NOT To Do... by Anonymous Coward · · Score: 0

      > If they don't have the business skill to manage their cash flow, they don't have the business skill to market a successful product.

      No. The companies I've worked for that made the best products did a poor job at accounting. They were product people rather than accountants. The product was the #1 concern. On the other hand with the companies I worked for that were run by MBAs, the money spent was the #1 concern. Of course I got paid on time, but I never got to work on anything interesting or innovative. For example, Microsoft always paid my invoice within 90 days(I was NET 30 so technically they never paid a single invoice on time, but at least they were consistent), but the work was mind-numbing. Companies that move fast that are run by visionaries will have hick-ups along the way.

  7. Stay away from agile by Anonymous Coward · · Score: 5, Interesting

    I've worked for three companies that did it, and we wasted more time with process than we spent getting actual work done. Instead, study the waterfall method and learn the good parts and bad parts from it. Then implement waterfall in a iterative process. Some people call that the spiral method. You'll have good disciplined iterations rather than intentional half-ass sprints like you have with agile.

    1. Re:Stay away from agile by HeckRuler · · Score: 3, Interesting

      In general it's a bad sign if your boss/peers lecture/bitch more about what process to use than how to do whatever it is you're there to do.

    2. Re:Stay away from agile by Anonymous Coward · · Score: 5, Insightful

      I've worked for three companies that did it, and we wasted more time with process than we spent getting actual work done. Instead, study the waterfall method and learn the good parts and bad parts from it. Then implement waterfall in a iterative process. Some people call that the spiral method. You'll have good disciplined iterations rather than intentional half-ass sprints like you have with agile.

      Here's another perspective from a 50 year old programmer who has worked with a number of teams and has code on millions of PCs. Stay away from all labelled "methods" of software development. When project managers and programmers start spending their time thinking about and talking about Scrum and Agile and Waterfall and Cowboy and so on and so forth, they are moving farther and farther away from developing software in the most efficient way for the team that's doing it. Don't be afraid to make incremental changes to how the group is already working to improve things, but don't make the mistake of one day announcing "Okay! Let's all start using {insert labelled fad here} and get really productive!"

    3. Re:Stay away from agile by gl4ss · · Score: 4, Insightful

      you did agile wrong.

      taking an agile bible, going to an agile development course and then following the bible like a slave is the opposite of what actual agile development was supposed to be(the thing that was broken into parts and put into thick books and courses to sell to bosses to fleece them out of money).

      you can spend all the time on the process no matter what process you choose. it's just that there's shitloads of people fleecing money from people who have money and agile happens to be their buzzword for last year, then they sell them friggin software to take care of the agile process. what has happened in many companies is that they've just plastered "agile" on top of "waterfall" and relabeled the sw they used for waterfall, relabeled deadlines as sprints etc(while retaining that specs change in a waterfall fashion, too. that's pretty fucked up, supposed to be working in agile methods but guys who make design decisions about what the sw should do give input through 3 line emails every 4 weeks - so what these companies are(some were, with now shutdown offices) doing is just agiling one _step_ of a fucked up pisswaterfall, that is not agile at all it's just making everybodys life a weekly micro managed waste of time).

      sounds like your iterative spiral waterfall is more what actual agile should be than what you had implemented, in other words, just figuring out what needs to be done and then doing it.

      it doesn't have anything to do with this ask slashdot subject though, except that you can't buy atmosphere from a brochure(or from a slashdot thread), it's up to the guys in the office to be cool or not... I'd advice to stop looking for how to be cool guides from the internet. bring a ping pong table, nes, fussball, beer.. *whatever* to the office - and try to get aware what your employees would consider to be living the dream, for example I had fun times going to some developer conferences and getting wasted, but since I had to drop booze - and because I've already seen what 3gsm was like - I'd consider some different perks as nice.

      oh and pay your developers on time, be HONEST about the state of your company - if times are bad just tell them that, when it's going well tell them that. don't save money on things that make no sense to save money on, that is buy them the tools they need, don't give them joke computers to work on because "php editor works just fine on that". encourage them to stay up to date on industry buzz, so that they can call bullshit when they see it.

      --
      world was created 5 seconds before this post as it is.
    4. Re:Stay away from agile by Anonymous Coward · · Score: 0

      If you know more that 50% of what you are talking about then you are not doing true Agile.

    5. Re:Stay away from agile by pspahn · · Score: 1

      I understand this argument, and I'm honestly not trolling, but what about the times when bitching is warranted and demands resolution?

      If there is a developer complaint that design is dictating functionality that is out of scope, sales that is not accounting for that in the contract, and a developer that ends up need an extra week to implement the design, then yes, process needs to change or it's mostly downhill from here.

      That said, sure, you can begin looking for work elsewhere, or you can stand up and bitch about the process in the hopes that it changes and your efforts/wisdom/etc are acknowledged. I guess there is a third option, you can sit and do nothing and be happy you have a job.

      If one opts to stand up and bitch, how do you do it?

      --
      Someone flopped a steamer in the gene pool.
    6. Re:Stay away from agile by geekoid · · Score: 0

      "sounds like your iterative spiral waterfall is more what actual agile should be than what you had implemented,"

      maybe you should read up on it , cause that's not agile or even close?

      Ah ./, where the best way to be produce is to bring in lots of ways to goof off.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    7. Re:Stay away from agile by Anonymous Coward · · Score: 0

      #disbelieve

      With agile I spend a massive 10-15 minutes at standup for 9 out of 10 days; the rest of that time I spend working and getting cards done.

      I'm not sure what heavy process you put on top of agile and labelled it "agile", but it certainly wasn't!

    8. Re:Stay away from agile by Eil · · Score: 3, Interesting

      Counter-anecdote:

      The company I work for is very successful and has a great geek culture. We use agile methods and it has been working very well for us. We design and develop new features (and fix bugs) quickly, and we always ship on time. We're hiring like mad and can't get enough good developers in the door. I'm not going to name the company, but we hit the front page of Slashdot once in awhile.

      The key is to pick the parts of both traditional development management and agile that make sense for the team and the product. For instance, some teams scrum every day, but my team only scrums twice a week. You can't buy an Agile for Dummies book, force the whole thing upon your developer teams, and then expect your productivity to skyrocket. Even when you think you have a good recipe, it should be constantly evaluated and tweaked or reworked when necessary. The whole point of Agile is to be flexible enough in your methodology that you can scrap or replace what doesn't work.

      My advice to the submitter: Feed and water your hackers. As in, provide an unlimited supply of snacks and beverages. Bring meals in occasionally. Don't say no when they ask to put a MAME cabinet in the break room. Encourage them to socialize on company time. Let them work on side-projects which benefit their workflow. Avoid hiring managers from outside the company when possible and prefer to groom the smartest individuals for management positions if they're interested. Above all, give your lower-level managers and developers clear and realistic goals and an abudance of freedom to decide how to best meet them.

    9. Re:Stay away from agile by gl4ss · · Score: 1

      well what is agile? wikipedia defines it nowadays as "a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams".

      the page even has a fucking spiralish picture on it, but that's not the point. the point is the roots, which is to just get it done - if there's a problem in the specs skip waiting for your departments deadline, skip waiting on everything - go directly to the guy who wrote the spec and ask wtf - but exactly this is the thing most big corporations take away from agile development when they implement it and thus they end up just relabeled waterfalls and 10x budget overruns - they take away the lightweight, the agile, portion of it and end up with a waterfall where there is no documents, just separate tickets which may or may not make any sense. to sugar the cake all responsibility is now then moved behind the process, which again goes against true agile method since nobody has a fucking clue about who can make decisions in agile fashion(so the team becomes unable to adapt to changes in specs, unable to make changes in specs that sprout out from reality).

      and the why the roots for agile is the point for agile.. well, during last few years anyone who's tried to hock a book or sell lectures on development has put their methods under agile - no matter if they are or not. I guess that's a good way to sell tickets.

      well, the whole page is a really long wounded explanation of "figuring out what needs to be done and then doing it" over and over again, of course there's a million ways to that end and it always depends on what you're trying to achieve and what your team is like - that's why it's agile. however, like I said, there's large corporations which have in recent years on paper turned agile despite doing everything like they used to, by only switching terminology.

      you know who do "EXTREME PROGRAMMING!!!!!" naturally? kids. they go over to some other kids house to code, both looking on the monitor and taking turns typing, while other sketches some shit on paper. then a fucking decade later some schlomos come around and decide it's the hottest shit ever(for a year, then decade later later it's the hot shit for another year - only reason we did it was that we were short on computers when we were kids). that's actually a good way to get some stuff done but not really the way you want to spend your entire week as an adult.

      you think going to daily meetings with guys who have nothing to do with your code(or the spec) and having a weekly cycle is heart of agile? then you've been gamed by the process sellers.

      --
      world was created 5 seconds before this post as it is.
    10. Re:Stay away from agile by HeckRuler · · Score: 1

      You bitch to the boss. Note that I was talking about when YOUR boss or PEERS bitch. When an underling is bitching about the process, you should listen. Dealing with overambitious design guys is his job, even when it makes more work for you.

      And refining the process is indeed something that everyone works on. And there IS a level of bitching from all directions. But once there is more bitching than working... well that's a pretty bad sign.

    11. Re:Stay away from agile by Anonymous Coward · · Score: 1

      You realize that the person who came up with Waterfall did so as a way to show how NOT to make software, right?

    12. Re:Stay away from agile by Anonymous Coward · · Score: 0

      Amen. Why don't you write an anti-book about all the methods you've been forced to adopt? You probably have tons of horror stories and it would be a hoot to read.

    13. Re:Stay away from agile by S77IM · · Score: 2

      implement waterfall in a iterative process

      That is agile. That's exactly all it is.

      I don't dispute the value of your experiences, but maybe learn what you are talking about before offering advice to others.

        -- 77IM

       

      --
      Student: Is it true that the foundation of the universe is paradox?
      Master: Well, yes and no.
    14. Re:Stay away from agile by Anonymous Coward · · Score: 0

      Combine the best of waterfall and agile: Use avalanche

      http://en.wikipedia.org/wiki/Avalanche_model

    15. Re:Stay away from agile by Anonymous Coward · · Score: 0

      Me thinks you just described Google (the unlimited supply of snacks and beverages gave it away) :).

    16. Re:Stay away from agile by Hognoxious · · Score: 1

      Ah ./, where the best way to be produce

      Well you'd know all about that - you write like a vegetable.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  8. Joel by perry64 · · Score: 2, Informative

    Read everything you can by Joel Spoelsky.

    http://www.joelonsoftware.com/

    1. Re:Joel by Anonymous Coward · · Score: 0

      Fuck that MS loving shit-ass.

    2. Re:Joel by HeckRuler · · Score: 1

      Yeah, he's kind of an MS-whore, but he's got nice bite-sized pieces of good information. Generally he's over-rated, but he's not a bad read.

    3. Re:Joel by Anonymous Coward · · Score: 0

      TIP never hero worship anyone, especially someone imparting business advice. Because every circumstance is different, so you don't want to say "this is what The Author said should be done".

    4. Re:Joel by Anonymous Coward · · Score: 0

      gaaahhh. No. DO not do that, it will ruin any productive coding.

      Joel is like the Kardashian of the software industry.

    5. Re:Joel by Anonymous Coward · · Score: 1

      At the very least ensure your company is passing the Joel Test:

      http://www.joelonsoftware.com/articles/fog0000000043.html

  9. Google by Anonymous Coward · · Score: 1

    Use the Google/academia method that includes giving them 20% of their work time to purse their own projects

  10. Beware the Agile/Scrum Zealots by Anonymous Coward · · Score: 5, Informative

    and adapt the methods to suit your envinorment.
    Don't stick to the letter of their methods, stick to the principles.

    Don't be afraid to admit that you are wrong and change track.

    Be honest and cut the bullshit.

    Have fun and take the team out for some beer (or whatever).

  11. kegs by Anonymous Coward · · Score: 1

    put a couple kegs in the office... don't go crazy with them, but it's nice to know that you can be trusted with grabbing a beer when you want one

  12. Easy by Anonymous Coward · · Score: 0

    A Geek office, google's style company, not much bureaucracy. You could take a friday afternoon every two weeks (by the end of the sprint) to play some games (billiards, poker, ps3, basketball, whatever the team like) and have a happy hour. Also give $$ bonus by the end of the year, or something like that and dont be evil.

  13. A good team is tops; materialism is irrelevant. by MrCrassic · · Score: 3, Insightful

    Having a "geeky" office with tons of amenities will not do much for attrition if the team is beleaguered with the usual office politics or uncontrolled management pressure that affects many IT and development houses. Based on what I've seen with my few years of working experience, I strongly believe that the most important element in a successful developer-oriented culture is encouraging continuing education and the proliferation of ideas. From what I've seen, this requires having a management team that is *really* good at separating the wheat from the chaff when client or business demands come in and having a team that has very good chemistry with each other. This is really hard to assemble, since it's already somewhat hard to find people that fit what companies want from a technical perspective and harder still to find people that will gel well with everyone else, especially when the pressure cooker starts getting hot and work flows in.

    Fair remuneration is pretty damn important too, but a bad office culture will only attract people who are looking to gain in the short term. There is a hedge fund that is notorious for this here in the East Coast; they pay their IT staff *wayyy* over market but have office politics that would put the US government to shame and an extremely socially stifling office culture that makes it tough to stay there longer than six months.

    Good luck!

    1. Re:A good team is tops; materialism is irrelevant. by avandesande · · Score: 1

      You can retain a good experienced older workforce this way- generally boring surroundings, 40 hr workweeks, infrequent or no 'emergencies', protection from management and showing poor or troublesome employees the door.

      --
      love is just extroverted narcissism
  14. It might be different for different people, but... by Xiver · · Score: 5, Insightful

    For me its flexibility in the hours I work, access to training, and being able to write the kind of code that I think should be written for a project.

    By flexibility to don't mean full time or part time, I mean that I can come and go as a please as long as I meet my project requirements and make my time.

    Training includes classes, conferences, research projects, and access to research materials such as books and hardware.

    I've worked for a couple of companies where I was just a code monkey who was only allowed to fill in the blanks that my betters left undone. That kind of job is a nightmare of poor design and implementation.

    --
    10: PRINT "Everything old is new again."
    20: GOTO 10
  15. ideas and what your boss knows by fluffythedestroyer · · Score: 3

    Don't be afraid to tell your boss about it. It might save your ass or make you work longer. It also helps a lot to know what your boss knows in terms of contracts, clients. Trying to know about your company really helps as you know if it performs or not. That way you know if you have to look elsewhere or not.

    1. Re:ideas and what your boss knows by fluffythedestroyer · · Score: 3

      Forgot to tell but this is kind of a hard one to do but seriously helps the company and you. Try to know what your bosses clients wants and needs that way you as an employee can start gaining the neccessary knowledge you need. Lets face it, you could get the kind of boss that if you don't have the required knowledge you can get fired and he can hire someone else right away or can start licencing work elsewhere and in the end, that's less work for you or it can be very risky for employees.

      Just for example, if your boss clients wants to work with java but you don't know it and lets say (not saying thats the situation right now) the market is beginning to demand it then you might start working on java.

  16. Tips by parallel_prankster · · Score: 4, Insightful

    Some lessons that I have learnt from being a developer the last few years: I hope some of them help. Some of them are tech and some are about work culture in general. 1) Developers make mistakes. Don't have a culture of trying to blame things on someone. If you do see problems you can bring it up with the team in general and try to figure out the how to prevent such issues in the future. 2) Try to have lots and lots of documentation. In fact make that as part of your code check in strategy or bring that up during code reviews. 3) Remote working facilities are a must. Most people I have worked with are starting families and need flexibility in work times. Having flexible start and end times and ways to take meetings from home are super helpful. 4) Lastly respect your developers. A good word thrown in occasionally does not hurt. The people I see around me have all put in a lot of effort beyond the usual to get a product out successfully, however, the congratulatory emails always go to the managers with a word for the developers thrown in. A good product really needs a smart and experienced developer. If you keep a culture where your developers hang around because they like to work there, code maintenance becomes much easier.

    1. Re:Tips by dkleinsc · · Score: 5, Insightful

      Some tips I'd add, as somebody on both sides of this problem:
      5) Money counts. If you pay for quality as well as demanding quality, you'll get it. If you give people profit sharing, they'll try to create more profit.
      6) Give your techies the same opportunities for bonuses, advancement, and prestige as other kinds of employees. If your company lavishes money and praise on its sales team and ignores the techies who've labored night and day to build the product that sales team sells, they'll grow resentful at best.
      7) Give your techies opportunities to advance themselves in their profession. Send them to conferences, give them time to put into professional organizations relevant to their role, etc.
      8) Make absolutely certain you keep on-call duties reasonable. If you have off-shore tech teams, take advantage of the time difference so that somebody can handle emergencies at all times without being up at 3 AM (e.g. have admins in the US responsible for 7 AM to 7 PM EST, and admins in India responsible for the other 12 hours which is roughly daytime there). At the very least, you should rotate front-line on-call duties among as large a group of people as you possibly can - 2 weeks of on-call is annoying but manageable, 1 week out of 3 or 24/7 is seriously painful.
      9) Build cross-functional teams. Your techies should not be isolated in a corner, they should be interacting regularly with their users (for internal tools) or their sales and customer service teams (for products sold to the outside) so that they gain some direct knowledge of the effects of their work, and so the other teams don't think of the techies as a bunch of gnomes in a cave that come out with more bugs periodically.
      10) When you ask extraordinary effort from your team, be there with them. For instance, if you expect your team to be in at 3 AM for a product launch, get there at 2:30 with coffee and whatever snacks they like. Even if you aren't actually adding much value, it definitely improves morale.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
  17. Smart People by excelblue · · Score: 4, Insightful

    If your team only consists of the smartest people in the world who have the ability to work with others, then your team will respect each other. This reduces the unhealthy type of politics and allows everyone to just work together to create the best product ever.

    Allow these people to utilize their intelligence, have ownership in the product, and be able to find meaning in their work. Everything else is just perks.

  18. my thoughts by Anonymous Coward · · Score: 2

    * Place you can learn. It helps to have smart coworkers you can learn from. If you fit in, they'll learn from you, too.

    * No dumb arguments. In some ways this is unavoidable among developers, but I hope to never have another argument about whether the variable should be named 'i' or 'index.'

    * Realization that some ideas and designs can be different, but still be just as good as your own.

    * Respect. If someone writes code that works, is readable, and is flexible, they deserve respect. Good coworkers have respect for each other.

    * Flexibility. Let people finish their tasks on their own time, even if that means they like working from 2AM-10AM. If they like to do good work, don't harass them with unnecessary details.

    1. Re:my thoughts by Anonymous Coward · · Score: 0

      * Flexibility. Let people finish their tasks on their own time, even if that means they like working from 2AM-10AM. If they like to do good work, don't harass them with unnecessary details.

      This has caused more trouble on the projects on which I've worked than any other issue.

      If you are working by yourself, and your work doesn't impact anyone else's work, this may be fine. But every time I've had to deal with a coworker who liked to work in the middle of the night, he ended up causing the entire rest of the team to waste hours and even days because he screwed something up at 3AM, and couldn't be reached to fix it while the "normals" on the team were trying to work during normal business hours.

      The "night owls" also tend not to make themselves available for mentoring (and it always seems to be the lone-wolf, senior guys who do this), which is a problem for the whole team. Of course, that's probably part of the reason they do what they do: They can't be bothered with all of the parts of developing software other than the coding. It may make their life more pleasant, but it hurts the team.

    2. Re:my thoughts by Anonymous Coward · · Score: 0

      > * No dumb arguments. In some ways this is unavoidable among developers, but I hope to never have another argument about whether the variable should be named 'i' or 'index.'

      The argument is not dumb, because it is very important to name variables well.

      The answer is quite simple in this case. Use i in for loops (for( int i = 0... ), in any other case, the index is better than i (because it is searchable and easier to pronounce (but there might be a better name, which is hard to tell with this little information). I recommend reading "Clean code" book and referring to it in case of such arguments.

  19. Lack of "methodology" by Anonymous Coward · · Score: 2, Interesting

    You know, the kind of "methodologies" that managers use to feel important and sophisticated.

    http://programming-motherfucker.com/

  20. Intellectual honesty by rastoboy29 · · Score: 5, Insightful

    I think the single most important attribute for any technical person, and thus for the culture, is intellectual honesty.  This includes things such as:

    Admitting candidly when you do not know something

    Actually listening to other people's ideas and opinions

    Giving credit freely

    And a friendly, rage-free culture doesn't hurt, either.

    1. Re:Intellectual honesty by Anonymous Coward · · Score: 1

      Yes, I wholly agree! Add to that, being genuinely thankful when a team member finds or fixed your bug... even if it's a hardware engineer or sales guy. A lot of trust, respect for everyone's skills, and transparency goes a long way.

    2. Re:Intellectual honesty by period3 · · Score: 5, Funny

      Agree with most of this - but I would also add variable width fonts to the list.

    3. Re:Intellectual honesty by blue_teeth · · Score: 1

      When money & timelines are involved, intellectual honesty wanes.

      Or to put it more clearly, there is an inverse relationship with money+timelines and intellectual honesty.

    4. Re:Intellectual honesty by Anonymous Coward · · Score: 0

      right on the money ... I would only make explicit something that i think is intrinsic to intelectual honesty - eliminate EGO from the equation
      - no team member is better than another - everyone has something of value to offer - if they don't then they don't belong there.

    5. Re:Intellectual honesty by Anonymous Coward · · Score: 0

      Alternatively, keep the fixed width fonts and bring back the rage.

      It's all good.

    6. Re:Intellectual honesty by Monkey-Man2000 · · Score: 1

      Agree with most of this - but I would also add variable width fonts to the list.

      No, the GP is implicitly saying that programmers in the PROPER developer culture use monospaced fonts to keep the indentation levels consistent.

      --
      This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
    7. Re:Intellectual honesty by Anonymous Coward · · Score: 0

      That and never use tabs for indentation. Spaces FTW

  21. Play Games by second_coming · · Score: 1

    Play multiplayer games at work in scheduled sessions, great for team bonding and de-stressing.

    1. Re:Play Games by HeckRuler · · Score: 2

      Remember citizen, fun in mandatory!

  22. a few tips by Anonymous Coward · · Score: 1, Funny

    make sure bug reports have a "who's fault is this" section so you know who to blame. make sure everyone has to fill out a time sheet with their daily activities down to a 15 minute intervals. start every day with a meeting that's a half hour to an hour long so that everyone start work with maximum productivity in mind. make sure everyones personal phone is in a public list so you can call them up at any time and ask questions. oh yeah and a mandatory softball game every other friday after work, people love that, builds unity.

  23. Add New Ideas Gradually by glassware · · Score: 1

    Read books on new development methodologies. Doesn't matter how weird they are - I really liked the "Extreme Programming" book even though I didn't use much of it - but use them for ideas.

    Read books on management ideas. Again, it doesn't matter how weird they are; just use them to get the ideas flowing.

    Pick the one most promising idea that seems like it solves a problem your team is having. Maybe morale is low, so you kick off one afternoon to have an offsite meeting to gripe about the architecture at a frozen yogurt place, take notes, and use that to begin work on a new architecture.

    Keep the ideas in place that work. We added a morning SCRUM to our general process, and it got rid of a lot of aimless development meetings.

    Drop the ideas that don't work. We tried to have an all-hands 30 minute code review once per week, and it never worked. The presenter would show off something and people would either be too quiet or constantly asking distracting questions, and the code review never generated useful information. We switched to two-person code reviews - e.g. pair programming - and that worked.

    Keep making changes, but don't overload the team.

    1. Re:Add New Ideas Gradually by Anonymous Coward · · Score: 0

      > We tried to have an all-hands 30 minute code review once per week, and it never worked.

      What was the goal in that? If it was to find bugs, study has shown that single person doing the review gives best performance and finds pretty much all the faults (assuming the reviewers are equally skilled)

      If the goal was to learn, then you should pick a person who prepares a code, e.g. writes a code that looks horrible and then together you try to make it look better. Use books like Clean Code to give you ideas on what to improve and be sure that you know all the issues there are in the code and how they can be fixed, so you can give hints if people become quiet.

  24. Good people = good environment by Anonymous Coward · · Score: 4, Interesting

    As a consultant I've working in dozens of offices around the world and seen it all. The top factor is people. The best offices were those staffed with people who have the ability + desire + motivation to complete the work. Even just a few sub-par or bad attitude people in any role (managers, customers, testers, analysts) spoil it for everyone else. Have people write code during interviews, hire people on 1-6 month trial contracts before hiring permanently.

    Next is managers who frequently inspect the work being done. If a manager isn't technically capable or doesn't regularly inspect work products in detail, then he/she isn't really managing, they are just hoping. Status meetings are not good enough if all that happens is the "manager" asking people to evaluate their own work/progress. Also daily meetings are a pain in the ass, what works better is accelerating in frequency of meetings as a release gets closer: at the start of a 6-month project once a 1-2x/week meetings are good enough, the week of a major release twice daily meetings may be required.

    Methodology? General rule: more risks/unknowns need more iterations. Waterfall is most efficient for an experienced team developing their 20th LOB app in an enterprise of known customers. New team + new tech + new customers? 1-month sprints to incrementally deliver progress is a better choice despite the inefficiency.

    Environment wise, triple monitors are the way to go. Most people acknowledge that two monitors are better than one, but three really is the sweet spot. Three gives you one central focus with two periphery that just works better.

  25. It depends... by CSHARP123 · · Score: 0

    For me, everything is developed in-house, does not care if project is delayed, manger encourages rewrite of the entire project when a newer version of the tool is released and lastly but not least they pay developers boat load of money and do not have to work more than 8 hours and don't have to support if it fails in the production.

  26. Transparency, Flexibility, Openness, Speed by TheSpoom · · Score: 5, Insightful

    Transparency: Don't hide business motivations or other important business information from your employees. They may have valuable input to share.

    Flexibility: If you're primarily a software company, being flexible with your employees costs you little. Allowing them to work at home occasionally helps, and if you're flexible with them, they're likely to be more flexible with you when you need additional hours to get something out.

    Openness: Hire good, intelligent generalists, and let them come up with the best solutions. Don't micromanage; hire people you won't need to micromanage. Further, let your team, especially the developers, use whatever solutions they think are best. Operating system, editor, hardware, whatever. Obviously for your actual product you'll need consensus, but anything specific to one developer should be up to them as much as reasonably possible.

    Speed: Resist just about everything that increases the time it will take for you to come up with a working solution. As a startup, speed is your biggest asset compared to bigger software companies. Keep it as long as you can. (This doesn't mean that you should avoid planning at the beginning of a project, just that you should keep your business systems free of red tape as much as you can.)

    I hear recruiters talk about companies with "awesome cultures" and how they have "Xboxes in the office" and all sorts of "perk" things like that. Those are great, but it's not the reason I'll want to work somewhere, because in the long run they mean very little.

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  27. Agile is just the latest buzz word ... by perpenso · · Score: 4, Insightful

    I think a more general statement would be to be flexible not dogmatic. To realize the agile is just the buzz word of the day. Like all the processes/methods that preceded it, it has both good and bad ideas. That the best practices touted by all of these processes/methods are sometimes pretty specific to the environment/tasks/workflow that the authors worked in. That the best practices suggested are probably not universally applicable.

    Experiment, keeps what works, discard what doesn't.

    1. Re:Agile is just the latest buzz word ... by Anonymous Coward · · Score: 0

      The more I gain experience, the more I realize that one size does not fit all. Be flexible and be very mindful of what your goals are. Come up with a solution that meets those goals, even if it doesn't match something you've done before.

    2. Re:Agile is just the latest buzz word ... by Darinbob · · Score: 1

      What all methodologies try to do is break down something very complex into manageable parts. Ultimately I think the vast majority of teams use an ad-hoc method, even though so many agile adherents seem to assume that everyone not using agile is using waterfall). Ie, what these methodologies do is break the project up into tasks, assign tasks to people, check up now and then to see how it's getting on. The important things are to get the releases out on time and to get the documentation done. How this is actually done is not that important really (but given the size of the agile training and consulting industry I think they've got a lot of self interest in promoting the idea of "how" being the most important thing).

  28. Re:MacBooks by Anonymous Coward · · Score: 0

    Macbook is the best UNIX laptop on the market. You got a problem with that? Run along back to your litle c# shit, kid, and don't comment further on the professionals.

  29. Nerf by ThogScully · · Score: 4, Funny

    readily available supply of Nerf weapons

    --
    I've nothing to say here...
    1. Re:Nerf by Bespoke · · Score: 1

      And a plentiful supply of Cheetos and Red Bull for refreshment after the epic battles?

  30. For me its.. by Anonymous Coward · · Score: 0

    An atmosphere where asking questions is not just tolerated but encouraged. One where people share information (no private knowledge bases, yeah you know the type)

    But most importantly one that has at least one female developer, the guys hygiene tends to improve if there is.

  31. asking about improving morale ? by Anonymous Coward · · Score: 0

    this sounds like what you're asking about rather than some by the book factory process to write code. if so, then just let people work at the times that's most productive to them -- forcing someone to work from time x to y when they can't concentrate properly gives you nothing. **focus on results**and not on the clock. the same goes for "process" -- people have been looking for that "magical process" that will make humans crank out code like factory robots -- get over it already ... no such thing, stop looking. finally, there is no substitute for a good architect -- you can find tons of kids to code, but finding a good architect to cover all the angles is a lot harder. some architects double as project mgr as the devs are really building their design ... no different than a building architect overseeing the construction workers.

  32. More old people by ljw1004 · · Score: 4, Insightful

    More old people. If the oldest in your team is just 30, then there's surely a huge amout of experience and expertise and wisdom that you're simply missing.

    1. Re:More old people by Anonymous Coward · · Score: 0

      ... And when _you_'re 60 and nobody wants to hire you because you don't know X# and the current fad in development processes?

  33. When trying agile, use retrospectives by Iwanowitch · · Score: 3, Informative

    I think it's important to have structured feedback moments, and one of the most important and central tools I found to agile development (but it probably applies to all development) is using retrospectives (retros). In the company I work at, we do them after each code sprint, every two weeks.

    In a good retro, you find about what is hurting your ability to work and define actions against those blocks. An easy to run retro which usually yields some useful results is the Mad/Sad/Glad retro:

    Create a big area with three columns: what makes you mad, what makes you sad, what makes you glad. This can be on a big sheet of paper, a whiteboard, virtually (like Google Docs), ... Every team member creates as many small notes as they want and put them on the right column. This is more useful if everyone has to think for themselves and is not influenced by others (eg: create post-its on yourself, then hang them in the right column), and/or if it's done anonymously (eg via some software tool). When everyone posted his/her things, every team member casts votes on what they want to discuss. You discuss the most voted-on items, and try to formulate one action for each to improve on it. You typically want SMART actions: Specific, Measurable, Attainable, Relevant, Time-bound - aka well-defined with a clear goal.

    Retros should be time-boxed, there should be a neutral "facilitator", everyone should be able to participate, no-one should have to hold back his opinion. A few people who try to discuss for the sake of discussion can be a good thing if it's not overdone: try to use every technique to get people talking and spouting the unhappiness, acknowledge it, and fix it.

    In the last few months, we've splitted our team, installed new tools, decided to start reading groups, and brought more candy, all out of retros.

    --
    One CS student VS 893 DOS games: Let's play oldies
    1. Re:When trying agile, use retrospectives by Anonymous Coward · · Score: 0

      I think it's important to have structured feedback moments, and one of the most important and central tools I found to agile development (but it probably applies to all development) is using retrospectives (retros). In the company I work at, we do them after each code sprint, every two weeks.

      In a good retro, you find about what is hurting your ability to work and define actions against those blocks. An easy to run retro which usually yields some useful results is the Mad/Sad/Glad retro:

      Create a big area with three columns: what makes you mad, what makes you sad, what makes you glad. This can be on a big sheet of paper, a whiteboard, virtually (like Google Docs), ... Every team member creates as many small notes as they want and put them on the right column. This is more useful if everyone has to think for themselves and is not influenced by others (eg: create post-its on yourself, then hang them in the right column), and/or if it's done anonymously (eg via some software tool). When everyone posted his/her things, every team member casts votes on what they want to discuss. You discuss the most voted-on items, and try to formulate one action for each to improve on it. You typically want SMART actions: Specific, Measurable, Attainable, Relevant, Time-bound - aka well-defined with a clear goal.

      Retros should be time-boxed, there should be a neutral "facilitator", everyone should be able to participate, no-one should have to hold back his opinion. A few people who try to discuss for the sake of discussion can be a good thing if it's not overdone: try to use every technique to get people talking and spouting the unhappiness, acknowledge it, and fix it.

      In the last few months, we've splitted our team, installed new tools, decided to start reading groups, and brought more candy, all out of retros.

      Yes! This! It's extremely important, as the above post points out, to maximize flex in reviews and optimize the participation of each coder. Leverage The Cloud in centralizing document passings. Use the Wateragilefall 2.3 principles most reliantly, but with added Scrumboy when sprinting for best Bad/Rad/Fad effects. Most importantly, offshore everything. Outsourcing will make your company, yea, your entire nation, strong!

  34. Good Read by Anonymous Coward · · Score: 1

    Just finished First, "Break All the Rules: What the World's Greatest Managers Do Differently". In my opinion, there's a lot of good advice in there backed up by quite a bit of research.

  35. Nothing beats.. by nanospook · · Score: 1

    Good afternoon sex! with your babe boss..

    --
    Have you fscked your local propeller head today?
    1. Re:Nothing beats.. by ArcadeNut · · Score: 1

      Well, I am self employed...

      --
      Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
    2. Re:Nothing beats.. by Anonymous Coward · · Score: 0

      Well, that's handy.

  36. Good & Bad by Nemesisghost · · Score: 1

    I've only had 2 developer jobs(past & current). Each was entirely different with good & bad things happening. But by far my previous job was the worst kind of place to work for. Even if you forget the fact that we were forced to use outdated tech and the experience there are worthless elsewhere(beyond general software development techniques), it still was a horrible place to work. And that's something I only realized after leaving. So what made all the difference?

    1st, I work for a company that sees their employees as their #1 asset. I've seen how they make it a priority to put us 1st over profits. They treat us like adults, not children that have to be supervised or else we will run off with everything including the kitchen sink. They work with us to resolve problems & conflicts, instead of simply letting them fester until the only thing left is firing someone. The key there is that they work with us, not tell us how we will resolve them or discipline us. To date, I've only seen 2 people get fired, and it was quite obvious that they left management no choice.

    2nd, my current job is managed by IT people. My boss is an IT grad with an MBA. All of the people I directly answer to either have extensive IT experience or have comparable degrees to my own. This makes a big difference in that they can not only understand the tech, but also the complexities of what is required of us. They also are able to properly prioritize the tasks that ultimately make it to the grunts like me.

    3rd, we have Business Analysis-es. They are the buffer between the suits & users and us techs. I can't tell you how much this makes things better for all the techs. When done right, they are able to work with our users when something goes wrong, then come to us to fix actual problems. When there's an improvement or addition that's been requested they are the ones responsible for doing most of the requirement gathering and making sure that the final product works as expected.

    Finally, we strive to both keep up with current tech & best IT practices. My company recognizes that its tech is what makes it competitive, so we are always looking for ways to make our stuff better. And because of the 1st 3 reasons, what we techs say carries weight.

    If you want to see how not to do things, go look at the DailyWTF. There's plenty of examples there to see how even the best intentions can go horribly wrong.

  37. Re:MacBooks by Anonymous Coward · · Score: 0

    For about 95% of workplaces, this would guarantee all useful work would come crashing to a standstill. Definitely good for destressing, unless you're management.

  38. Hire the Best by shawnhcorey · · Score: 2

    Research has shown that the only way to produce high-quality software faster than anyone else is to hire top-notched programmers. Top programmers always outperform average ones regardless of the methodology, language, or platform they use. If you want to be the best, hire the best.

    --
    Don't stop where the ink does.
  39. less plastic by Anonymous Coward · · Score: 0

    Plant a garden.

  40. Continuing Education by kotaro24 · · Score: 2

    The most important part of developer culture I look for is an emphasis on training. I'm flexible as to culture, development methodologies, etc., but without education, my resume could get stale enough to trap me in a job I no longer want.

    The continuing education doesn't have to be expensive ('college courses'). One-day seminars, internet training, or even presentations on a topic by other developers in the company, can help keep the skillset up-to-date .

  41. Culture is a polite term for... by Anonymous Coward · · Score: 2, Interesting

    Culture is a polite term for clique. Maybe I'm just a bit cynical; but that's how I see it. You don't need to create culture. It happens organicly. You are doing the right thing when 40-something men with kids can code alongside 20-something lesbians and get the job done. What matters is that they can both write low defect code that the other person can maintain. Period.

    If you focus on culture, you'll probably just end up creating yet another brogrammer shop. Best case scenario, you'll lose a good dev becasue he doesn't fit your "culture". Worst case, you'll get sued for discrimination.

    1. Re:Culture is a polite term for... by HeckRuler · · Score: 2

      There's good culture and bad culture. Every place has it's own. Enthusiastic startups, monolithic corporates, brogrammers, 9-5 time-card punchers, TPS reporters, associates of synergizing proactive meetings to co-align the group's baseline throughput, these are all describing different types of cultures. And yes, they simply form on their own. Sometimes that'll mean every commit has derogatory statements about the sanctity of marriage. There are code-shops where the culture allows and/or encourages that sort of crap. It's the bosses job to fix that and avoid the impending lawsuit. Which is one reason why people care about culture.

      I see a lot of people here suggesting perks they'd like to see rather than ways to get people to work together. Like suggesting for videogame night, or kegs? Yeah, suggestions like that will probably make a subset of your group happy. And the minorities will be pushed aside. I don't think that's the best idea.

  42. Pay well by proslack · · Score: 1

    I like it. I use it. I have some. I keep it in a jar above my refrigerator. I'd like to put some more money in that jar. That's where the employer comes in.

    --


    Floating in the black seas of infinity without a paddle.
  43. Depends. Under 30? Here ya go. by Anonymous Coward · · Score: 0

    Competition. At that age you're all ego and energy. Use it for Good.

    Compete on the best, least buggy and fastest code - of course meeting specs to 'T'.

    ...six people developing applications for mobile devices (Android & iOS).

    A LOT of potential there: Who can get it done fastestest. Who can be the most bug free.

    Teasing is of course a necessity. Crappy iOs Code? You get the Rainbow "FAG" sticker.

    Got chicks on the team? Fine, chicks against dicks.

    Sure, your HR people will squirm (even more of an incentive!) but you'll get shit done and believe me, the chicks will kick your ass and they will cheat - if they start showing up in tight jeans and low cut T-shirts, it means you got them by the balls ... you know what I mean.

    Here's the CON: unless you're on some sort of profit sharing or in on the IPO, all of your hard work will be for not. Trust me. I've been there. I was promised many things to get me to work myself to death. And I did. And here I am, out of work on posting on Slashdot durign prime business hours.

    I had no life; no social life; I was lonely; It took me until 40 to find a woman to marry (too late to start a family);my friends were work friends - project/company over? so are my friends - we scattered across the World; and I have all the issues of all work and no play - all of them.)

    Read Felix Dennis for a how to on destroying your life for money.

    That is all. Socio-paths have created our work system.

  44. Management by Hal_Porter · · Score: 2

    You need to hire a middle aged ex IBM or Apple manager who doesn't code but is very good at playing politics.

    Oh wait, that's the way to completely fuck up a small company.

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    1. Re:Management by Anonymous Coward · · Score: 0

      You need to hire a middle aged ex IBM or Apple manager who doesn't code but is very good at playing politics.

      Oh wait, that's the way to completely fuck up a small company.

      Correct. Want to know how to completely fuck up a BIG company? Hire an ex-Microsoft manager who is very good at playing politics. (that he doesn't code goes without saying)

  45. Attitude by evil_aaronm · · Score: 4, Interesting

    Start with enthusiastic people. Then, don't kill their enthusiasm with corporate BS.
    Keep an open mind - good ideas sometimes come from really whacked out places.
    Don't make criticism personal.
    Understand that shit happens. Schedules are almost never correct in the first place, nor written in stone: people will not die if you don't ship by whenever.
    Keep things challenging and interesting. Who wants to work on a dead-end project in a dead-end company?
    Foster an "egalitarian" mindset. Sure, you'll have "alpha dogs" in any office, but people should be free to offer ideas and question others on an equal basis. An idea should stand on its merit, not on the person who's suggesting it.

  46. Avoid UML, unit testing, instant messaging, Git... by Anonymous Coward · · Score: 2, Informative

    Avoid UML, unit testing, instant messaging, pair programming, and Git. Total wastes of time!

    Fans of these fads will think this comment is a joke. But I'm serious. I've worked on a lot of projects, and every one of them was dragged down by one or more of the things I mentioned.

    Actually, unit testing is acceptable, but only in extreme moderation. The risk of going too far with it is so overwhelming, though, that I think the best recommendation is to avoid it, until you get really clear about the risk (time invested) versus reward (bugs reduced). If developers take more than 5% of their time developing tests, you've failed. If tests need to be frequently re-written to accommodate changes to various APIs, you're wasting more time.

    If the team is productive, then don't eagerly seek and adopt new policies, procedures, or technologies to try to gain some hypothetical 10% productivity improvement!

    Also, your goal should be to manage things well enough to keep coworkers in the office for under 8 hours every single day. If you feel compelled to keep people in the office longer than 8 hours on any given day, you've failed. If someone has to come in on a weekend, then it is an epic fail. You should be really clear about these things. The mark of a failing project is overtime and weekend time.

  47. Hire Older, wiser people by Anonymous Coward · · Score: 1

    Hire older, wiser people. They will already know the answers to all of your questions, and lots more.

    For me, a quiet environment. Few interruptions. I greatly prefer 0 interruptions. Planned collaboration is not the same thing as a stream of interruptions which prevent me from ever concentrating.

  48. Successful Teams by Anonymous Coward · · Score: 1

    1. Don't be too stuck on particular things - multiplayer games, ping-pong, etc. Do whatever works in your team.
    2. You need a good manager. If you don't have one, forget it. You can get good teamwork, but it's also sorta like saying you can fly through a highway tunnel like they show in the movies. If this guy isn't encouraging good behaviors and values and discouraging bad ones, well, it's roll of the dice. This is the single most important factor, not the people [currently] in the group.
    3. Stamp out and destroy arrogance and aggressive behaviors. This is the single most destructive thing in development groups - people who know very little pretending to know a lot, and pushing others around. This isn't just interpersonal - it costs companies lots of money and drives away good people. Note that avoiding arrogance doesn't mean pretending you're stupid. There is a good analog with humility. Humble people seek primarily to not put themselves first. Instead of always putting forward what you know, look for what you don't. You get better solutions and spend your time doing more productive and useful things.
    4. Be highly competitive with yourself, but not with others. Think coopetition: it produces better results than competition.

  49. No Comment by Anonymous Coward · · Score: 0

    None at all.

  50. Hey ho let's Go! by Anonymous Coward · · Score: 0

    Drugs, Sex and Rock 'n' Roll!!

    z\m/

  51. 4 days of unrestricted time by Anonymous Coward · · Score: 0

    There was one company a while back that did something interesting. Once per quarter the company literally gave all employees a free day to do anything they wanted, anywhere they wanted. Working anywhere was allowed such as the beach, park, even at home. Bug fixes, catch up on old stuff, new features, etc. There were some limitations such as don't completely use up all the company resources. In exchange for this free day, the employee must show the company whatever they created/built/etc. Basically a free day to develop without any negative comments and almost no oversight. Innovative ideas flew freely unlike other places with rigid company policies.

  52. Deming by PJ6 · · Score: 4, Insightful

    I recommend you read up on what this guy had to say about operations and engineering.

    You may find many of his ideas surprisingly applicable to software development.

  53. Re:Avoid UML, unit testing, instant messaging, Git by Anonymous Coward · · Score: 0

    Wow, git is a fad? I did not know that.

    When we first started using git we wanted something for version control. After we started using we found that the way we were working had changed and slowly realized it was a development tool and not just about version control. Unlike subversion (what we switched from) it was behind the scenes for us and not "in the way."

    If you are seriously proposing that distributing version systems are a fad and we are going to go back to the bad old days of svn and cvs then you need to get a refill on your prescriptions.

    As for instant messaging, I hate it too, but it is harder to avoid then the phone.

    The rest can go, though. :-)

  54. Good developers by sl4shd0rk · · Score: 1

    People with a real affinity for inventing and building things with code seem to work out pretty well. An innate curiosity about how other people do things, and why, is something to look for too. On the teamwork part, it works best if you can find someone who is able to listen to other people's perspectives. Time and again we get people in the door who look great on paper but cannot work effectively with other people. If you keep someone like that staffed, it eventually sinks the boat. Oh -- immediately pass on anyone who uses the word 'bro' in a sentence.

    --
    Join the Slashcott! Feb 10 thru Feb 17!
  55. Easy by spiffmastercow · · Score: 1

    Good pay, lots of time off, an emphasis on quality over quantity, and make it clear to devs that you must both a.) do good work, and b.) not be a dick. Do that, and the rest should take care of itself.

  56. Varies from person to person, not group to group by perpenso · · Score: 4, Insightful

    I'd like to emphasize that what works varies from person to person, not just from group to group. That despite what the currently in vogue development model tells you, best practices are not necessarily universal. Two highly skilled developers may have radically different best practices. That forcing a single set of practices upon a team may adversely affect the performance of a particular individual. The team leader needs to recognize such situations. For example one agile/scrum school of thought may advocate breaking work into very small tasks that are somewhat randomly assigned, a particular developer may bounce around different parts of the program from task to task. This works for some, not for others. Some skilled developers are far more efficient if they get the chance to specialize in a particular area for a while. Others may get bored doing so and prefer the bouncing around the project. Others may be indifferent. Don't fight against what works best for the individual. And make sure you communicate why some are working in one manner and others in a different manner, that its a matter of their individual styles not some sort of favoritism.

  57. Quality breeds happiness by Anonymous Coward · · Score: 1

    In my experience, nothing degrades morale like producing (and then having to maintain) poor-quality code. A culture that encourages people to do things right the first time will go a long way toward preventing developer burnout.

  58. Its inherent interest, not intellectualism by perpenso · · Score: 4, Interesting

    I don't think it is intellectualism, its really whether the developer has an inherent interest in software development. Some people get a degree in CS because they have an inherent interest in developing software. Others get the degree because a parent or guidance councilor told them it was a good career path. A B student with the inherent interest will most likely be a far better contributor to your team than the A student who is on the career path.

    The question is how to recognize the person with the inherent interest. Its a judgement call but I like to see what sort of stuff they wrote for their own personal amusement or curiosity. I don't really care how trivial or useful such code was. If a person has only written code for school or work projects that may be a warning sign.

    1. Re:Its inherent interest, not intellectualism by Anonymous Coward · · Score: 0

      I never got a degree, mostly due to ending up studying the wrong area (electronics) and eventually falling out and not getting a degree.

      I'm quite curious to the actual worth of the degree, if all you're interested in inherent interests. I have a job as a software developer, so it isn't a personal question, just curious. I imagine there are also people who end up getting a non-CS degree, but have an inherent interest in software development.

    2. Re:Its inherent interest, not intellectualism by s.petry · · Score: 1

      Most of the people I know in the business have no CS degree if they are technical, usually the CS degrees are owned by management. Personally, I have a dual Mathematics degree. My best friend, also working in the technical side has an Electrical Engineering degree, and many of the people I work with have no degree at all but learned hands on during the early days.

      I learned long ago not to rate people on what degree they had. In the past few years, most that I have interviewed with CS degrees are self righteous sexual intellects which I turned away from jobs. (Sexual intellect = F%#ing Know it all)

      Many coders were system admin people that enjoyed computers so much they learned and do it for love of coding. Many system admins were CAD designers or even data entry people that learned and enjoyed computers.

      In closing, I do think it's important that you have knowledge before you step in to a job. A degree is not the best measure for how well someone will do in that job.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

  59. culture by Kogun · · Score: 1

    Think like a tribe and do things to strengthen the tribe. A culture is strengthened by rituals and mutual goals, so do things that reinforce that. Divide your culture into three areas: 1) Work, 2) Play, 3) Philosophical; and do things that will reinforce those. Here are some specific recommendations:

    Work
    Adopt development methodologies (like Agile) stolen/gleaned from well-documented sources. Adopt specific syntactical coding standards so that everyone's code looks identical. Do not permit anyone to use tools to make their code "pretty". Have inclusive meetings to hash out the specifics and get complete buy-in from all team (tribe) members. Document well for future members. More specifically, institute weekly code reviews (at least until they start becoming pointless because everyone is finally on the same page) where one person's code is examined and discussed. This is a ritual that exposes egos, reveals misunderstandings, and exposes weaknesses that can be remedied. After a few cycles through everyone in the team, this will become less difficult and there will be far fewer issues found. Pro tip: start with the tribe leader's code. New members will view code reviews as a kind of initiation, which it is. I was on a team of five developers that did this and it did more to bring us together as a tribe than any single thing. Caught tons of bugs well before they were integrated into the rest of the system. (Initially, we could not check code in until it had been reviewed.)

    Play
    Eat lunch together as a tribe at least once a week if not more often. Eat in the office and play poker, (not for money) if possible. Always invite everyone in the tribe and if you have a lone wolf that never eats with everyone else, have his boss start holding work lunches, requiring attendance (and then just don't do any real work). Similarly, have some kind of family friendly weekend, off-site event at least once a quarter, paid for by the company if possible, such as cookouts, bowling, sporting event. Ideally, this will be more picnic-like than movie-like to foster getting to know families. I was part of a team that did this (not the same as the one mentioned above). Picnics, a softball team, a volleyball team, movie days (we'd take a long lunch and all go to a new release) were all part of it. It was great until we merged with another company that took over, trashed our budget for such things, split the tribe, started having conference calls during lunch time. Tribe hung on for a while but once these changes were in place, it was clear to us that the company that took us over had no soul.

    Philosophical
    Have regular "meetings" to discuss technology trends, ideas, stuff found on the web. A lot of this will happen at those regular lunches but try to let lunch be more social, less work talk. As individuals, investigate new methodologies and tools to adopt and then discuss them in a group. Find out what websites each of you regularly reads. Tell war stories from previous jobs or college. Think of these meetings as the time to plan how to strengthen the tribe. The atmosphere of these "meetings" should be akin to sitting around the campfire, sipping on a beer, smoking a pipe, looking at the stars, telling stories. The agenda is not about getting anything done for work, but just about sharing thoughts. Don't let looking at the web become the focus. If no one is talking, then you are doing it wrong. Meeting once a week should suffice.

    Note that all three activities above will go far to introduce new team members to the culture and get them integrated into a productive environment. This is important in the long run as rapid team growth can kill a culture. These activities go far to reinforce hierarchy and retain the culture, as well as identify issues that new members may bring along as baggage.

    As a species, we are wired to be social and our social construct is wired to be tribal, both in size and in hierarchy. Also, our tribal roots center on the meal, so adding food to any of t

    1. Re:culture by geekoid · · Score: 0

      Poker? with no money?
      No good will come out of that. Either people wont be serious, or it will turn to money.

      try board games; especially board games where people work together.
      Pandemic comes to mind.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:culture by Kogun · · Score: 1

      Initially, we had the problem you cite. We adapted, however, and a couple of things fixed it.

      We would play daily (Texas Hold 'Em), carrying over our chips from the previous day, with blinds increasing at the beginning of the day until Thursday, when the blinds would increase on a much accelerated schedule and a winner emerged (usually by the end of the lunch hour). On Friday, we went out to lunch and the the winner would have lunch paid for by the rest of the team. I maintained a spreadsheet for chip counts and statistics over time, which tended to make winning a matter of pride. Also, if you busted out early during lunch, you had to shuffle and deal at least until someone else went bust. On Monday, we'd all get 400 chips and each day after that, we were bankrolled another 200, permitting those that were broke to get back into the game and have a chance to win the free lunch. Took a while to evolve rules to that point, but we all adopted conservative, rational play once all the pieces were in place. I eventually made a spreadsheet to keep track of the daily stuff and the lunch money.

  60. Responsibilty not blame by EmperorOfCanada · · Score: 0

    It is critical to understand the difference between responsibility and blame. Most MBA run development shops are big on figuring out who to blame and handing out bonuses, promotions, probation based upon it. The best shops make sure that if you broke it then you fix it. It is a great learning experience to have to fix it in that you both learn what you did wrong and to me more careful next time. (Fixing it means working with the sysadmin to restore the backups of uncorrupted data or whatnot) By removing the blame culture you also remove much of the need for titles like product manager, project manager, architect, and so on. It just a bunch of guys who know what they are doing working together building something cool. Then you only need a supreme court in the form of an owner or one boss who resolves disputes.

    This all breaks down if you have troublemakers or incompetents. The troublemakers often come in the form of highly certified my way or the highway types and the incompetents should probably just not be developers.

    A sure sign of dysfunction is if some formulaic style is imposed that sounds good to MBA types but otherwise sounds stupid. Think about who would hire a Six-Sigma-Blackbelt: someone with an MBA or someone with 10 years of successful projects under their belt?

  61. hacker time by blackfrancis75 · · Score: 1

    the #1 thing in my view is to have a period set aside, so that Developers can work on/learn/develop something new, which may or may not be directly applicable to the project at hand. - it should (preferably) at least have some relationship to software development - it doesn't have to be a lot of time - even say an hour a week, or one Friday afternoon a month. At Google, employees get 20% of their time to work on whatever they want. - the developer has to report back his findings to the rest of the group

  62. little managment by geekoid · · Score: 1

    motivated people.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  63. code reviews, professionalism by fusiongyro · · Score: 1, Interesting

    Code reviews. Make sure everybody on the team has seen everyone else's code and understands it. Do regular (monthly, bi-weekly, whatever) code reviews. Code quality will go up.

    Egoless programming. Don't allow anybody to become a rock star or the only person who can read or write any bit of the code. Everybody must be cross-trained on someone else's code, at least. The team is responsible for the code, so make sure people are polite during code reviews. Polite doesn't mean downplaying problems. It means pointing out problems without being an internet jackass. Nobody "wins" at code review, but the code quality goes up. This works as well as any other software development methodology, with lower overhead, less dedication and no cargo cult behavior.

    Professionalism. Foosball tables and other wank infantilize the staff. You're adults, you're there to write high quality code. Keep regular hours, understand that you're there to code, you don't want anybody pulling all-nighters or living in their office. Code quality will go up because it's taken seriously.

    Encourage openness. Encourage experimentation. Allow radical changes once in a while. Good programmers want to be understood, respected, listened to and believed. They don't want to be pigeonholed into some kind of geek stereotype, they don't want internet fame and glory, they don't need you to do their laundry for them, they don't need to be coddled.

    Reduce (but don't eliminate) time pressure. Code quality wants to go up. It's prevented from going up because management wants you to get to market as fast as possible. Everything you do that improves quality takes time away from feature development. Make it clear that moving deadlines up means fewer features *always*, lower quality *never*. Never sacrifice quality to satisfy a suit.

  64. some ideas by Anonymous Coward · · Score: 0

    On Meetings: there are two types of meetings, working meeting and status meetings. Be clear on the type of meeting and ALWAYS have a purpose statement in the invite.
    On Tribal Knowledge: there are two types of tribal knowledge, spoken and written. Many important pieces of knowledge will be spoken and many useless pieces of knowledge will be written. Pay attention, as a team, to the ratio of spoken vs written tribal knowledge.
    On Courtesy: You're never too old to say please and thank you.
    On Being Clear: When questions are asked there are responses and there are answers. Aim for answers.
    On Compassion: Computers don't get tired, they respondent consistently, and they don't do anything except what you program them to do. Your teammates, on the other hand, are nothing like this. When your tired human colleagues become irrational, possibly hostile, and go rogue, give them the benefit of the doubt and try to be compassionate toward their human follies.
    On Balance: Make eat, sleep, and play a team value as much as working hard.
    On Science and Art: Using the scientific method is an incredibly powerful meme to ensure continual improvement, just don't forget that art and creativity need a place too.

    HTH.

  65. Key things for me by rins · · Score: 1

    Key for me: -Good pay/benefits -Competent management that doesn't micromanage -Flexible scheduling and a thought process along the lines of "you don't necessarily have to work 40 hours a week as long as you are getting your work done". Obviously, though, if someone only "needs" to work 10 hours a week they should be asking for more work...there has to be some common sense about it. -***Hiring people who can handle not being micromanaged and can be trusted to ask for more work and not abuse the flexible schedule.*** I feel very lucky to work where I do. Management trusts us and while things aren't quite as flexible as I'd like (WFH is mostly a no-no), our work-life balance is really good and the cherry on top is a decent wage/good amount of vacation days.

    1. Re:Key things for me by Anonymous Coward · · Score: 0

      Good pay? That's greedy 1%er talk! We should cap peoples salary.

  66. 3 Words by bobetov · · Score: 1

    "Fire the assholes"

    I've worked in a dozen or so small-to-mid software shops as employee, contractor or founder. The number one (preventable) reason for companies to go under, in my experience, is one or two jerks poisoning the well.

    No matter how awesome someone looks on paper, if he or she is making people around him or her resentful, fearful or angry, pink slip immediately. Don't mess around. Don't worry about loss of capability - ask your team to step up and fill in until a new hire can be brought in, and they will.

    Nothing kills team spirit more than that one guy who thinks primate politics trumps respect and results.

    --
    Looking for a Rails developer in Chapel Hill?
    1. Re:3 Words by Anonymous Coward · · Score: 0

      "Fire the assholes"

      MOD PARENT UP! I was going to say the very same thing, so instead mod points for you. If I could have given you all my mod points I would have.

  67. Re:Avoid UML, unit testing, instant messaging, Git by Anonymous Coward · · Score: 1

    Research shows that pair programming increases productivity only for novice-novice pairs. For novice-expert or expert-expert it is a net drain. Code reviews with 2-4 reviewers are more efficient and produce better quality than pair programming.

  68. Just my thoughts. by TaggartAleslayer · · Score: 1

    I've lead and followed in software development, ranging from junior guy to Sr. Development Manager. Here are a few points that I've picked up along the way that help:

    - Clearly define career paths for your developers. It's ok if that path ends at some point. Not every position can lead to CEO, but there should be a clear bar for those wanting to grow.
    - Create Individual Development Plans for your team members to help them reach those goals. Include realistic metrics, not vague "Do good!" statements
    - Provide training as a normal part of business. Don't wait until you have to use a certain technology and then cram everyone into a room to learn it. Be proactive.
    - Offer paid travel to conferences in place of training for those that prefer it. They usually come back with ideas or areas of focus to better process, development tools, and products.
    - Don't let drama fester. If Bob is always leaving early and people are grumbling, talk to Bob.
    - Don't resort to the mass-email to avoid confrontation. If Bob continues to be a problem, don't send a generic "Team members should be on time and leave on time" message to the group. There's no better way to kill team spirit than to lecture them all over the actions of a few or one.
    - Don't get caught up in perks. Pay a reasonable salary, and be a fair company, and you won't need the goofy team builders.
    - Don't let your employees walk all over you. If you need them there 40 hours a week, doing a professional job, tell them that. Don't bow to their will because you think it will make them happy. It often won't. What will make them happy is knowing what to expect. You can't let them show up at noon every day for three months and then decide to get pissed off about it. State the rules up front, keep them simple, enforce them every time, and be fair across the board.
    - Remember that they're all grown damned adults. They are probably quirky in ways, but they wouldn't be there if they weren't also intelligent and valuable to your team as a whole. Treat them with respect in everything you do and you'll most likely get the same in return.
    - Remember that you are there to support them, they aren't there to support you. They are there to deliver something for you, and your job is to help them achieve that. Flip the org chart upside down if it helps you remember.

    I could go on for hours, but I'll cut it there.

  69. Teamwork by Livius · · Score: 1

    The single biggest flaw I've seen is not understanding what a team is. A team is not just a bunch of people with complementary goals. A team means people are invested in the performance and success of their team mates, and are constantly sharing information and supporting each other.

    Being a team player is not, however, going beyond your contractual obligations to compensate for the bad planning of others.

  70. Re:Avoid UML, unit testing, instant messaging, Git by TaggartAleslayer · · Score: 2

    UML is critical for many difficult system interactions. A single diagram can save several refactors later.

    Unit testing is critical for good code. The point isn't to reduce defects the first time out of the gate. It's to reduce the likelyhood of problems being introduced the n'th time you have to refactor or expand an area of your application and need reasonable assurance that the impact of the change doesn't have a large footprint. You can change or add what is needed, run your tests to green, and be fairly certain that the application functions as intended in all tested areas. Otherwise, you're relying on instinct to tell you what the real effect on the applicaiton may be.

    Instant messaging depends entirely on the culture and nature of your group. If your team isn't colocated it can be invaluable for every day work.

    Git is no more a fad than CVS, Subversion, SourceGear, VSS, or any other source control. Source control is necessary. Your particular flavor of it may differ depending on your product, IDE, and approach. I like Git, but use Subversion more. Neither is a wrong answer, depending on the situation.

  71. Team Culture by Anonymous Coward · · Score: 0

    Spread the pain. If something sucks to do, make the emphasis be to make it better, but don't peg one or two guys and stick them with it. The people it will bother the most, might be the people who can most likely fix it. Or be able to teach the one or two guys how to. Nothing worse than something ugly being the way "it is" because no-one who knows better looks at it.

    Focus on honesty and clarity.

    Give credit publicly. Take blame around the corner and focus on what needs to be better.

    Remember that very few people are intentionally making mistakes. Treat mistakes as learning opportunities. (Save the hammer for when the person refuses (or proves incapable) to learn. Tech teams tend to do a bad job of communicating why to do things. Leading to complaints about copy/paste solutions that are wrong given the context.

    Deadlines matter, but a deadline I had an opportunity to create has much better buy-in. Make sure the people out front are not guaranteeing or making promises until they get with their team.

    Take a look at this book. http://www.amazon.com/The-Five-Dysfunctions-Team-Leadership/dp/0787960756/ref=sr_1_1?ie=UTF8&qid=1341001546&sr=8-1&keywords=5+habits+of+a+dysfunctional

    Every one of those problems was a part of my last gig. Funny thing was, it was part of the management team training cycle that year.

  72. Adopt good developer tools, process by tlambert · · Score: 4, Insightful

    Good developer tools make all the difference. They get the hell out of the way of doing work.

    (1) The biggest thing you can do to make people happy is fast builds. That generally means rolling your own, since tools like emerge/ebuilds and so on all have horrendous overhead. A null build of a product containing 500 modules (for example, an embedded Linux device) should take no more than 10 seconds. If it takes more than 10 seconds to do nothing, then you are doing it wrong.

    (2) The next biggest thing you can do is proper build. Building is half the battle; the big thing that stops work is integration failure. Say you have 500 packages in a product, and you make a change to one of the packages; what should get rebuilt? The answer should be (A) the package itself, and (B) whatever depends on APIs exported by the package. Yes, this means properly expressing dependencies. This is hard. Boo hoo: you are getting paid because you do hard things that you ordinarily wouldn't do, except if you were getting paid. Get the hell over it. Doing things this way is incredibly important in order to resolve #1: If I can use binary build products for all the packages I'm not working on, obtained from a previous build, then all I have to concentrate on building is the things I'm currently working on. A 30 minute build goes down to a few seconds.

    (3) This is necessary to resolving the build: Have strong inter-module contracts. A package that exports an ABI used by one or more other packages should damn well export a linkable library and header files. If the library version doesn't change, and the header files haven't changed, you don't need to rebuild the damn thing. But this can only be properly known if you have partitioned your packages such that they export ABIs. The ABIs should be documented, and these documents are contracts, where you agree not to break the contract from either end of things. A dependent package needs a new API? That's a negotiation. A Package wants to deprecate an API it exports? That's a negotiation, too.

    (4) After build works, you need integration. Integration boils down to using branch tags in your source code control system. This is necessary when someone attempts to submit a change that breaks things: instead of being dead in the water until the change is fixed or reverted within the package, and waiting hours, the B&I team reverts the package version to the previous version, and you are good to go: Things take minutes, not hours, days, or weeks to resolve. The B&I team is God, but their deliverable is binary packages. This is important in support of #1.

    (5) React appropriately when things go wrong. For example, if someone commits a test that's broken, but the test isn't exercised, and three weeks later the code path gets activated by a change and breaks things, do the right thing. The right thing is to back the hell out the change that activated the code path. The wrong thing is to try to fix the test at that point, while everything stays broken on the theory "Ah, this is a smiple fix, I'll just fix the test instead". You may look like a hero for fixing the test after a couple days or a week, but you aren't, you're the bottleneck who killed the productivity of the rest of the team while you were trying to fix the test. Bottom line: back out the proximal cause of the problem, and fix the root/distal problem out of band. Everyone gets to get more work done.

    (6) Test appropriately. This is almost never done; most testing is reactive. What I mean by this is that people tend to write tests to verify that things are fixed, and then integrate those tests into their waterfall; that's a reactive test. This is almost never useful, since it doesn't verify correct behaviour, it only protects against regressions on a bug that was noteworthy enough that it's unlikely to repeat. Instead, testing should test desired product functionality. One aspect of agile programming that is a good idea is writing the functional tests before writing the code.

  73. Culture HOW-TO by Anonymous Coward · · Score: 2, Informative

    Read this:
    http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf

    And This:
    http://www.nczonline.net/blog/2012/06/12/the-care-and-feeding-of-software-engineers-or-why-engineers-are-grumpy/

    Watch This:
    http://www.livestream.com/etsy/video?clipId=pla_780bfe22-12e8-4c7f-8c7b-06cc6cac9c49

    That should get you started.

  74. The problem is the problem by erik.erikson · · Score: 1

    Keep all your developers focused on the problems you are solving. The really hard problems. And demand clarity in their code and solutions. In the end, the problem is the vehicle towards the value you are producing. Leadership's role is to define and communicate a vision of the value you produce, the engineer's role is to understand that vision before but necessarily thereafter identifying and solving the problems that expose their solutions and result in the delivery of the value.

    If process or any other factor of the work place start to reduce developer focus from problem solving you will disable or lose your best people and accumulate slack-jaws. Having a job that actually keeps your brain revved up and challenged on an every day basis is crack to true geeks. Note that the basics like reasonable compensation, a good development machine, and basics like coffee et cetera are important to make sure no issue invades the mind space of your focused problem-solving employees.

    Having worked in both a successful startup and a large corporation, this is what seems to hinge or turn any effort in our field.

  75. Hire some older, and smart no-BS people. by mbkennel · · Score: 3, Insightful

    *) Don't turn your workplace into a fraternity.
    *) a super-automatic espresso machine, and pay for all the coffee & maintenance of said machine.
    *) Agree that you don't want to do anything stupid or wasteful even if some book, or person, think's its the 'best practice' or 'cool'
    *) newer is not always better. Newer is not always worse.

  76. The Tao Of Programming by Anonymous Coward · · Score: 0

    Thus spake the master programmer:

    ``Let the programmers be many and the managers few - then all will be productive.''

  77. make sure you keep Reality Checks in stock by RobertLTux · · Score: 1

    1 Any time you start hearing tocatta and fugue in d minor make sure you start getting supplies to comp for the extra stress on your team (Snax and Soft Drinks for the team would be a start)

    2 make sure that marketing does not OverSell The Product

    3 if you have Married Team Members you may want to setup some sort of OnSite Daycare (this is a MUST if you have Female Married Team Members) even if this is a spare conference room with an On Call caretaker.

    4 treat your employees like people not like Droids (unless 3-CPO or Rommie actually apply that is)

    --
    Any person using FTFY or editing my postings agrees to a US$50.00 charge
  78. Re:Yes, you do by hazah · · Score: 1

    Everything but the last sentence absolutely disgusts me.

  79. Developer Culture or Product Culture? by jasenj1 · · Score: 1

    Are you interested in making developers happy and feel good, or interested in producing good (great?) products? The two are not necessarily complimentary.

    A faithfully used bug tracking & task assigning tool will give great accountability of what people are working on, where the product is in the schedule, prioritize tasks, etc. But using it may be considered burdensome micro-management by developers. A "good" developer should want to use those tools, though.

    I interpreted the question along the lines of tools that should be available and used by the development team. Trackers, continuous integration, VMs, debuggers, source-control, IDEs, that sort of thing. Provide a rich, discipled set of software development tools, enforce consistent use, and teach the newer guys to use them.

    Whether you have Hawaiian shirt day or free Red Bull should be pretty far down the list of concerns. Free drinks & snacks are nice, though, as they make being in the office a bit more comfortable. That sort of social, interpersonal thing is definitely going to be different from group to group - even within an office. But the company recognizing the importance of that social bonding and allocating some time and funds for it is certainly a moral booster.

    In summary:
    1) First focus on the work. Provide the tools to do the work well. Make people use them and teach people to use them.
    2) Provide some personal social tradition to help the group bond.

    - Jasen.

    1. Re:Developer Culture or Product Culture? by Anonymous Coward · · Score: 0

      Are you interested in making developers happy and feel good, or interested in producing good (great?) products? The two are not necessarily complimentary.

      That word doesn't mean what you think it does.

      In fact even if you'd chosen the right spelling it still wouldn't.

  80. core of culture by archen · · Score: 1

    I'm not going to claim that there aren't a lot of other things you need to do for good "culture", but one basic thing I see screwed up in most companies is always the same thing. Lack of communication. Not just programmers, just about every company in every department has a problem with this. The more people are allowed to speak, and people LISTEN to them, the better your environment will be.

  81. Good Boss, No End-User Support by Tux2000 · · Score: 5, Insightful

    Have a good boss. Really. He doesn't have to be the nice guy everybody loves. That probably won't help. His real job is to keep the management's political games away from the developers, and to translate between nerds and managers. Most times, your ideal boss will seem just to do some paper work, and not mess with nerds' stuff. From time to time, he will ask how far the project has progressed, and occasionally, he will tell you that the stuff really has do be done before a certain deadline, at least so far that the stuff does not crash within the first five minutes. And when things are really burning, he's the one that listens to you when you need someone to yell at.

    That was my first boss, and I still miss his talents. My current boss is a moron. No clue of management and politics in management, no clue of project management, hardly a clue of software development, but he knows his computer well enough to find mouse, keyboard and power button. Unfortunately, this makes him think he could manage and administrate computers. And, my absolute favorite, his completely irrational optimism. If he would drive at 200 mph against a solid wall, his last words would be "I'm perfectly optimistic that I will survive the crash without a single scratch".

    The most important thing: Keep end-user support away from developers. Nothing kills concentration more than a phone that rings every few minutes, with a completely clueless user on the other end of the line, telling you that his "computer does not work, and it's all your fault".

    And, you may have already guessed that: My current boss forces me to support end-users, during development.

    Tux2000

    --
    Denken hilft.
  82. Re:MacBooks by Anonymous Coward · · Score: 0

    Aww, a butt hurt macfag, how cute...

  83. The best thing you can do... by Anonymous Coward · · Score: 0

    Kill yourself. You sound like you are just trying to pick up business buzzword merit badges. Just let them get the fucking work done. When I hear agile or scrum, I want to stab the person in the eye with a screwdriver and force feed their balls to their family members.

    1. Re:The best thing you can do... by Anonymous Coward · · Score: 0

      I had a manager who used to get drunk and then brag about how he could suck his own dick.
      We got thrown out of more happy hours...

  84. You're asking the wrong question. by HideyoshiJP · · Score: 1

    There are definitely things you can do to bring a team together and promote a better culture, I feel there's a certain organic quality that has to be present to make a truly good working culture. It comes down to the team members inherent qualities and their own definitions of what makes a "good" culture. Luckily, your team is quite small, so you should be able to do this with relative ease. Make sure the business is in order, then sort the rest amongst yourselves... preferably over beers.

  85. Re:MacBooks by DarwinSurvivor · · Score: 1

    Nah, arch on a thinkpad. 12 hours of battery means I can sit wherever I want without an outlet and just plug the sucker in overnight. Even sticking between 20% and 80% charge, I can get at least 6 hours of coding, surfing and e-mail without breaking a sweat.

    If you're not worried about being mobile, then just about any desktop will work, just give us a decent resolution monitor and a non-chicklet keyboard with a number pad.

  86. Make sure it's okay to fail by sticky.pirate · · Score: 1

    Try to make it a place where it's okay to fail, and fail early. I don't mean encourage people to be idiots, I mean make sure it's okay to try, work hard, make a legitimate mistake, and everybody moves on without repercussions and hopefully there's some lessons learned.

  87. 7 companies and 16 dev teams (all successful) by Anonymous Coward · · Score: 0

    First,

    You have to get rid of the hacker mindset. Professionals are engineers, not hackers. You will be far more productive when you have solid engineering processes rather than hacker driven processes. Yes, I know that won't resonate well in the /. community.

    Second,

    You need a leader, even on a small team. The fastest way forward is for someone to clearly be in charge. Leader does not mean 'title' it means someone who could be making architectural decisions, set examples for really good development processes, or just be decisive. Whatever you call them, you need one.

    Third,

    Consider pair programming for all critical sections. Not only does it help to have multiple eyes, it helps with communication and spreading the knowledge.

    Fourth,

    Enjoy. the most productive teams are the ones that know how to balance effort and enjoyment. Its harder to do than you think.

    Fifth,

    Have deadlines. really.

    1. Re:7 companies and 16 dev teams (all successful) by Anonymous Coward · · Score: 0

      > Have deadlines. really.

      Considering that 1985 Jeffery-Lawrence study shows that deadlines kills performance (you can be twice as productive without them), and they very easily demotivate teams and individuals, you could have explained what reason in the world would support the idea of having deadlines?

  88. If the oldest guy on your team is 30... by Anonymous Coward · · Score: 0

    You probably already failed.

    1. Re:If the oldest guy on your team is 30... by Anonymous Coward · · Score: 0

      ...now get off my lawn you punks! You hooligans!

  89. And don't forget... by Anonymous Coward · · Score: 0

    ...developers call one another to task for going home at 5 if they aren't ahead of schedule, and for failing to voluntarily show up on weekends during crunch time.

  90. You missed a step.. by composer777 · · Score: 1

    First, as a good developer, you need to check your assumption that this problem is a good target for optimization. You need to assess, as best you possibly can, if what you are accomplishing meets an educated best guess as to what your output would be in an ideal sense. That's how you optimize systems. You don't waste a bunch of time optimizing things that are functioning at full capacity. As far as why people come up with new methods, there is a lot of money in it, and there is constant pressure to find ways to increase productivity from developers. However, just because the pressure exists doesn't mean that it's a good idea to spend a lot of time optimizing a system that quite possibly is already at it's limits.

    The next thing you need to remember is that statistically, the chance that you will be writing software at age 40 is slim. Choose how you spend your time wisely. I can't tell you how many younger developers, many of whom won't even be in the field five years from now, spend a significant chunk of their careers on problems that are unsolvable (like making a significant improvement in software methodology), rather than making a significant contribution as a programmer. My advice, spend your time on solving problems that are feasible, instead of chasing pie in the sky dreams of solving a problem that we can hardly even describe, much less solve.

  91. A CS/CIS/etc degree is not required by perpenso · · Score: 3, Informative

    I never got a degree, mostly due to ending up studying the wrong area (electronics) and eventually falling out and not getting a degree. I'm quite curious to the actual worth of the degree, if all you're interested in inherent interests. I have a job as a software developer, so it isn't a personal question, just curious. I imagine there are also people who end up getting a non-CS degree, but have an inherent interest in software development.

    A CS/CIS/etc degree is not required. It is quite plausible to study all the topics covered in a degree program on your own. The problem is that very few people who embark on that self-taught path will study all the necessary topics. It is too tempting to cherry pick the interesting topics and pass on the less interesting. The problem is that some of the less interesting topics can be quite important. "Less interesting" varies from person to person.

    A formal degree program has the advantage that a person will be coerced into study all the relevant topics, "interesting" or not. Most people can benefit from that sort of formality. Add to all of this that one can get access to some pretty cool hardware at a university that one would not get access to otherwise. Plus there is the environment of being surrounded by others of similar interest and abilities. What you and your fellow students learn from each other complements what you get out of class. Some professors, but not all, can also teach valuable lessons not normally covered in class.

    I have worked with some great programmer who never got a degree. I would be happy to work with many of them again. However they probably could have been even better with the formal training. Self study, practical experience and formal training are all good things. Each complementing the other and taking a person a little bit farther.

    As for inherent interest, that is something entirely different from training or experience. IMHO a person who lacks an inherent interest in software development is unlikely to become one of the better developers.

  92. One word... by Anonymous Coward · · Score: 0

    Autonomy. Have the business tell the team *what* they you would like to accomplish in a clear manner and then let the team determine *how* to get there.

  93. Hire some old men by gatkinso · · Score: 1

    Crotchety bastards who will inject some maturity into your team, then sit down and crank out top notch code for 8 hours.

    --
    I am very small, utmostly microscopic.
  94. Keep everything simple and disciplined by ralphbecket · · Score: 1

    - Comment your code religiously (i.e., what a given piece of code is intended to achieve, why you chose to do it that way, links to relevant materials, etc. as appropriate).
    - Take unit testing and regression testing seriously. Make it part of each work item.
    - Keep your designs simple. This takes careful up-front thinking. Avoid design patterns unless you absolutely have to use them (they mostly add complexity to little benefit in my experience).
    - Try not to jump on bandwagons. Be skeptical of everything in the industry.
    - It's a team game: write for each other, leave your ego at home.
    - Have a team pub lunch at least once a week.

  95. Peopleware and MMM by Anonymous Coward · · Score: 0

    "Peopleware" and "The Mythical Man Month" are both good books to read on the topic. "Almost Perfect" is also an interesting read. http://www.wordplace.com/ap/

  96. culture for productivity and a social life by greggler · · Score: 1

    i also work on a small development team and believe that there are distinct aspects to culture that promote success. just saying the word "Agile" is not enough. software releases are not a stunt where we work up to a frenzie of effort and shove it out the door hoping it works. software development on our team is a sustainable lifestyle involving a constant reasonable level of effort producing a steady level of output. we have delivered 10 production releases per year for about 11 years and perhaps we have worked past 9pm 3 times in the previous 4 years. you can try to glorify how 25 year-olds can stay up hacking all night and do wonderful things but that is not a role model for the majority. most professional developers also have outside lives and even (gasp) families that they might like to see. one key factor that enabling us to maintain both productivity and social lives is a strong defense of the work pipeline. we know how much technical work our team can fit into one release and we say NO to everything else. because our releases are frequent, it lowers the stress of putting items off until the next release. even so, our managers are sometimes required to use an iron fist defend our capacity and refuse to allow us to become overwhelmed. this is a central part of our culture, our managers never succumb to external political pressure to work us into burnout and in exchange we dont slack off during the reasonable number of work hours we give each week. the result is sustainable productivity and essentially zero turnover traceable to burnout.

  97. The opposite of Electronic Arts? by Anonymous Coward · · Score: 0

    That's pretty much the rule of thumb in the game industry until you get bought by EA.

  98. Commitment to Mission and Mutual Respect, etc. by cowtamer · · Score: 1

    I've worked in a lot of different environments, in some as lead, and in some as the coder. I've seen some things which work, and a LOT of "fail."

    This is what boils down to: The mission must be more important than anything extraneous to it, and the people must be more important than the mission. NOTHING beats motivation to succeed (not even money).

    The "show must go on" attitude (as long as it does not trample on people's lives) really helps to cull the nonsense. Have fast release cycles, and make sure customer feedback is immediate and visible to the team. Do not isolate the team from the end-user. It really helps to have everyone have a sense of ownership in the project -- developers get turned off and start reading Slashdot if they do not see the impact of what they produce.

    Encourage new ideas, and listen to people when they speak in areas of their own expertise. Make sure there are several larger steps to be taken after the immediate project, and a grander vision for what the team is trying to accomplish. Development methodology, etc. is team specific -- find what works for your specific team.

    Get rid of the jerks, cynics, and fanatics as soon as possible. Make sure you yourself are not in these categories!!!

    Foster a sense of teamwork. Keep the team socially engaged with each other. Take them out to lunches, dinners, drinking, etc. Send them to conferences to demonstrate the product, if this is applicable. If they can't stop talking shop during these events, you're doing it right :)

  99. Horizontal by Anonymous Coward · · Score: 0

    What I find great about my job apart from the flexibility, perks etc... Is that we have a fairly horizontal organization, we only have devs and managers and anyone can tell off their superiors if they feel things are not right. Obviously someone has to have the last word on controversial issues but that doesn't mean you can't tell your boss that he is insane about deadlines, implementation, methodology, technology, etc...

  100. Fun by Silent+Johnny · · Score: 1

    I've learned over the years that a good company culture actually makes a difference, as long as it's real, not some artificially created one. Of all possible values in your culture, I've found that 'fun' was the most important one. From that, dedication and shared responsibility follow naturally.

    Furthermore, I think you're on the right track by keeping your team small, adopting an agile practice to stay focused. The challenge with the latter is, you have to be really honest to see what works, and what doesn't. Retrospectives are more important than anything else.

    Oh, and be a catalyst for change in the rest of your organisation.

  101. What NOT to do by Summitlake · · Score: 2

    I spent almost two decades in an older development environment, and can share some of our prized secrets for success. It helped to have a team lead who was REALLY good with threats and verbal abuse. Everyone needs "Ivan the Terrible" role models to help foster a nurturing environment of back-biting and finger-pointing. Another secret is to always replace a programmer who was not a good fit, with another even more dysfunctional misfit. Lead from behind. Set your best people up to fail. When forced into a product upgrade, poll the clients to ascertain what they don't want, and give it to them. Have your system architects study Machiavelli. Never fix code when a kludge or spaghetti code land mine can be concealed for the benefit of future generations. Programmers, make sure QA or beta testers follow scripts YOU control, or else they'll be wandering off on fishing expeditions to find inoperative features and broken functionality. Make sure all your people understand that broken GUI's and grossly inaccurate algorithms are "working as designed." Above all: the healthy development environment will insure that everybody, from VP to administrative support, lives in fear of their job and absolutely dreads going to work every morning.

  102. tea, earl grey, hot by Hognoxious · · Score: 1

    Soon we'll be using rasberry pis bought with bitcoins

    Rubbish. We'll download a file and print our own at home!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  103. Re:Yes, you do by Anonymous Coward · · Score: 0

    you must be a manager that fell into IT!

  104. Happy Endings? by Anonymous Coward · · Score: 0

    How about cute co-ed massages every Friday, complete with happy endings, and unlimited beer, soda, chips and snacks.

  105. Re:Avoid UML, unit testing, instant messaging, Git by igomaniac · · Score: 1

    You're almost right, but the main problem is when a team gets obsessed with other issues than actually writing code. You want as little time as possible to be spent on debugging and rewriting. In order to achieve that you need some tools. To avoid rewriting you need some way of specifying what the software is supposed to do before actually making it. UML can be used for that, but it's not a goal in itself. To avoid endless debugging session you need tests, unit tests can be used, but I've found it far more productive to write code that has a lot of debugging code in it. Since I'm mainly writing C/C++, this will be in the form of asserts and #if DEBUG ... #endif, but the main idea is to catch errors as early as possible during program execution. In my experience it's far more productive to get dedicated testers to test end-user functionality and file bugs than to make the programmers who wrote the code write code that checks if the code they wrote did what they thought it should do. The reason is that most bugs occur because the programmers who wrote the code failed to consider some particular corner case when they wrote the code, and they will likewise fail to write a test to test it...

    In conclusion, the primary goal is to develop a product, not to write tests, not to make specifications and not to make clean revision histories. However, when used right, specifications, testing and version control enables you to develop the product faster and with higher quality.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  106. Re:Yes, you do by hazah · · Score: 1

    Never been in management. Ever. I write code.