My Top 4 Ideal Dev Shop & Product Characteristics, Yours?

What is an ideal software project? What is an ideal delivery cycle? What is an ideal culture? From a client’s perspective do they see the team as a sluggish liability or is the development team proactive and looking for the next strategic or tactical step to take?

Ideally, I see the development team as a group that should be leading a company with technology. If a team isn’t doing that, they’re likely to be running the risk of appearing as a liability and risk. Often these are the types of teams that are often outsourced or off-shored because it seems easier to the clients or management.

I don’t like the idea of getting stuck in a team like that. However, I’d do everything in my power to change that situation. In the past I’ve done just that. It is hard, but it is worth it. It boils down, unfortunately, to a perception and practice problem most of the time. A little like herding cats. Once you get them all together… well, you can read the picture. ;)

Herding Cats, Oh yeah!

Herding Cats, ain't a feeling like it in the world!

So what is my ideal team, product, and environment look like? That’s simple to answer.

  1. Team cohesion through pairing, eating lunch together, having a beer once in a while, easy conversations, hallway troubleshooting, and other social interactions. These interactions should be easy, comfortable, almost as if everybody were friends. Better yet, the ideal situation is simply that people working on a project actually be friends. No reason, in and ideal situation, for everyone not to be.
  2. Frequent delivery of product. Weekly, maybe every two weeks, but not much longer than that. The customer or client needs to be kept informed. If it is difficult to deliver something every week or two, that should be the top fix it item on the list of things to do. In this ideal environment of mine, I’d like to keep conversation and delivery on a weekly basis. Two weeks, often is a long time between delivery points.
  3. Communication among all lines of the company. There should be zero resistance to talking to any part of the company, developer directly to whoever is involved in the product. If there is a user, the developers should have access to them.
  4. Casual work environments are important. Generation Y especially, but X and others also don’t particularly like an environment to be socially stuffy because of forced attire. Dress comfortably, yet respectfully.

Usually with three out of four of these I’m a happy developer. If I get lucky enough to actually find 4 of 4, I’m happier than a kid in a toy store!

What other characteristics draw you into a team or a product to work on? What gets you excited about the software you’re going to build or the team you’re going to work with?

If you write up your thoughts or ideas on an ideal dev shop or ideal product, let me know and I’ll provide a link to your blog as well!  :)

9 thoughts on “My Top 4 Ideal Dev Shop & Product Characteristics, Yours?

  1. Pingback: DotNetShoutout
  2. Only one thing really matters:

    A passion for a shared mission… All the rest is just noise…

    I would also like to make the observation that things do not last forever nor should they. Teams should not stay together forever. The world constantly changes, what is a fit today is not necessarily a fit tomorrow. Everyday you should wake up and ask whether this is the best place for me and is it what I want to do.

  3. Those four are also at the top of my list, and those also characterize my current gig very well.

    I’d also add that

    1. Having challenging problems to solve,
    2. the freedom to innovate / use new / emerging tech
    3. and a culture of continuous improvement of dev team awesomeness

    are all major contributors to high scores on the happy panda chart!

  4. Since very few dev shops are ideal, the one requirement of the dev shops I like to work in is that they are open to being ideal.

    Second part of that is the definition of ideal. Although software developers tend to cluster around a particular set of Myers & Briggs types, it’s fair to say that there’s still enough variability to make this a challenging question.

    Having said that – here’s my list:
    1. Having customers that want to participate interactively in the development of the product, and who understand what the product is supposed to do, and who know when it works and doesn’

    2. Having the right tools to get the job done, and being able to get those tools with a minimum of fuss.

    3. Ability to train on anything technology-related whether that is seen as relevant to the current work or not. Being well-rounded technically never hurts the final product.

    4. Comfortable workspaces and availability of “get away” spots where a team can go have some fun from time-to-time. Also availability of quiet spaces where some of us INTJs can decompress and do some thinking.

    5. Ability to move between projects and get some cross training/pairing opportunities with other team members.

    6. Good work/life balance. Shops that understand family and friend time is an energizing factor.

  5. Hey Adron!
    I think there are definitely some good ideas here, particularly the lack of friction between teams. Seeing a whole company as one team, versus the common us vs. them you see in some marketing/sales and engineering organizations certainly create some exciting product synergies.

    Some of them like a casual work environment and good people just seem like a given for most software companies – I am not sure I would have even thought to list them!

    A couple more points I would consider:
    * Being metrics driven – actually using data to drive decisions.
    * Being open to ideas from all areas of the organization – too often great ideas aren’t heard because management doesn’t listen or create channels to collect them. People really need to be able to give input into their own destinies :)
    * Chance to grow – all employees should get something out of their jobs besides a paycheck; so I like to see this be very deliberate and intentional.
    * Tools needed to do the job – Mike hit on this above but it bears repeating :)

    And for me personally, I like to have:
    * People that are much smarter than me.
    * People who really care about what they are doing and value success from a business perspective – not just creating cool new things – but creating real value for customers.
    * Interesting problems
    * Transparency and authenticity around all aspects of the product and company – I like to know what is going on.

    Seriously great blog and good ideas! Thanks for sharing!

  6. You forgot that everyone on the team has to be a master craftsman and a 10x developer. How could people without mad skills that like each other, communicate well and regularly ship software that delights users compete with a guild of true craftsmen?

Comments are closed.