The document discusses various techniques for estimating software project timelines and schedules. It recommends doubling your initial time estimate and then rounding up to the next unit on the time scale (e.g. hours to days). It also stresses accounting for impediments by padding estimates. Other estimation techniques mentioned include defining parameters, using historical data, confidence intervals, fuzzy logic based on lines of code, the Delphi method, and prioritizing requirements based on factors like benefit, penalty, cost and risk. The document recommends preferring hour estimates over days for easier scaling and warns against assuming more developers will solve scheduling problems or negotiating estimates. It provides references for further reading on software estimation.
Stop multiplying by 4: Practical Software EstimationChuck Reeves
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
GDG Cloud Southlake #6 Tammy Bryant Butow: Chaos Engineering The Road To Res...James Anderson
Our Speaker: Tammy Bryant Butow, a Principal Site Reliability Engineer @ Gremlin will talk to us about The Road To Resilience: Chaos Engineering, Disaster Recovery & GameDays.
Abstract:
Over the years much research has been conducted and books have been written on how to improve the resilience of our software. This tech talk will dive deep into three key practices that improve the key measures of tempo and stability (outlined in Accelerate). These 3 practices are Chaos Engineering, Disaster Recovery and GameDays. You'll learn practical tips that you can put into action focused on resource consumption, capacity planning, region failover, decoupling services and deployment pain. You'll also hear how you can get certified in Chaos Engineering - whether you are a beginner or have many years of experience.
Talks about #sre, #tech, #chaosengineering, #performanceengineering, and #sitereliabilityengineering
GDG Cloud Southlake #5 Eric Harvieux: Site Reliability Engineering (SRE) in P...James Anderson
Eric Harvieux, an SRE on Google's Customer Reliability Engineering (CRE) team, will talk to us about Site Reliability Engineering (SRE) in Practice, including a panel discussion with Fidelity, Home Depot, Sabre, and Google SRE Practitioners. We hope to hear how real-life SRE is different than the books.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy. At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Mythbusting Software Estimation - By Tood LittleSynerzip
In this webinar, some of the myths that will be explored include:
Historical Estimation Accuracy
Relative Estimation
The Cone of Uncertainty
Velocity
Scope Creep
Wisdom of Crowds
Read more at https://www.synerzip.com/webinar/mythbusting-software-estimation-webinar-october-2014/
Stop multiplying by 4: Practical Software EstimationChuck Reeves
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
GDG Cloud Southlake #6 Tammy Bryant Butow: Chaos Engineering The Road To Res...James Anderson
Our Speaker: Tammy Bryant Butow, a Principal Site Reliability Engineer @ Gremlin will talk to us about The Road To Resilience: Chaos Engineering, Disaster Recovery & GameDays.
Abstract:
Over the years much research has been conducted and books have been written on how to improve the resilience of our software. This tech talk will dive deep into three key practices that improve the key measures of tempo and stability (outlined in Accelerate). These 3 practices are Chaos Engineering, Disaster Recovery and GameDays. You'll learn practical tips that you can put into action focused on resource consumption, capacity planning, region failover, decoupling services and deployment pain. You'll also hear how you can get certified in Chaos Engineering - whether you are a beginner or have many years of experience.
Talks about #sre, #tech, #chaosengineering, #performanceengineering, and #sitereliabilityengineering
GDG Cloud Southlake #5 Eric Harvieux: Site Reliability Engineering (SRE) in P...James Anderson
Eric Harvieux, an SRE on Google's Customer Reliability Engineering (CRE) team, will talk to us about Site Reliability Engineering (SRE) in Practice, including a panel discussion with Fidelity, Home Depot, Sabre, and Google SRE Practitioners. We hope to hear how real-life SRE is different than the books.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy. At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Mythbusting Software Estimation - By Tood LittleSynerzip
In this webinar, some of the myths that will be explored include:
Historical Estimation Accuracy
Relative Estimation
The Cone of Uncertainty
Velocity
Scope Creep
Wisdom of Crowds
Read more at https://www.synerzip.com/webinar/mythbusting-software-estimation-webinar-october-2014/
How to use data for product development and avoid the common pitfalls in the Build-Measure-Learn development cycle. The key missing component between Measure and Learn for most teams is communication. Find out what to track and how to get your team aligned around the results.
Laure Parsons is Senior Product Manager at Notion (usenotion.com), a tool to help teams communicate and collaborate with their data. This talk was given at Product Camp Seattle in October of 2016.
These are the slides from the Agile Estimation Workshop I gave at AgileChina 2015. The morning session covered opinion-based techniques. The afternoon covered empirical techniques based on cycle time, Little's Law, and Monte Carlo simulation.
Metric Abuse: Frequently Misused Metrics in OracleSteve Karam
This is a presentation I created for RMOUG 2014 which I was sadly unable to attend. However, I wanted to share it with the Oracle community so that you can learn a bit about metrics that are frequently cited, frequently demonized, and frequently misused. In this deck we will go through the steps to diagnose issues and what NOT to blame as you go through the process.
The topics and concepts discussed here were originally formed in a blog post on the OracleAlchemist.com site: http://www.oraclealchemist.com/news/these-arent-the-metrics-youre-looking-for/
The Bug Backlog - An Evergrowing MountainJohan Hoberg
If you are part of a development team working on a game, and you are working in some kind of Agile way, you most likely have a bug backlog, or at least bugs as part of some kind of backlog. The bug backlog looks very different during different stages of the game development cycle - it starts out empty, and then as features and complexity is added, it grows. And in most cases it never stops growing.
More Aim, Less Blame: How to use postmortems to turn failures into something ...Daniel Kanchev
Mistakes and failure are inevitable. Instead of being afraid of them, we should use them as lessons that help identify weak points in our organisations and systems. One way to do this is by writing blameless postmortems. Daniel details exactly how postmortems can help organizations and teams focus on improvement, and how that boosts work morale, makes products better, and strengthens your relationship with customers.
[Scrum Breakfast] How to apply Lean and Kanban in your business - Speaker: Ph...Scrum Breakfast Vietnam
Are you looking for new methodologies to improve your existing processes or are you going to build a learning culture for your organization ?
Do you want to discover how we're applying Lean to improve the quality of our startup companies?
How to Work with Software Engineers (strtupboost 10/18/18)Kate Travers
A (totally unbiased) software engineer's perspective on working with software engineers. Delivered 10/18/18 at "How to Launch a Startup" event with strtupboost.
This August Scrum Breakfast, we have a new speaker - Mr. Pedro Gonzalez - Scrum Master at TINYpulse.
He will bring us an interesting topic about Agile estimation using story points, giving some tips on why relative estimations are far better than absolutes, why we shouldn't spend too long in details, and other issues he has experienced himself with his team.
Lightning talk from PHPTour Lyon 2014, enhanced with more text for online consumption. Topic is transparent caching, and how context aware enhanced Symfony2 HTTP cache helps to archive that and how it works.
How to use data for product development and avoid the common pitfalls in the Build-Measure-Learn development cycle. The key missing component between Measure and Learn for most teams is communication. Find out what to track and how to get your team aligned around the results.
Laure Parsons is Senior Product Manager at Notion (usenotion.com), a tool to help teams communicate and collaborate with their data. This talk was given at Product Camp Seattle in October of 2016.
These are the slides from the Agile Estimation Workshop I gave at AgileChina 2015. The morning session covered opinion-based techniques. The afternoon covered empirical techniques based on cycle time, Little's Law, and Monte Carlo simulation.
Metric Abuse: Frequently Misused Metrics in OracleSteve Karam
This is a presentation I created for RMOUG 2014 which I was sadly unable to attend. However, I wanted to share it with the Oracle community so that you can learn a bit about metrics that are frequently cited, frequently demonized, and frequently misused. In this deck we will go through the steps to diagnose issues and what NOT to blame as you go through the process.
The topics and concepts discussed here were originally formed in a blog post on the OracleAlchemist.com site: http://www.oraclealchemist.com/news/these-arent-the-metrics-youre-looking-for/
The Bug Backlog - An Evergrowing MountainJohan Hoberg
If you are part of a development team working on a game, and you are working in some kind of Agile way, you most likely have a bug backlog, or at least bugs as part of some kind of backlog. The bug backlog looks very different during different stages of the game development cycle - it starts out empty, and then as features and complexity is added, it grows. And in most cases it never stops growing.
More Aim, Less Blame: How to use postmortems to turn failures into something ...Daniel Kanchev
Mistakes and failure are inevitable. Instead of being afraid of them, we should use them as lessons that help identify weak points in our organisations and systems. One way to do this is by writing blameless postmortems. Daniel details exactly how postmortems can help organizations and teams focus on improvement, and how that boosts work morale, makes products better, and strengthens your relationship with customers.
[Scrum Breakfast] How to apply Lean and Kanban in your business - Speaker: Ph...Scrum Breakfast Vietnam
Are you looking for new methodologies to improve your existing processes or are you going to build a learning culture for your organization ?
Do you want to discover how we're applying Lean to improve the quality of our startup companies?
How to Work with Software Engineers (strtupboost 10/18/18)Kate Travers
A (totally unbiased) software engineer's perspective on working with software engineers. Delivered 10/18/18 at "How to Launch a Startup" event with strtupboost.
This August Scrum Breakfast, we have a new speaker - Mr. Pedro Gonzalez - Scrum Master at TINYpulse.
He will bring us an interesting topic about Agile estimation using story points, giving some tips on why relative estimations are far better than absolutes, why we shouldn't spend too long in details, and other issues he has experienced himself with his team.
Lightning talk from PHPTour Lyon 2014, enhanced with more text for online consumption. Topic is transparent caching, and how context aware enhanced Symfony2 HTTP cache helps to archive that and how it works.
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
Retour d'experience du Groupe Express Roularta sur l'intégration de Puppet (mais finalement Chef) dans leur système d'information, permettant en quelques cliques et quelques minutes de mettre en place une ou plusieurs machines de développement parfaitement fonctionnelle et à jour, le tout hébergé sur le cloud Amazon.
Dockerize your Symfony application - Symfony Live NYC 2014André Rømcke
With the advent of docker it is now easier then ever to make sure you develop, test and deploy using the same environment, resulting in no more issues caused by differences or missing libraries. Talk will go into the basics of containers, docker, and showcase how you might setup a basic php + mysql environment for your symfony app.
https://joind.in/12188
Adaptive Case Management Workshop 2014 - KeynoteKeith Swenson
This is the first talk from the 3rd International Workshop on Adaptive Case Management and Non-Workflow BPM. conference overview at: http://acm2014.blogs.dsv.su.se/
Pin the tail on the metric v00 75 min versionSteven Martin
This presentation shows a different approach to metrics. Instead of listing the Top 10 field-tested metrics, we first talk about goals as prerequisites for metrics. Next, we discuss characteristics of good and bad metrics. We end with walking through an activity called “Pin the Tail on the Metric,” a technique to facilitate the critical thinking needed to determine what types of metrics can help your organization discuss trade-offs, options, and ultimately make better forward-looking decisions.
PROFES 2018, Wolfsburg: Talk by Tilman Seifert (Principal IT Consultant at QAware)
=== Please download slides if blurred! ===
Abstract: Processes cannot just be judged as ``good'' or ``efficient''---they must be appropriate for the type of project. As the type of a project changes over time,
the processes must adjust in order to stay efficient and appropriate.
We accompanied the transformation of a large and fast-growing project, using agile development methods and cloud-native technologies, from the very first steps of a prototype to the development of a customer-ready product.
This experience report shows patterns we found on the way.
It argues that systematic process evolution can be done without documentation overhead or relying on questionable process KPIs.
We only used information which is available anyway; this includes our archive of sprint retro boards which allows to create a clear picture of the project's evolution, regarding both the process and the product quality.
Program Studi S1 Sistem Informasi
Fakultas Sains dan Teknologi
Universitas Islam Negeri Sultan Syarif Kasim Riau
Backlink ke website resmi kampus:
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
Referensi ke Graham et.al (2006)
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
3. I'll tell you how I estimate things. I sit down and figure out how long I think it would
take me to do it. Then I double that time and then I push it up to the next point on
the “Time Progression Scale”. Were the “Time Progress Scale” starts off: seconds,
minuets, hours and days. So if I think something is going to take me 4 hours to do.
I will double it to 8 and then I would say it would take me 8 days to get it all
completely done start to finish. And I'm usually right, because there are so many
impediments. If you are the only one doing it yourself your schedule can be very
accurate. Once you have to involve other people, you might as well just make
numbers up. You might as well say “I think this will take me Blue days to get done”
4. Requirements are the key
Measure what is measurable, but make measurable what is not so
-Galileo Galilei
5. “Wordy” Expression
Our new contact form for the sales team to call or email potential leads, will require
the potential leads to provide the following contact information: First and Last name,
Email address, and Phone number
6. Misplaced Modifier
The contact form has fields for entering a valid First and Last Name, Email
address and Phone number
Top Tip: Prevent children from ingesting dangerous medicines by locking
them in a childproof cupboard. 3 children per cupboard is a good fit
-Periwinkle Jones @peachesanscream
7. The contact form has fields for First and Last Name, Email address and
Phone number. All fields are required and must be validated
(202) 456-1111
555-1212
212-867-5309
1-800-MATTRES
911
+44 871 984 6352
+852 2280 2898
+91 11 2679 1234
Valid Phone numbers:
8. fast, rapid, efficient Use a set time: "5 seconds"
valid, including but not limited too,
etc., and so on
Describe what is valid or invalid. use
comprehensive list
maximize, minimize, optimize, at
least, between, several
Be sure to include appropriate values
simple, easy, quick, user-friendly Describe what makes it these
reasonable, when necessary How do you make this judgment?
Source: Software Requirements 2 – Karl Weigers
9. In order to estimate, you must define the parameters of what you are
estimating:
UTF-8
First and Last name must be between 3 and 100 characters
Email complies with RFC 822 and no longer than 300 characters
Phone Number < 25 characters and validated with Foo-Bar REST service
10. Historical data
Dry run / Unit test
Confidence Interval (CI)
It is better to be roughly right than precisely wrong.
- John Maynard Keynes
11. What is the wingspan of a 747
How far is NY from LA
The average house in the United States uses how many gallons/liters of water
per day?
Francis Scott Key wrote the lyrics, but not the music, for the American National
Anthem
28 degrees Fahrenheit is colder than -15 degrees Celsius.
America On Line purchased Netscape.
14. Q. What is the wingspan of a 747
A. 211 ft (64m)
Q. How far is NY from LA
A. 2,808 mi (4,519 km)
Q. The average house in the United States uses how many gallons/liters of
water per day?
A. 350 g (1,324 l)
Q. Francis Scott Key wrote the lyrics, but not the music, for the American
National Anthem
A. True
Q. 28 degrees Fahrenheit is colder than -15 degrees Celsius.
A. False
Q. America On Line purchased Netscape.
A. True
15. Fuzzy Logic / Tee Shirt
Size Average LOC
Very Small 127
Small 253
Medium 500
Large 1,014
Very Large 1,988
Source: Software Estimation 2 – Steve McConnell
17. Bayes Theorem
P A B = 𝑃 𝐵 𝐴) 𝑃(𝐴)
𝑃(𝐵)
When you get information, the level of uncertainty will decrease.
18. Priorities – Urgency Matrix
Important Not Important
Urgent High Priority
Not Urgent Medium Priority Low Priority
Source: Software Requirements 2 – Karl Weigers
19. Priorities – Prioritization Spreadsheet
Source: Software Requirements 2 – Karl Weigers
https://www.microsoftpressstore.com/store/software-requirements-9780735679665
Feature
Relative
Benefit
Relative
Penalty
Total
Value Value % Dev Cost Cost % Dev Risk Risk % Priority
Validate Phone 2 4 8 13.1 1 9.1 1 14.3 0.81
Mark off for contacted leads 5 3 13 21.3 2 18.2 1 14.3 0.84
Report on Data 9 7 25 41.0 5 45.5 3 42.9 0.61
Connect to Service 5 5 15 24.6 3 27.3 2 28.6 0.59
Totals 21 19 61 100.0 11 100.0 7 100.0
20. Politics
Remove people from the problem
Focus on Interests not Positions
DO NOT NEGOTIATE YOUR ESTIMATE!!!!!
21. Final Thoughts
• Prefer hours to days (scale easier)
• Throwing more developers may not solve the problem
• Iterate and be honest
26. Thank You!
Chuck Reeves @manchuck
https://joind.in/11229
Software Estimation: Demystifying the Black Art – by Steve McConnell |
ISBN-13: 978-0735605350
Software Requirements: Practical Techniques for Gathering and Managing
Requirements – by Karl Wiegers
How to Measure Anything: Finding the Value of Intangibles in Business –
by Douglas Hubbard | ISBN-13: 978-1118539279
Dev Hell Podcast - Episode 29: Snappy Answers to Stupid Questions
Editor's Notes
With Companies like Google and Spotify, not caring about deadlines, why should we care about estimating software?
Why should we estimate?
Estimation is not just about meeting deadlines. Managers need to know if the cost of building is worth the effort. Banks, budgets and backers need to gage how their investment is going to be used.
Why should developers Estimate?
Developers own the code
Magne Jørgensen + Stein Grimstad proved If you have any inkling of budget or time line, Your estimate will be biased. Project Managers and Owners know this information and might try to “fit” the cost into what they are willing to spend
What Developers do Wrong?
Developers are capable of taking problems and break it down into smaller parts. When it comes to Estimating, we follow arbitrary means that can cause projects to go over budget or worse, fail completely.
A story about estimation that went “well”
I needed a developer that was working on another project. He was working with someone who has been programming 30 years. Both were not sure on how long it would take to complete the huge laundry list of items. I sat down with both of them, went over the whole project and broke it up into smaller parts. We then came up with estimates for each items, then sat down with the Project Manager to come up with a time line the client was happy with. The project goes along, for a month, then panic. One of the libs we were using was not working with some version of Safari. Everyone panicked to get a fix in. There was fear that we would miss the deadline. Which would set back my project. We got a fix in, deployed all the changes, and when the smoke cleared, we found that we launched a day early.
How did we do it?
When dealing with estimates, you are fighting a battle of uncertainty.
Remember this:
Its easy to estimate what you know
Its hard to estimate what you don’t know
Its very hard to estimate what you don’t know you don’t know
**Use driving to work example**
Requirements – Wordy Expressions
Managers try to “sell” requirements to you. Which means that some times they will add “fluff” to requirements.
Wordy expressions add useless information to a statement
Requirements – Misplaced Modifiers
Misplaced modifier happens when a word, phrase or clause is improperly separated from the word it describes. In this case, we have valid next to first and last name. Valid modifies First and Last name. Does that mean that we can enter an invalid email address or phone number?
Groucho Marx has a famous one: I shot an elephant in my pajamas the other day. How it got into my pajamas Ill never know
Requirements – Clarity
Now that we have cleaned up the format and grammar of the requirement, we now look for smells in the requirement. For example, what is considered a “valid” phone number?
Requirement – Smells
If estimation is a battle for uncertainty, requirement gathering is a battle against ambiguity. Words used in requirements that cause ambiguity, I like to call Requirement smells. Like Code Smells, these words or phrases raise some red flags about the requirements. Take the time to clarify the requirements before making an estimate.
Requirements – Finial
Once you have defined the requirements as best you can, you can now start estimating. We now see that our one requirement for a contact form has grown into a much bigger project then we thought. We need to break down our requirements into smaller parts. Break the requirement into smaller more manageable units. We can then take a look and see which parts have the most uncertainty.
Tools for Estimating
Before getting into some techniques, we are going to need some more information. Using the following tools we can then break down our requirement
Historical data
Take current data about development and proxy it to new requirements. Start tracking metrics like LOC, Number of Functions, Avg LOC / Function. Apply time to each of those metrics to get a rough idea on how long it takes to create each metric: LOC / Hour / Day.
I wrote a script that would run git commit every hour to help with this
Dry run / Unit test
You don’t need to use a full stack testing framework, but you can test out some critical functions. If you have not previous experience with a service, you therefore have no historical data to base your estimate on. Spending an hour or two on testing out the logic, can provide you with better insight on the complexity for the requirement.
Even if you have worked on something similar in the past, do a dry run for the more complex tasks. I was asked to connect to the OH tax service using a SOAP service. In the past I made many SOAP calls, so my estimate reflected that experience. After spending about 15 hours of my 12 hour estimate, I was unable to make the connection for technical reasons and the requirement was dropped (I was told by the developer that I need to use .NET or Java and not PHP in order to use the service).
Confidence Interval (CI)
This is a statistical model that represents uncertainty. It is calculated by using means and variances. We see them in the real world with hurricane paths. They are great because we do not need to “pad” our estimate. The interval uses a High and Low range that represents our 90% confidence that the “True” value is between them.
Calibration Exercise
We are going to do a practice calibration test. Three questions have a number value, for these try use the confidence interval. Three questions will be true or false, do not answer those with null ;).
Repetition
Take a lunch break come back in an hour and try your estimate again. Clear your mind and try the estimate again. Don’t read your 1st estimate before trying again to avoid anchoring to your original estimate.
Pros and Cons
Make a list of things that will happen if your estimate is right and if your estimate is wrong. This helps bring clarity to the problem and remove some bias. After the list, try again
Absurdity Test
Narrow down your range by using absurd values for your CI and making them smaller. For example, for the wingspan of a 747, starting with a range of 1 to 1000 ft. is absurd. Is 80 to 250 ft sound better? What about 180 to 220 ft?
Equivalent Bet
This works on a gut feeling. Imagine a spinner that pays out 90% of the time. You choose between your estimate and betting against the spinner. If you choose the spinner, you most likely not confident your value. If you choose your estimate, you might be overconfident and your range is too wide.
Fuzzy logic
A simple estimation tool to get an idea on effort. Classify features into Very Small, Small, Medium Large, Very Large. You then have an idea on how much work is needed based on Historical data or Industry average. Keep track of your estimate with hours.
Wideband Delphi AKA Group
Based on the statistical Law of Large Numbers. Where by the more information you have, the closer your average is to the true value. This requires a team of at lease 4 people and works best with about 10 total. First choose a coordinator. The coordinator presents the feature requested and takes estimates from each member, and averages the numbers. The coordinator then presents the data to the team. A vote is then cast and if it fails, the team estimates again. It is critical that estimates are kept secret to avoid bias. Traditional Wideband Delphi fails to represent uncertainty since the average is voted on, I recommend that you take ranges and then average the high and low numbers.
Bayes Theorem
As stated in the beginning of this presentation, we are going to avoid math as much as possible. However you cannot talk about probabilities with out talking about Bayes Theorem. It was developed by Howard Bayes in the 17th century and is widely used in many applications today from predictive text to suggested ads. The simplicity of the equation makes for highly complex “Bayesian trees”. The take away from Bayes Theorem is this: when you have more information about a probability, you must change your original estimate. The estimate at the start of a project might not always reflect the estimate half way through. By that point you have more clarity and now can better predict the outcome.
Priorities
Once all the features have estimates attached, how do you set the priorities on when items are going to get done? Most of the time we use order them in High, Medium, or Low. How effective is that? Based on surveys from project managers, you will find that ~85% of your tasks become High, ~10% Medium and ~5% Low. Three level scale is an easy way to avoid this trap. We create a matrix of Importance vs Urgency. By comparing the values, you get a grasp of the priority scale.
Priorities Prioritization Spreadsheet
This is the ultimate way to reduce bias.
Have the customer rate relative benefit for each feature on a scale of 1-9. 9 is extremely valuable.
Have the owners Estimate the penalty on a scale of 1 – 9, 9 means a serious impact on business
Developers Rate the relative on a scale of 1 – 9, 1 is quick an easy. Then rate the technical risk. 1 means you can do in your sleep
Then sort the list descending on priority. The priority is based on the Value % /
Politics
Dealing with the rest of the company can be a challenge. Keep in mind that there will be politics everywhere you go but you can curve some of resistance you will get. When dealing with managers or product owners remember this: You are responsible for the code.
Imagine a scenario where a patient needs to be operated on by a Dr. The patient is on the table and sees the Dr. washing his hands. If the patient yells out to the Dr. to stop washing his hands and get in the OR to start, is the Dr. going to listen? The patient is the boss because he is paying the Dr. but the Dr. is going to act in a manner that benefits the Patient.
Remove people from the problem
Everyone will want everything done yesterday. You also have your own needs for the project that must be met. If you focus on what is best for the project (or better yet the dollar amount), it helps change the perspective. In the example early with connecting to the FooBar Rest service, if development will cost $2,000 plus another $500 per month to maintain, but saves $2.00 per lead. If you only get 2 leads a day, the savings per lead per month is only about $120. If a sales rep is demanding that this feature be implemented, prove that there is a loss per month with this service, make the priority lower.
Focus on Interests not Positions
If the estimate takes the project longer than the ship date, work out with the project owners what you can deliver in the time. Try to get features implemented with known bugs and workarounds that you can fix the ship. If this is needed for a trade show, work out a “white page” demoing the features that you wont be able to deliver
Prefer Hours
Hours scale more in a day then days do in a week.
More Developers
It takes 9 months to make a baby, 9 women cannot make a baby in one month. Developers need to be trained, and oriented to a project.
Iterate
Iterate your estimates in the same way that you iterate code. When you notice a job stopper, inform the party early on in the cycle rather than the end. This will help keep budgets in line and expectations high.