3 ms·
This is how we do estimates. Nothing set in stone, all just a rough guide. However, the "don't estimate" school is just a little crazy. In no other discipline
by hannofcart 4y ago
This is how we do estimates. Nothing set in stone, all just a rough guide.
However, the "don't estimate" school is just a little crazy. In no other discipline would this be acceptable as a doctrine.
Imagine a contractor you hire to build the house shrugging when you ask him how long or how much it will cost.
- noirbot 4y agoThe difference is you're hiring most other trades-people to do a generally fairly routine bit of work and then be done. A lot of programming is about doing unroutine work that has no clearly defined end-state. I've been on teams where estimation is easy - you've got years of roughly the same set of devs doing fairly similar feature/bug work on the same code base to look back on and give an educated guess on sizing. Right now I'm on a team that's mostly doing integrations with third-party systems where our skill levels on the team vary between 20 years and 6 months of experience in the field, let alone this team.
- jesstaa 4y agoContractor is the wrong metaphor. They're building a house based on a plan already designed by an architect. Software isn't the making of a thing, it's the designing of a thing. Ask an architect how long it will take for them to design your dream home.
- ilaksh 4y agoArchitect designing home is the wrong metaphor. Buildings do not have moving parts. Their core structures are almost all fundamentally the same. There are problems to solve, but again, not dynamic systems, and always variations on very well known themes. Programming is usually like building a new type of interdimensional alien spacecraft engine that interfaces with some other alien artifacts. There are usually a lot of unknowns, new concepts, many moving parts, unsolved problems, to build a new invention.
- pillefitz 4y agoDepends, really. Most software is doing basic CRUD and efforts can be estimated reasonably well. Some other software, like your example suggests, is literally rocket science. But even here estimates are typically not too far off.
- Kinrany 4y ago> Buildings do not have moving parts. Of course they do: people, furniture, water, air, heat.
- hannofcart 4y ago> Programming is usually like building a new type of interdimensional alien spacecraft engine that interfaces with some other alien artifacts. If programming indeed was "usually" like that, then there shouldn't be much software getting produced at all. Since building "a new type of interdimensional alien spacecraft engine" is something that's very very unusual, to say the least. :)