Re: How do you make decisions that optimize software quality?
From: CTips (ctips_at_bestweb.net)
Date: 08/14/04
- Previous message: lilburne: "Re: How do you make decisions that optimize software quality?"
- In reply to: Andrew: "How do you make decisions that optimize software quality?"
- Next in thread: clifford shelley: "Re: How do you make decisions that optimize software quality?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sat, 14 Aug 2004 14:39:27 -0400
Andrew wrote:
> Hi there,
>
> Thanks to all for your feedback on my previous question on unit
> testing.
>
> I want to step back and ask the group a broader question. Imagine
> you are the VP Engineering at a large software company with the
> mandate that you must deliver software at the absolute lowest possible
> total cost of development and deployment - that means, low cost to
> engineer but with high enough quality that post-release deployment
> costs are also low (limited bugs, etc).
I am the equivalent, though of the software side of a smallish
hardware/software startup. Delivering high function, low bug-count
software with a low time to release is paramount for us
>
> 1) What are the top 3-5 problems or issues be in your experience that
> would strain my ability to be low cost AND high quality?
The ability to find good people. This breaks down into 2 parts
- Finding people who have the right mixture of theory & practice [we
expect people to be skilled C systems programmers, be able to develop
new algorithms and be familiar with the literature in the systems
domain. It also helps if they have skills in at least one other domain].
- Convincing them to re-locate to our area [most of them are pretty
happy where they are!]
I suspect if we were based out of Boston, Austin or the SF Bay area,
some of this problem might go away. Salary, interesting work, work
conditions have never been a concern, that I can think of.
Note that this is predicated on the model which we adopted - we would
only hire a few people, and we would only hire people who we thought
were exceptional (That way, at worst, they would turn out to be merely
good).
Other people make the decision to go with hiring across the skill
spectrum, and then putting processes/tools in place to compensate. Their
answers will be considerably different.
> 1a) How do people resolve these 3-5 problems? Tools? Software
> lifecyle methodologies? Which of these tools and methods can be
> provably shown to mitigate those 3-5 problems or is it just
> statistical/anecdotal suggestion?
We try and make the environment as productive as possible for people.
* Tele-commuting is encouraged - at this point, people are expected to
be in Mon & Wed so that everyone is available in case we need to meet
and discuss things, but even thats not hard and fast.
* Everybody gets a high-performance laptop [e.g. IBM Thinkpad a31 with
max memory]
* People get handed big chunks of work to do - where "do" means
everything including design, architect, implement, and testing.
* We try and make sure that everyone gets to get an interesting project
every so often - specially if someones burning out, or just plain bored
with his current work.
* We pay above market
We had a new hire who had a baby - he came into work 3 days after the
event. We told him to go home and not come back for a couple of weeks
[He was walked to the door by his manager within a couple of hours of it
coming to our attention].
>
> 2) What are the top 3-5 risks (i.e. not guaranteed to be a problem,
> but could manifest as a problem) that would strain low cost/high
> ability?
We have low coverage. Typically, for any program, we have one person
whose working on it, with one person who could take over. We lose both
of them and we could be hurting [though this is compensated somewhat by
the fact that we usually have about 3 months of slack in our schedules]
> 2a) How do people prevent those risks from arising? Tools?
> Methodologies? Can the tools and methods be provably shown to
> suppress the risks or is it statistical/anecdotal suggestion?
Make sure that your people are happy. That way they won't leave.
Make sure that they know that they won't be hurt if they look elsewhere
for alternatives [after all, we are a startup with the usual
ups-and-downs]. That way you won't be blindsided if they actually leave.
>
> 3) What are the top 3-5 decision tradeoffs that a VP Engineering has
> to make to deliver software - i.e. not problems here, but just
> decisions that have to be made between deliving in one way vs.
> another?
We have to take into account the following:
- how important is it to our customer(s)
- who all can do the job
- who all are available (or when will they become available)
- who all want to do the job
- how long will it take each of them.
> 3a) How do people determine the optimal decision for those tradeoffs?
>
>
> Any input on these questions - even if only for a subsection would be
> greatly appreciated. I hope it actually spurns some good discussionn
> because my guess is that different people have different opinions.
- Previous message: lilburne: "Re: How do you make decisions that optimize software quality?"
- In reply to: Andrew: "How do you make decisions that optimize software quality?"
- Next in thread: clifford shelley: "Re: How do you make decisions that optimize software quality?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|