Daily Archives: May 22, 2012

How to Advance Lean Software Development

The Japanese word Muda loosely translates as waste. The core element of lean manufacturing is to eliminate waste–or, in more North American terms, to "cut the fat." While applying lean concepts to manufacturing may seem straightforward, there is little agreement on what that term even means for software, or if it applies.

I’ll start at the beginning, explaining where lean manufacturing came from, and, apply the lean idea to software development and cover the implications of lean software.

Where ‘Lean’ Came From

You may know that lean comes from Japanese methods, most notably the Toyota Production System (TPS), which was largely created by Taichi Ohno, Toyota’s chief engineer. The word lean, however, did not come from anywhere in the Far East but was first used by two American researchers, James Womack and Daniel Jones, in their 1990 book The Machine that Changed The World: The Story of Lean Production.

The great business success story of the day was McDonald’s, who took a good burger and standardized it. Womack and Jones did the same thing to TPS; they took the practices they observed and made them rules, calling the collection of methods lean."

We’ll talk about the practices in a moment. For now, let’s talk about standards, heavily associated with "lean" and one principle of the 5S method.

The first great paradox of lean is the combination of standardization with continual improvement. After all, if you tell a team to do the same thing every time, how can it experiment with new methods and improve? British author and psychologist John Seddon takes the argument one step further. Not only did Womack and Jones study what the Japanese were doing at the moment and completely miss any improvement opportunities, Seddon says; they also viewed the Toyota Revolution through the lens of 1980′s American business, which was caught in a love affair with standards.

Driving Out (Software) Waste

If practices are supposed to continually evolve, how exactly do you "do" lean? Mary Poppendieck, co-author of two books on lean software, gave me one clue in an interview. "Lean isn’t something you do," she says. "It is a way of thinking."

The simple part of the lean philosophy is the waste. If you have technical staff sitting around, doing nothing, waiting for a build, that is waste. If they are waiting to set up a server, or need training to complete a task, that is also waste. Excess work in progress inventory is waste.

In some ways, waste is in the eye of the beholder. Metrics, measures, estimates, audits, plans and process may all add visibility to upper management–or keep the SOX auditor happy–but the technical team itself may see no benefit at all from the practices.

Under lean software development, your team defines waste in its own terms. If the government, management or a customer requires something that the team decides does not add value, then you do the absolute minimum to satisfy the requirement. After all, anything beyond that would be waste, right?

Using Lean Tools in a Software World

It is far too easy to approach lean as a sort of toolbox or checklist of techniques–apply them all, you might think, and woo hoo, you are lean! Seddon once famously pointed out that the lean "toolbox" was designed to produce cars at a rate to match demand–a very different sort of business model than most of us who produce software. Seddon suggests that lean should be about a way of thinking. I agree.

However, many of the tools of lean production techniques described by Womack and Jones do still apply to software testing. Consider them solutions that came from a different kind of thinking about manufacturing. The challenge of lean software development is not to copy the tools below; rather, it is to apply the same sort of thinking to our work and drive improvements in the flow of value.

- Create continuous, one-piece flow.
- Achieve pull.
- Limit work in progress.
- Improve the work area to eliminate needless motion.
- Limit scrap (work thrown away because of defective products).
- Focus on continuous improvement.
- Let’s look at each of these carefully.

Create continuous, one-piece flow. Traditional manufacturing methods reduce cost per part by pressing large batches of parts at the same time. Ironically, optimizing one part of the process leads to inefficiencies and a decrease in overall flow. Lean manufacturing focuses on delivering one part, end-to-end. This is sometimes called one-piece flow.

Limit work in progress. To get to one-piece flow, we’ll eliminate multi-tasking. Technical contributors (or pairs) will work on one thing at a time. But what happens when developers want to hand off work, but the testers are busy?

Create a pull system. Instead of "pushing" work to the next step in the chain, we pull it. This means testers don’t take on work until they are ready for it. The programmers in the example above can’t pull work, though, as that would break the work in progress limits. They have to figure out how to help the testers– by testing themselves, perhaps, or by writing test tools or "drivers." Rather than identify a bottleneck and complain about it, you pull systems expose the bottleneck and fix it, thus increasing throughput. See how it’s starting to work together?

Improve the work area to eliminate needless motion. The classic example is a worker walking several feet to grab a letter, sort it into one of five bins and repeat the process for a whole pile of mail. Instead, bring all the work items together so he can sort without walking.

The objects in software are different–compilers, databases, continuous improvement (CI) frameworks and version control–but the reality is the same. Too many programmers live with code on different environments, with build systems that take too long and with design changes sent via email and out of date before they are even read.

If your technical staff is asking questions about "correct" system behavior, and waiting hours or days to get an answer, then you have the same problem. The lean software solution is to get the person who can answer the question in the room–either by embedding the customer directly in the team room, or, for a technical question, pairing new programmers with more experienced staff so they dont get stuck.

Limit scrap. The most obvious example of this is reducing the amount of defects that escape to production–and, if possible, preventing them even from getting to a tester. After all, if testers find a defect, they have to stop, reproduce the problem, document it, pass it back to a developer to fix, wait and then retest. Preventing the defect eliminates handoffs, dead time and rework.

While these tasks can’t always be eliminated, they can often be streamlined. The tester might mention in passing the defect and work directly with the developer to get it fixed, instead of a more formal (read: slow) document/triage/handoff/retest process.

Did you like this? Share it:

Nuclear Decommissioning Authority awards £140m IT outsourcing contract to Atos

The body responsible for nuclear decommissioning in the UK has awarded a £140 million IT outsourcing contract to Atos.

The Nuclear Decommissioning Authority’s (NDA) procurement arm, Shared Services Alliance (SSA), awarded the five-year contract to Atos, which covers all IT services for Sellafield, Magnox, National Nuclear Laboratories and Low Level Waste Repository.

It expects to save more than 30 percent over five years by consolidating and modernising the IT infrastructure across the entire estate.

Keith Gibson, project manager at the SSA, said: "[This contract] signals a period of significant change with the new contract having a strong focus on investment and future benefits realisation.

"It will reduce costs by simplifying IT support arrangements and provides a solid platform for future developments."

Atos will provide services including networking, desktop, applications, hosting, service integration and management to more than 18,000 end users located at over 30 locations.

Source:http://news.idg.no/cw/art.cfm?id=64533103-E55E-DB55-573A89E10BCF7F73

Did you like this? Share it:

Worldwide IT outsourcing market grew 7.8 per cent in 2011

Worldwide IT outsourcing (ITO) revenue totalled $246.6 billion in 2011, a 7.8-per cent increase from 2010 revenue of $228.7 billion as India-based IT services providers and cloud-based services delivered the highest growth rates, according to a report by technology market research firm Gartner Inc.

"Revenue cannibalisation resulting from client adoption of industrialised, and often cloud-based, services risks muting the growth opportunities for the ITO providers that are heavily weighted in infrastructure outsourcing," said Bryan Britz, research director at Gartner.

"Strategies will vary as clients are likely to pursue hybrid cloud strategies requiring providers to deliver some asset-light and some asset-heavy offerings – which will result in varying growth trajectories among competitors over the next several years,” Britz added.

IBM maintained the No 1 position, as its revenue grew 7.8 per cent, and its revenue accounted for 10.9 per cent of ITO revenue. IBM was the No 1 ranked provider in all regions.

HP grew below the market growth rate, but retained the No 2 worldwide market share position with 6.1 per cent market share. Fujitsu, helped by currency gains, overtook CSC for the No. 3 worldwide market share position in 2011.

Forty-three providers booked 2011 revenues of $1 billion or more. This group of providers collectively grew by 9.5 per cent during 2011. After excluding India-based IT services providers, cloud-centric providers, and providers that made sizable acquisitions during the year, the remaining group of large ITO providers grew by only 6.5 percent during 2011.

"For many leading providers in the ITO market, 2011 revenue results demonstrate how challenging simply maintaining a market share position has become, much less gaining share – and this challenge is likely to worsen over the next few years for providers that do not address these forces," Britz said.

He concluded, "The challenges are likely to spur consolidation to augment growth, posing risk to the consolidators, because acquisitions have been a challenge in the IT services market."

 

image

Source:http://www.domain-b.com/infotech/itnews/20120521_worldwide.html

Did you like this? Share it:

IT Outsourcing: Will CIOs Reclaim Their Power?

IT outsourcing has always been a double-edged sword for CIOs. What starts out as a cure for IT’s ills always seems to cause more headaches down the road.

The first IT outsourcing models—single-sourced, vertical deals—promised to bring to bear industry expertise in service delivery and processes. But these all-inclusive relationships often ended up stifling competition, limiting flexibility and even increasing costs.

As the corporate IT environment grew more complex, IT leaders sought help from multiple vendors to meet their needs for technical skills, geographical coverage, and competitive rates. But this "maze of outside vendors" has proven difficult to manage, says Arjun Sethi, vice president and partner in charge of A.T. Kearney’s strategic IT practice. CIOs in multi-sourced IT organizations continue to struggle; there’s no single view of processes, no automated exchange of information between vendors, no consistent SLA management—all of which lead to escalating management costs.

But that’s all about to change, according to Sethi, who says the tipping point will be the adoption of independent cloud-based IT service management tools. These systems will not only streamline vendor relationships and service management, he says, but also enable CIOs to reassert control over IT by taking the process piece back in-house.
CIO.com talked to Sethi about his predictions for the future or corporate IT power and the IT outsourcing model he envisions for the future.

CIO.com: IT outsourcing has always been fraught with management challenges for corporate IT. What are the biggest changes you’ve observed in this area in recent years?

Arjun Sethi: We have observed several key changes in the last five years that have fundamentally changed the structure of the IT outsourcing market:

It service quality is now judged more based on achieving the desired business outcomes than the underlying technical performance and availability. The distinction between business outcomes and IT performance has largely disappeared.

IT services are delivered in a more integrated manner from different locations around the globe—or virtually.

New vendors are challenging traditional outsourcers with solutions that deliver capabilities at a lower price point.

The need to manage IT operations seamlessly across a multi-vendor environment has increased.

CIO.com: You look at the new tools and changes taking place in end user service management (EUSM)—one of the first areas of IT to go out the door—as a bellwether for the rest of IT services. What are you seeing?

Sethi: Cloud-based EUSM tools provide a unified view into the root causes of incidents for tracking, measuring and improving performance—cradle to grave—from both end user and vendor management perspectives. They have put the CIO and their IT department in the driver’s seat by enabling them to view the delivery process from issue initiation to problem resolution, regardless of which or how many vendors perform a given task. Empowered by cloud delivery and process commoditization, enterprises have real potential to take back control of their EUSM choices. We believe other towers of service will follow.

CIO.com: You say that now is the time for CIOs to take back control of IT processes and vendor management. But having outsourced a significant portion of IT to date, have they retained the skills necessary to do this?

Sethi: That’s perhaps the most important question. It is both a risk and an opportunity. Indeed, with all of the outsourcing over the last many years, organizations have lost some of the key content and contextual knowledge required to run their IT operations. We find that many IT organizations who are heavily outsourced sometimes do not readily have basic—and oftentimes critical—information like asset inventory or a good understanding of root causes driving IT issues. Only when a high-severity issue occurs do organizations deploy detailed root cause analysis. It takes substantial time to then figure out the problem across the entire IT stack—from the application source code to the middleware to the underlying infrastructure. More often than not, that process leads to debate and no one takes accountability because different vendors (or the company itself) own different parts of IT.

On the flip side, this is an opportunity is to take back control, rebuild the necessary skill set, and get in front of this issue, leveraging new service management-enabled opportunities.

Source:http://www.cio.com/article/706759/IT_Outsourcing_Will_

CIOs_Reclaim_Their_Power_?taxonomyId=3154

Did you like this? Share it:

Blank Check or Set a Budget? How to Fund Agile Software Projects

Are you interested in exploring the agile methodology for developing software at your company, but you’re worried that it feels like writing a blank check to the developer? It’s a commonly held belief among companies looking for outsourced software development that agile could potentially cost more than traditional methodologies. However, the nature of how agile development works, combined with a well-defined structure for funding it, ensures that you can produce a great piece of software without breaking the bank.

Two approaches to funding Agile – Fixed Budgeting Approach

The first step to ensuring that your company’s agile development meets your budget requirements is deciding upon whether to go with a fixed budget or continuous funding. A fixed budget is exactly what it sounds like–your company sets the maximum amount that they’re willing to spend for the software, and the development team works on the project until they hit the budget ceiling. Fixed budgeting is a good funding approach for companies that are not entirely familiar with the agile development process, and they want to make sure that there is a distinct budget cap.

Because the agile development process insures that you have a finished piece of software at the end of every sprint, you’re saving time and money with either continuous funding or fixed budgeting.

A fixed budget doesn’t mean you end up with an unfinished project. Instead, agile development works hand-in-hand with fixed budgeting because stages of the project (or sprints) are each completed within a set amount of time; at the end of every sprint you have a complete piece of software as well as an update on how much of the budget is left.

The development team covers the most important and critical features in the first sprint, shows you the result, and you give the  green light for the second sprint to add more features, work out bugs, or even take the software in a different direction if that’s what market conditions require. Though it may not be as comprehensive and feature-rich as you might want in the future, it’s still a solid version 1.0 that you can beta-test since the most critical features are already developed.

Funding Agile – Continuous Funding Approach

Continuous funding is typically used by more experienced companies that know how agile works and are confident in the development team. The company outlines what they need, the team figures out how long it will take, and they create a detailed prioritization of the product backlog of features, separating those features into a smaller backlog for each sprint. If they reach the end of the sprint without fully completing all the features, they take it out and move on with what works instead of dragging out the deadline for who knows how long trying to figure out just one bug. The difference between continuous funding and a fixed budget is that continuous funding allows the development team to work on critical and non-critical features at the same time because the budget allows for more time to continue working on various features rather than focusing only on the mission-critical ones.

The Best Part About Agile? You Save Money Either Way

Because the agile development process insures that you have a finished piece of software at the end of every sprint, you’re saving time and money with either continuous funding or fixed budgeting. Instead of waiting for months or years to see the end result, you get a real, workable update within a specific period of time, giving your company the opportunity to evaluate and decide whether the project is moving in the right direction. Having these mini releases also allows you to gather more funding because you can release the software, get feedback from your users (or the market), then see if it’s worth getting additional funding for an improved version, or determine whether it’s time to go back to the drawing board. Either way, the agile development process helps you make sure that your company doesn’t sink too much money into software development. The agile methodology does quite the opposite, in fact.

Source:
http://nearshoreamericas.com/fund-agile-software-development/

Did you like this? Share it: