понедельник, 25 апреля 2016 г.
5 Ways to Rethink Software Projects
CIO - My coverage of the panel discussion on how to get beyond project estimates at Agile2013 Nashville garnered a great deal of positive feedback. There was one recurring question, though - Where do we start? - and another common refrain - "My boss would never go for that. This article will answer the question and provide at least a few hints for conquering the boss' lament. NoEstimates Means Estimates Aren't Bad, Just Not Essential Woody Zuill, a development manager at Hunter Industries, introduced the #NoEstimates Twitter hashtag and addressed the concept in blog posts such as Doing Scrum Without Estimates. Zuill is quick to point out that, while he has experienced some success with the ideas at Hunter, they represent his own opinion. That might be wise, considering the large public pushback on the idea. That pushback may be due to a misunderstanding. Zuill didn't claim that estimates are "bad" in all cases; rather, they're not always essential to the software development process. Alternative decision-making approaches are possible. In other words, while estimates solve a problem, what problem do they solve, exactly? What other ways are there to solve the problem? That's the discussion Zuill wanted to start. Instead of arguing can/cannot, let's define estimates and look at some examples of where #NoEstimates is working, in the field, right now. Woody Zuill made quite a splash with his introduction of #NoEstimates on Twitter. For the purpose of this article, an estimate is "a length of time it will take to develop software, determined by human judgment and based on experience." There are many ways to do this. You can break the work down into chunks and add it up, you can look at a variety of similar projects to compare, or you can stick your finger in the air and guess. All of those are estimation techniques. We'll define #NoEstimates as running a software project without any human estimation process. If customers asks, "How long will it take?" that's estimating. If they never have to ask, that's #NoEstimates. Notice that this means we can still estimate the budget for the department, or the rate of customer adoption to do financial projects. The term #NoEstimates is specifically tied to humans using their judgment to predict development effort for a solution that have not yet fully developed. Here are five ways to do just that. 1. Make Starting Amount of Money Small; Deliver Working Software Often J.B. Rainsberger, the author of jUnit Recipes, points out that his first solo software project was just like this. Rainsberger made no promises up front, offering instead to show working software every two weeks - and also allowing the client to fire him with as little as two weeks' notice. This technique may work best for outsourced projects. It also represents a significant amount of risk for the outsourced company, and minimizes risk for the customer. The team turns over working software - not designs, specifications or in-process code - that may have little or no value to the economic buyer. This is essentially what happened with Chrysler's Comprehensive Compensation System (C3). The car maker dropped the existing project, already in progress, in order to "reboot" it as a project that would deliver working software every two or three iterations, each of which was two weeks long. For Chrysler, in 1999, that was a fast deployment process. For internal projects with an existing team, a larger organization might want to look at another approach to #NoEstimates. 2. Fund a Pilot That Delivers Working Software; Then Use Modeling to Forecast Schedule Imagine a high-functioning software team pulling pieces of work from a queue. If the effort involved for each piece of work averages within some reasonable deviation, the team can count the pieces of work accomplished per week and predict, in a sense, when the project will be done. (Management can also change which pieces of work are "required" to change the date.) That may not be as easy as it sounds. To work, the amount of effort per feature needs to normalize, or approach a bell curve, and there can't be any "black swan" events lurking in the weeds. For example, bugs discovered late in the cycle may create extra work that's not modeled. The team also needs a fair amount of data to do this kind of modeling. This typically requires a funded pilot with no defined scope. It might, however, be possible to pull the data from previous projects that were delivered with estimates - by throwing away the estimates and assembling predictions from data. Troy Magennis, a former executive at Sabre Holdings and Travelocity, now with Focused Objective, has done some of the most prominent work in this space. Magennis has also developed predictive models that include complex elements like deviation, cycle time, defects/time for repair and so on. Modeling, Simulation & Data Mining: Answering Tough Executive Questions (Agile 2012) Magennis & Maccherone) from FocusedObjectiveTroy Magennis and Larry Macherone presented on predictive modeling at Agile2012; the algorithm is now a part of LeanKitKan's project management suite. Even without a complex model, most agile teams are capable of producing a burn-down chart that can answer the question, "Is this date and this scope possible?" Someone just has to ask. 3. Move From Contract Negotiation to Partnership The Dynamic Systems Development Method, or DSDM, predates the agile movement. It recognized that, on most projects, people, money and time remain fixed. Quality is something that probably should be fixed, too, as non-working software doesn't actually work. The one thing most flexible is actually scope. Most planning work is eliminated here in favor of developing high-level goals in collaboration with the customer. The team promises to deliver something on week 30, and the two groups meet every week or two to show progress and design the next step. If that sounds a bit like a fairy tale, I understand. At the same time, that's essentially the business model of Menlo Innovations. Based in Ann Arbor, Mich. and founded by Richard Sheridan, former VP of product development at Interface Systems, the Menlo team may establish scope at the outset of a project, but it lets the customer adjust and plan specifics each week. By the end of a budget period, the customer could steer to a place very different that the original goal. The customer gets what it needs in the moment - not what it thought it needed six months ago. In May 2003, Sheridan made the cover of Forbes for his successful gamble to found Menlo. In the 10 years since, the company has continued to grow. Sheridan's current project is a new book, Joy Inc.: How We Built a Workplace People Love. Menlo is doing something right.group sms scheduler apk fpse emulator for android free dv 1394 400 driver vivitar mini camera drivers the eye of minds james dashner pdf avg antivirus business edition 2011 price speedstream 4200 adsl modem driver iomega nas discovery software caterpillar construction tycoon free torent phan mem cardrecovery 3 60