Misconceptions on Software Estimation, Real-time Framework Helene


Summary of my bookmarked links and Github repositories from Oct 23rd, 2023

Links

  • Someone saying 'No, it's less effort than that!'?

    I want you to act as a website summarizer. I have a blog where I post links to articles or github repositories I've found over the week. Each link should have a brief summary. I will provide you the content of a website. You will write a summary that is less than 100 words long. Here is the content for the first link: 2022-01-15'No, it's less effort than that! There is back-and-forth as the estimates are questioned for being too high, almost never for being too low. Often, stakeholders outside the development team, with limited technical know-how or insights into the codebase, question team estimates, saying something like 'No, it's less effort than that!'. They aim to push the team to give a 'better' estimate, where 'better' means a lower estimate. Stakeholders and Development teams who participate in these discussions, assuming estimates can be negotiated down, are going down a path of diminished trust and further issues down the line: Finally, an agreed-upon estimate is provided with much grumbling. Most of the time, nobody is happy; everybody feels compromised. The most important stakeholder, the business, is especially compromised as a bad expectation was set on when the software will be delivered to the customer. Both quotes above are from the article Is tasking developers with creating detailed estimates a waste of money? In this post, I will share how it's a mistake for external stakeholders to push for a lower estimate without new facts impacting the effort. In addition, I will share how development teams can move their stakeholder dialogue into a much more productive discussion. Does pushing for lower estimates make sense? No, it's less effort than that Statements pushing for a lower estimate can be valid, especially when discussing a story with a colleague in your team and when it's backed up with facts. However, if the stakeholder making this claim is not part of the development team, doesn't know what needs to happen when implementing the story, and doesn't bring any new facts. In that case, making this claim is like starting a conversation with a meteorologist, saying: Hey meteorologist, the weather forecast for tomorrow will not be this bad! Let's cover why this is so and how to move the discussion forward! Pushing for a lower estimate is like negotiating better weather with the meteorologist! The fact is the meteorologist doesn't control the weather. The meteorologist uses his knowledge and observing data to forecast how the weather will be. In the same way, the development team doesn't control the actual effort - only by a tiny part. The development team uses their knowledge and data to forecast expected effort. They use established team velocity, review data on complete stories, and continuously improve their process every sprint. What do I mean by saying only by a tiny part? The team can skip parts of their process and deliver lower-quality software. It's not a recommended practice, as teams often pay more later when using this strategy. Also, the team has ways to improve their velocity. However, when giving an estimate, teams need to base estimates on their current throughput rather than expected future throughput. Someone might tell your team, "Well, you just need to put in longer hours!" If this is the dialog in your company, consider finding another place to work. Why? Because it is a recipe for disaster working in an environment like that, as can be seen from these experiences: but then my scrum master and my manager want an x pointed story done within y number of days I work for a consultancy. My managers are paid to not understand this I work in an agency and I'm about to be fired because of this In other words, the team has minimal control over its effort to implement a fixed set of functionality. Next time, when someone starts a conversation about your team's estimate, pushing for a lower estimate without any new insights that will lower the effort, ask them: Do you ever tell a meteorologist: "Your forecast for tomorrow is wrong!" Then, ask them to improve it. This question doesn't make sense because negotiating an estimate is like negotiating with a meteorologist and asking for better weather for tomorrow. There is a better discussion to have. The discussion you need to have instead Building software is complicated and often takes more time than people think. Therefore, stakeholders often expect lower effort and can only rationalize spending a specific amount. What then? In these cases, discuss with your stakeholders: How much can you spend on this story? Discuss what part of the story takes the most time. Discuss where are the biggest unknowns Discuss alternative ways to address #2 and #3 In addition, discuss ways to: slice up the story and deliver it in multiple parts validate each part early, preferably using prototypes Find ways to leave parts of the story out, especially the features that require lots of effort and have the least value. In our next post we will cover how to answer questions such as: When can you deliver feature A? What can you deliver before the end of next quarter? Can we get feature A delivered before the end of next quarter? About Smart Guess We help teams educate stakeholders by providing actionable answers to common misconceptions about estimates. So more teams can use estimates to their advantage, and fewer are held accountable for delivering on impossible deadlines. Like, retweet, or share your thoughts on Twitter about this topic.

Github repositories

  • ZachGoldberg/Startup-CTO-Handbook

    I want you to act as a website summarizer. I have a blog where I post links to articles or github repositories I've found over the week. Each link should have a brief summary. I will provide you the content of a website. You will write a summary that is less than 100 words long. Here is the content for the first link: NOTE: As of October 2023 I'm still working on porting the book content into markdown. Everything is in there (via a .doc to .md auto-converter) but the formatting is all over the place and needs a lot of cleanup still, apologies for my mess in the interim! The Book You can view the latest content of the book in markdown here You can buy the book on amazon (Coming Soon) Link of the latest version of the markdown rendered to PDF The original manuscript (now outdated) can be found as a google doc Welcome Hi, thanks for checking out the Startup CTO's Handbook! This repository has the latest version of the content of the book. You're welcome and encouraged to contribute issues or pull requests for additions / changes / suggestions / criticisms to be included in future editions. Please feel free to add your name to ACKNOWLEDGEMENTS if you do so. The Author Linkedin / Website / Email Licensing See the LICENSE file, but tl;dr - you're welcome to make copies, changes, redistribute etc. so long as you're not reselling, you keep my name/attribution attached, and you keep future versions open under a similar/the same license.

  • quavedev/join

    Quave is actively recruiting for various job positions detailed in its issues section. The firm underscores a bug-free software ethos to enhance user experience. They operate remotely with a flexible 40-hour work week, focusing on results rather than hourly tracking. Their tech stack mainly includes JavaScript, Node.js, React, and other technologies. Candidates should possess strong communication, programming, Git, and Unix skills, alongside proficiency in JavaScript, Node.js, and React.js. They have a preference for individuals with a public university education in Brazil, and those with a background in programming contests, algorithms, and data structures. The application process is outlined for both local and international applicants, emphasizing a swift yet thorough selection procedure.

  • leonardoventurini/helene

    Helene is a real-time, event-driven framework designed for Node.js, Bun, and browser environments, facilitating seamless communication between server and client through events. It offers a collection of React Hooks for easy integration of React applications with the server. The framework comes with core packages such as '@helenejs/server' and '@helenejs/client' for creating a Helene server and connecting to it, respectively. Additionally, it provides an in-memory database with MongoDB-like syntax and a utility set for further ease of integration and extension. This framework is open-source with an MIT license, making it a flexible choice for real-time web application development.