Freigeben über


The perfect software project

What do you love about how software development is done where you are? What do you hate, and how would you improve it?

Suppose you could work on the perfect software project. What would it look like?

What's the ideal hardware, tools, processes, people, skill set, office, etc., for you?

Here's some ideas:

  • people who can show they know how to do things simply
  • a variety of snacks available 24/7, including healthy stuff
  • outsource every non-software activity I can, so we can all focus on the important stuff
  • Microsoft's health care plan
  • A work area free from background noise (HVAC, computer fans, etc.)

Comments

  • Anonymous
    May 26, 2004
    All I ask is that I (and my team) be allowed to focus on a single project (or two) instead of having 20 thrown at me, and be given the time to do it correctly instead of having to rush everything out the door to meet an unreasonable deadline.

    Bryan
  • Anonymous
    May 26, 2004

    A perfect software project is a project that forces you into your limits every single day, forces you to make big sweaty bets and you are the only one responsible for these. An example is to be responsible for the architecture of a product whose specs is going to change a billion times in a short time frame, in such a way that if the architecture is bad it will immedialtely show, and if the architecture is good, it will allow major changes in the code with a marginal cost.

  • Anonymous
    May 26, 2004
    I've worked at a string of small companies and startups over the last 8 years. To me, the perfect software project is the one where I can see the finished product being sold, and being used, and making users excited. Sometimes it seem that putting all the right pieces in place to achieve this goal can be very, very, very, hard.
  • Anonymous
    May 26, 2004
    The comment has been removed
  • Anonymous
    May 27, 2004
  • Corporate honesty, if the company isn't doing well just tell us the truth. Don't tell us everything is great, the pipeline is full then the next day all of engineering has to be laid off.

    - Open communications with respect for each other. There's nothing worse than an engineer that writes something and then looks at you funny when you ask them for help on their API.

    - Training days. The company doesn't have to pay for it, but if I want to go to TechEd, don't make me take vacation to do it.

    - Allow some playing around in your code. Every now and then I have to take a couple of days to write a game in DirectX, but this actually helps me be more productive in my normal work tasks, and I've never missed a deadline. So lay off me man!

    - Stop using technology that is ancient and past end of life cycle unless you have a revenue stream you have to protect. I've worked at so many start-ups where they want to use technology that's more than five years old. I know it's proven, but it's also no longer supported by the original developer.