How to be a Programmer
  • How to be a Programmer: Community Version
  • LANGS
  • How to be a Programmer: Community Version
    • Appendix A - Bibliography/Websiteography
    • Appendix B - History
    • Contributions
    • Glossary
    • Creative Commons Attribution Share-Alike
    • Summary
    • 1. Beginner
      • Personal-Skills
        • Learn to Debug
        • How to Debug by Splitting the Problem Space
        • How to Remove an Error
        • How to Debug Using a Log
        • How to Understand Performance Problems
        • How to Fix Performance Problems
        • How to Optimize Loops
        • How to Deal with I/O Expense
        • How to Manage Memory
        • How to Deal with Intermittent Bugs
        • How to Learn Design Skills
        • How to Conduct Experiments
      • Team-Skills
        • Why Estimation is Important
        • How to Estimate Programming Time
        • How to Find Out Information
        • How to Utilize People as Information Sources
        • How to Document Wisely
        • How to Work with Poor Code
        • How to Use Source Code Control
        • How to Unit Test
        • Take Breaks when Stumped
        • How to Recognize When to Go Home
        • How to Deal with Difficult People
    • 2. Intermediate
      • Judgment
        • How to Tradeoff Quality Against Development Time
        • How to Manage Software System Dependence
        • How to Decide if Software is Too Immature
        • How to Make a Buy vs. Build Decision
        • How to Grow Professionally
        • How to Evaluate Interviewees
        • How to Know When to Apply Fancy Computer Science
        • How to Talk to Non-Engineers
      • Mentoring
        • How to Be Mentored
        • How to Mentor Others
      • Personal-Skills
        • How to Stay Motivated
        • How to be Widely Trusted
        • How to Tradeoff Time vs. Space
        • How to Stress Test
        • How to Balance Brevity and Abstraction
        • How to Learn New Skills
        • Learn to Type
        • How to Do Integration Testing
        • Communication Languages
        • Heavy Tools
        • How to analyze data
      • Team-Skills
        • How to Manage Development Time
        • How to Manage Third-Party Software Risks
        • How to Manage Consultants
        • How to Communicate the Right Amount
        • How to Disagree Honestly and Get Away with It
    • 3. Advanced
      • Compromising-Wisely
        • How to Fight Schedule Pressure
        • How to Understand the User
        • How to Get a Promotion
      • Serving-Your-Team
        • How to Develop Talent
        • How to Choose What to Work On
        • How to Get the Most From Your Team-mates
        • How to Divide Problems Up
        • How to Handle Boring Tasks
        • How to Gather Support for a Project
        • How to Grow a System
        • How to Communicate Well
        • How to Tell People Things They Don't Want to Hear
        • How to Deal with Managerial Myths
        • How to Deal with Organizational Chaos
      • Technical-Judgment
        • How to Tell the Hard From the Impossible
        • How to Utilize Embedded Languages
        • Choosing Languages
  • Cómo ser un Programador: Versión Comunitaria
    • Apéndice A - Bibliografía/Sitografía
    • Apéndice B - Historia
    • Contribuciones
    • Glossary
    • Licencia Creative Commons Atribución-CompartirIgual
    • Resumen
    • 1. Principiante
      • Personal-Skills
        • Aprende a depurar
        • ¿Cómo depurar dividiendo el espacio del problema?
        • ¿Cómo eliminar un error?
        • ¿Cómo depurar utilizando un registro (Log)?
        • ¿Cómo entender problemas de rendimiento?
        • ¿Cómo solucionar problemas de rendimiento?
        • ¿Cómo optimizar bucles?
        • ¿Cómo manejar el costo de la entrada/salida (E/S)?
        • ¿Cómo gestionar la memoria?
        • ¿Cómo manejar errores intermitentes?
        • ¿Cómo aprender habilidades de diseño?
        • ¿Cómo realizar experimentos?
      • Team-Skills
        • ¿Por qué es importante la estimación?
        • ¿Cómo estimar el tiempo de programación?
        • ¿Cómo encontrar información?
        • ¿Cómo utilizar a las personas como fuentes de información?
        • ¿Cómo documentar de manera inteligente?
        • ¿Cómo trabajar con un código deficiente?
        • ¿Cómo Utilizar el Control de Código Fuente?
        • ¿Cómo realizar pruebas unitarias?
        • Tomarse descansos cuando te sientes bloqueado
        • ¿Cómo reconocer cuándo es hora de ir a casa?
        • ¿Cómo lidiar con personas difíciles?
    • 2. Intermedio
      • Judgment
        • ¿Cómo equilibrar la calidad contra el tiempo de desarrollo?
        • ¿Cómo gestionar la dependencia del sistema de software?
        • ¿Cómo decidir si el software es demasiado inmaduro?
        • ¿Cómo tomar una decisión de compra frente a desarrollo interno?
        • ¿Cómo crecer profesionalmente?
        • ¿Cómo evaluar a los candidatos en una entrevista?
        • ¿Cómo saber cuándo aplicar conceptos avanzados de ciencias de la computación?
        • ¿Cómo hablar con personas no ingenieras?
      • Personal-Skills
        • ¿Cómo mantenerse motivado?
        • ¿Cómo ser ampliamente confiado?
        • ¿Cómo hacer equilibrio entre tiempo y espacio?
        • ¿Cómo realizar pruebas de resistencia?
        • ¿Cómo equilibrar brevedad y abstracción?
        • ¿Cómo aprender nuevas habilidades?
        • Aprender a escribir
        • ¿Cómo hacer pruebas de integración?
        • Idiomas de comunicación
        • Herramientas pesadas
        • ¿Cómo analizar datos?
      • Team-Skills
        • ¿Cómo gestionar el tiempo de desarrollo?
        • ¿Cómo gestionar los riesgos del software de terceros?
        • ¿Cómo gestionar a los consultores?
        • ¿Cómo comunicar la cantidad adecuada?
        • ¿Cómo disentir honradamente y salir airosos?
    • 3. Avanzado
      • Compromising-Wisely
        • ¿Cómo Combatir la Presión del Cronograma?
        • ¿Cómo Entender al Usuario?
        • ¿Cómo Obtener un Ascenso?
      • Serving-Your-Team
        • ¿Cómo Desarrollar el Talento?
        • ¿Cómo Elegir en Qué Trabajar?
        • ¿Cómo Obtener lo Mejor de tus Compañeros de Equipo?
        • ¿Cómo Dividir Problemas?
        • ¿Cómo Manejar Tareas Aburridas?
        • ¿Cómo Obtener Apoyo para un Proyecto?
        • ¿Cómo Hacer Crecer un Sistema?
        • ¿Cómo Comunicarse Bien?
        • ¿Cómo Decir Cosas que la Gente no Quiere Escuchar?
        • ¿Cómo Lidiar con Mitos Gerenciales?
        • ¿Cómo Lidiar con el Caos Organizacional?
      • Technical-Judgment
        • ¿Cómo Distinguir lo Difícil de lo Imposible?
        • ¿Cómo Utilizar Lenguajes Incorporados?
        • Elección de Lenguajes
  • How to be a Programmer: Community Version
    • Appendix A - Bibliography/Websiteography
    • Appendix B - History
    • Contributions
    • Glossary
    • Creative Commons Attribution Share-Alike
    • Summary
    • 1. Beginner
      • Personal-Skills
        • Learn to Debug
        • How to Debug by Splitting the Problem Space
        • How to Remove an Error
        • How to Debug Using a Log
        • How to Understand Performance Problems
        • How to Fix Performance Problems
        • How to Optimize Loops
        • How to Deal with I/O Expense
        • How to Manage Memory
        • How to Deal with Intermittent Bugs
        • How to Learn Design Skills
        • How to Conduct Experiments
      • Team-Skills
        • Why Estimation is Important
        • How to Estimate Programming Time
        • How to Find Out Information
        • How to Utilize People as Information Sources
        • How to Document Wisely
        • How to Work with Poor Code
        • How to Use Source Code Control
        • How to Unit Test
        • Take Breaks when Stumped
        • How to Recognize When to Go Home
        • How to Deal with Difficult People
    • 2. Intermediate
      • Judgment
        • How to Tradeoff Quality Against Development Time
        • How to Manage Software System Dependence
        • How to Decide if Software is Too Immature
        • How to Make a Buy vs. Build Decision
        • How to Grow Professionally
        • How to Evaluate Interviewees
        • How to Know When to Apply Fancy Computer Science
        • How to Talk to Non-Engineers
      • Personal-Skills
        • How to Stay Motivated
        • How to be Widely Trusted
        • How to Tradeoff Time vs. Space
        • How to Stress Test
        • How to Balance Brevity and Abstraction
        • How to Learn New Skills
        • Learn to Type
        • How to Do Integration Testing
        • Communication Languages
        • Heavy Tools
        • How to analyze data
      • Team-Skills
        • How to Manage Development Time
        • How to Manage Third-Party Software Risks
        • How to Manage Consultants
        • How to Communicate the Right Amount
        • How to Disagree Honestly and Get Away with It
    • 3. Advanced
      • Compromising-Wisely
        • How to Fight Schedule Pressure
        • How to Understand the User
        • How to Get a Promotion
      • Serving-Your-Team
        • How to Develop Talent
        • How to Choose What to Work On
        • How to Get the Most From Your Team-mates
        • How to Divide Problems Up
        • How to Handle Boring Tasks
        • How to Gather Support for a Project
        • How to Grow a System
        • How to Communicate Well
        • How to Tell People Things They Don't Want to Hear
        • How to Tell People Things They Don't Want to Hear
        • How to Deal with Managerial Myths
        • How to Deal with Organizational Chaos
      • Technical-Judgment
        • How to Tell the Hard From the Impossible
        • How to Utilize Embedded Languages
        • Choosing Languages
  • Как быть программистом: Community Version
    • Приложение A - Библиография/Список сайтов
    • Приложение B - История
    • Участие в проекте
    • Глоссарий
    • Creative Commons Attribution Share-Alike
    • Содержание
    • 1. Начинающий программист
      • Personal-Skills
        • Научитесь отлаживать
        • Как отлаживать, разделяя пространство проблемы
        • Как устранять баги
        • Как отлаживать, используя логи
        • Как определять проблемы производительности
        • Как устранять проблемы производительности
        • Как оптимизировать циклы
        • Как справиться с расходами на операции чтения и записи
        • Как управлять памятью
        • Как устранять плавающие баги
        • Как научиться проектировать программы
        • Как экспериментировать
      • Team-Skills
        • Почему важно оценивать задачи
        • Как оценивать время на разработку
        • Как искать информацию
        • Как спрашивать людей
        • Как документировать правильно
        • Как работать с плохим кодом
        • Как использовать системы контроля версий
        • Как писать юнит-тесты
        • Делайте перерывы, когда вы в тупике
        • Как понять, когда идти домой
        • Как вести себя с трудными людьми
    • 2. Программист среднего уровня
      • Judgment
        • Как балансировать качество и время разработки
        • Как управлять зависимостями
        • Как оценивать стороннее программное обеспечение
        • Как решить: покупать программу или писать свою
        • Как расти профессионально
        • Как проводить собеседования
        • Как понять, когда применять высокие технологии
        • Как разговаривать с неинженерами
      • Personal-Skills
        • Как сохранять мотивацию
        • Как заслужить доверие
        • Как балансировать процессорное время и память
        • Как проводить стресс-тестирование
        • Как балансировать краткость и абстракцию
        • Как осваивать новые навыки
        • Научитесь печатать вслепую
        • Как проводить интеграционное тестирование
        • Языки взаимодействия систем
        • Стандартные технологии
        • Как анализировать данные
      • Team-Skills
        • Как управлять временем разработки
        • Как управлять рисками, связанными со сторонним программным обеспечением
        • Как руководить консультантами
        • Как соизмерять количество общения
        • Как честно выражать несогласие
    • 3. Продвинутый программист
      • Compromising-Wisely
        • Как справляться с давлением графика
        • Как понять пользователя
        • Как получить повышение
      • Serving-Your-Team
        • Как развивать таланты
        • Как выбрать, над чем работать
        • Как получить наибольшую отдачу от коллег
        • Как разделять задачи
        • Как распределять скучные задания
        • Как получить поддержку для проекта
        • Как развивать систему
        • Как качественно взаимодействовать
        • Как сообщать неприятное
        • Как справляться с менеджерскими мифами
        • Как справляться с организационным хаосом
      • Technical-Judgment
        • Как отличить сложное от невозможного
        • Как использовать встроенные языки
        • Выбор языка программирования
  • How to be a Programmer 中文版
    • 词汇表
    • 附录 A - 书目/网站目录
    • 附录 B - 历史
    • Contributions
    • Creative Commons Attribution Share-Alike
    • How to be a Programmer 正體中文版
    • 1. 入门
      • Personal-Skills
        • 學習除錯
        • 如何通过分割问题 Debug
        • 如何移除一个错误
        • 如何使用日志调试
        • 如何理解性能问题
        • 如何修复性能问题
        • 如何优化循环
        • 如何处理I/O代价
        • 如何管理内存
        • 如何处理偶现的 Bugs
        • 如何学习设计技能
        • 如何进行实验
      • Team-Skills
        • 为什么评估很重要
        • 如何评估编程时间
        • 如何发现信息
        • 如何把人们作为信息源
        • 如何睿智地写文档
        • 如何在糟糕的代码上工作
        • 如何使用源代码控制
        • 如何进行单元测试
        • 毫无头绪?,休息一下
        • 如何识别下班时间
        • 如何与不好相处的人相处
    • 2. 进阶
      • Judgment
        • 如何在开发质量与开发时间权衡
        • 如何管理软件系统依赖
        • 如何判断软件是否太不成熟了
        • 如何做购买还是构建的决定
        • 如何专业地成长
        • 如何评估面试者
        • 如何决定什么时候使用奇妙的计算机科学
        • 如何与非工程师交谈
      • Personal-Skills
        • 如何保持活力
        • 如何被广泛信任
        • 如何在时间与空间权衡
        • 如何进行压力测试
        • 如何在简洁与抽象间平衡
        • 如何学习新技能
        • 学会打字
        • 如何做集成测试
        • 交流语言
        • 重型工具
        • 如何分析数据
      • Team-Skills
        • 如何管理开发时间
        • 如何管理第三方软件危机
        • 如何管理咨询师
        • 如何适量交流
        • 如何直言异议以及如何避免
    • 3. 高级
      • Compromising-Wisely
        • 如何与时间压力做斗争
        • 如何理解用户
        • 如何获得晋升
      • Serving-Your-Team
        • 如何发展才能
        • 如何选择工作的内容
        • 如何让你队友的价值最大化
        • 如何划分问题
        • 如何处理无聊的任务
        • 如何为工程获取支持
        • 如何发展一个系统
        • 如何有效地沟通
        • 如何告诉人们他们不想听的东西
        • 如何处理管理神话
        • 如何处理组织混乱
      • Technical-Judgment
        • 如何从不可能中找到困难的部分
        • 如何使用嵌入型语言
        • 选择语言
  • How to be a Programmer 中文版
    • 词汇表
    • 附录 A - 书目/网站目录
    • 附录 B - 历史
    • Contributions
    • Creative Commons Attribution Share-Alike
    • How to be a Programmer 中文版
    • 1. 入门
      • Personal-Skills
        • 学会 Debug
        • 如何通过分割问题 Debug
        • 如何移除一个错误
        • 如何使用日志调试
        • 如何理解性能问题
        • 如何修复性能问题
        • 如何优化循环
        • 如何处理I/O代价
        • 如何管理内存
        • 如何处理偶现的 Bugs
        • 如何学习设计技能
        • 如何进行实验
      • Team-Skills
        • 为什么评估很重要
        • 如何评估编程时间
        • 如何发现信息
        • 如何把人们作为信息源
        • 如何睿智地写文档
        • 如何在糟糕的代码上工作
        • 如何使用源代码控制
        • 如何进行单元测试
        • 毫无头绪?,休息一下
        • 如何识别下班时间
        • 如何与不好相处的人相处
    • 2. 进阶
      • Judgment
        • 如何在开发质量与开发时间权衡
        • 如何管理软件系统依赖
        • 如何判断软件是否太不成熟了
        • 如何做购买还是构建的决定
        • 如何专业地成长
        • 如何评估面试者
        • 如何决定什么时候使用奇妙的计算机科学
        • 如何与非工程师交谈
      • Personal-Skills
        • 如何保持活力
        • 如何被广泛信任
        • 如何在时间与空间权衡
        • 如何进行压力测试
        • 如何在简洁与抽象间平衡
        • 如何学习新技能
        • 学会打字
        • 如何做集成测试
        • 交流语言
        • 重型工具
        • 如何分析数据
      • Team-Skills
        • 如何管理开发时间
        • 如何管理第三方软件危机
        • 如何管理咨询师
        • 如何适量交流
        • 如何直言异议以及如何避免
    • 3. 高级
      • Compromising-Wisely
        • 如何与时间压力做斗争
        • 如何理解用户
        • 如何获得晋升
      • Serving-Your-Team
        • 如何发展才能
        • 如何选择工作的内容
        • 如何让你队友的价值最大化
        • 如何划分问题
        • 如何处理无聊的任务
        • 如何为工程获取支持
        • 如何发展一个系统
        • 如何有效地沟通
        • 如何告诉人们他们不想听的东西
        • 如何处理管理神话
        • 如何处理组织混乱
      • Technical-Judgment
        • 如何从不可能中找到困难的部分
        • 如何使用嵌入型语言
        • 选择语言
  • 2-Intermediate
    • Judgment
      • Design Patterns
Powered by GitBook
On this page

Was this helpful?

  1. How to be a Programmer: Community Version
  2. 1. Beginner
  3. Team-Skills

How to Estimate Programming Time

PreviousWhy Estimation is ImportantNextHow to Find Out Information

Last updated 5 years ago

Was this helpful?

���ς���ɂ͗��K���K�v�ł��B����͂܂��J����K�v�Ƃ���B����͔��ɑ����̘J�͂�������̂ŁA���ɑ傫�Ȃ��̂����ς���悤�ɋ��߂�ꂽ�ꍇ�ɂ́A���ς���ɂ����鎞�Ԃ����ς��邱�Ƃ������߂��܂��B

�����傫�����̂̌��ς����񋟂���悤�ɗ��܂ꂽ�Ƃ��A�ł������Ȃ��Ƃ̓X�g�[�����邱�Ƃł��B�قƂ�ǂ̃G���W�j�A�͔M���I�ł���A�M�]���Ă��܂��B�X�g�[������ƁA�X�g�[�����Ă��s�����������܂��B�������A����ł̌��ς���́A�����炭���m�Ő����ł͂���܂���B

��~���́A�^�X�N�̎��s�⎎����������邱�Ƃ��ł��܂��B�����I���͂������΁A����͐���l�𐶐�����ł����m�ȕ��@�ł���A���ۂ̐i���������炷�B

���炩�̒����̂��߂Ɏ��Ԃ��Ƃ邱�Ƃ��ł��Ȃ��Ƃ��́A�ŏ��Ɍ��ς����??�Ӗ�����ɖ��m�ɂ���K�v������܂��B���̈Ӗ������ʂł̌��ς����??�ŏ��ƍŌ�̕����ɖ߂��Ă��������B�e�^�X�N��1���ȉ��ɂȂ�܂ŁA�^�X�N�����X�ɏ����ȃT�u�^�X�N�ɍ\���������邱�Ƃɂ���āA���ʂɂ�錩�ς�����������܂��B���z�I�ɂ͒������ő�ł���B�ł��d�v�Ȃ��Ƃ͉����c���Ȃ����Ƃł��B�Ⴆ�΁A�h�L�������e�[�V�����A�e�X�g�A�v��̎��ԁA���̃O���[�v�Ƃ̃R�~���j�P�[�V�����̎��ԁA����ыx�Ɏ��Ԃ͂��ׂĔ��ɏd�v�ł��B���Ȃ����i�b�N���w�b�h�����������̈ꕔ���₵�Ă���ꍇ�́A����̂��߂̍L���\���������ς���ɓ���܂��B����ɂ��A���Ȃ��̏�i�͂��Ȃ��̎��Ԃ��ŏ����ɗ}���邱�Ƃ��ł���悤�ɂȂ�A����Ɏ��Ԃ������邱�Ƃ�����܂��B

���͈Öق̂����ɐ���l�𖄂ߍ��ޗD�ꂽ�G���W�j�A��m���Ă��܂����A�������Ȃ��Ƃ����߂��܂��B�p�b�f�B���O�̌��ʂ�1�‚́A���Ȃ��̐M�����͊����Ă���”\�������邱�Ƃł��B�Ⴆ�΁A�G���W�j�A�́A�{����1��������Ǝv���d���̂��߂�3���Ԃ����ς��邩������܂���B�G���W�j�A�́A2���Ԃ���𕶏���������A2���ԑ��̗L�p�ȃv���W�F�N�g�Ɏ��|���낤�ƌv�悵�Ă��邩������܂���B�������A���̍�Ƃ�1���Ŋ����������Ƃ����o����i���̂悤�ɔ��������ꍇ�j�A����݂܂��͉ߑ�]���̊O�ς����܂��B���Ȃ������ۂɂ���Ă��邱�Ƃ�K�؂ɉŽ�����������͂邩�ɗD��Ă��܂��B�h�L�������e�[�V�������R�[�f�B���O��2�{�̎��Ԃ�v���A���ς��肪�����ł���Ƃ���΁A������}�l�[�W���[�Ɍ�����悤�ɂ��邱�Ƃő傫�ȗ��_�������܂��B

����ɖ����I�Ƀp�b�h�B���Ȃ��̃A�v���[������܂������Ȃ��ꍇ�A�^�X�N�ɂ͂����炭1��������܂����A10���������Ă����܂��܂���B�����łȂ��ꍇ�́A���Ȃ��Ƃ��A�m���̌��ς���ɂ���ĕ��ϓI�ɏd�ݕt������܂��B���ʂ��Č��ς�������蓖�Ă邱�Ƃ��ł��郊�X�N�v���́A�X�P�W���[���ɓ���K�v������܂��B����1�T�Ԃ�1�l���a�C�ɂȂ邱�Ƃ͂܂�����܂���B�������A�����̃G���W�j�A��������K�͂ȃv���W�F�N�g�ɂ͕a�C������܂��B���l�ɋx�ɂ̎��ԁB�����āA�S�ГI�ȌP���Z�~�i�[������������m���́H���ꂪ�����ł���ꍇ�́A�����\��܂��B�������A���m�̖��m���A�܂��� unk-unks ������܂��B��`�ɂ��Unk-unks�͌•ʂɌ��ς��邱�Ƃ͂ł��܂���B���ׂĂ�unk-unks�̃O���[�o���ȍL���\�������쐬������A��i�ɘA�����鑼�̕��@�ł��������������肷�邱�Ƃ��ł��܂��B�������A���Ȃ��̏�i�ɔނ炪���݂��Ă��邱�Ƃ�Y��邱�Ƃ͂ł��܂���B�����āAunk-unks���l������Ă��Ȃ��ƌ��ς��肪�\��ɂȂ�̂́A��ϊȒP�ł��B

��[���‹��ł́A��Ƃ��s���l�Ɍ��ς����������悤�ɂ��Ă��������B�܂��A��[���S�̂Ō��ς����??�R���Z���T�X�𓾂悤�Ƃ���K�v������܂��B�l�X�͋Z�p�A�o���A�����A�����Ď��M�̓x�������傫���قȂ�܂��B���͂ȃv���O���}�[���������g�𐄒肵�A�ア�v���O���}�[�����̐���l��ێ����Ă���Ƃ��ɂ́A�J���~�e�B���������܂��B�S�̂̃�[�������ς���Ƀ��C�����Ƃɍ��ӂ���Ƃ����s�ׂ́A��[���̗����𖾊m�ɂ��A���\�[�X�̐�p�I�ȍĊ��蓖�Ă̋@����”\�ɂ���i�Ⴆ�΁A���ア��[�������o�[�����苭����[���ɕ��S���ڂ��Ȃǁj�B

�]�����邱�Ƃ��ł��Ȃ��傫�ȃ��X�N������ꍇ�́A���Ȃ��̃}�l�[�W���[���R�~�b�g���Ă��Ȃ��قNj��͂ɏq�ׁA���X�N����������ƒp�����������̂ɂȂ邱�Ƃ͂��Ȃ��̋`���ł��B���̂悤�ȏꍇ�ɂ́A�K�v�Ȃ��Ƃ�����΁A���X�N�����炷���߂ɍs���邱�Ƃ�����Ă��܂��B

  • Extreme Programming *���g�p����悤�ɉ�Ђɔ[�������邱�Ƃ��ł���΁A��r�I�����Ȃ��̂����ς��邾���ł悭�A����͂����Ɗy�������Y�I�ł��B

Next

How to Find Out Information