Agile Software Development Conference
Using an Agile Software Process with Offshore. Development. One of the fundamental tenets of any agile software methodology. Furthermore agile methods put a large premium.
As the. agile manifesto states . Cockburn's book spends a lot of time talking about the. Another trend that's been grabbing the software development world. Offshore development seems opposed to agile development in. For a start it immediately goes against the notion.
Fred Hilkowitz is currently a principal at Optionality Consulting and will be joining the Founder Institute in the fall. He has held numerous product development. Effective communication is a fundamental requirement for agile modeling. You need to recognize that you have several.
Secondly most offshore organizations favor the. So the fundamental question is whether agile techniques can be. If so how does it compare to using an. I'll use here for non- agile)? The experiences I'm writing about here are based on work done.
Thought. Works. We opened an office in. Bangalore India in 2. Bangalore based team. We've also done some offshore development with.
Australian offices. Free Download Crack For Plant Tycoon Seed there. In these projects we've committed to using as. In this. essay I'll describe some of the lessons we've learned so far. To help provide some context, it's worth talking a little about. Bangalore office.
- Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative.
- This article discuses how to use an agile approach for software process improvement.
We expected the. office to be used primarily as an offshore development environment, so. The majority were hired. It was very important to us that we retained. India. As a result. At the beginning we brought over several more experienced US.
XP practices we've come to enjoy. Currently. we have about 1. Bangalore. Lessons Learned. Microsoft Office Excel 2007 Clubic Antivirus. Use Continuous Integration to Avoid Integration. Headaches. I've heard several stories about problems with integrating.
Even with a lot of care put into. So from. the beginning we've put everyone on a single code base, with.
Cruise. Control running to both build and run tests. This way everyone. Everyone has been delighted with how well this works. Its. main benefit is that problems that plague other groups with. The continuous integration and.
Cruise. Control's web page allows all sites to see what's going. First thing in the morning you can check the Cruise. Control. web page to see what changes have been made by the other sites.
It. provides an easy way to catch up on what's going on at the other end. This does require good build discipline, where developers.
It's generally accepted practice that if you commit. Cruise. Control that says that your.
A late night bad build is much. Although world- wide Continuous Integration is resoundingly.
Communication pipes aren't as. In general we keep the build servers. The longer the communication lines are, the more they are.
All of these issues would mitigated by a clustered. We have found that some source- code control systems are. It's worth. spending time on finding ways to speed up check- out times, and. Interestingly people assume that these communication problems. India - but. we've found problems often occur with the infrastructure in the. Continuous Integration requires good connectivity.
Even with the best connectivity, however, there can be. You'll need to build good test doubles. Have Each Site Send Ambassadors to the Other Sites. As I've said above, agile methods stress the importance of. Even if everyone cannot be co- located. From the beginning we.
US team. present in India to facilitate the communication. Such an ambassador. US based people and thus adds his personal contacts. We've now expanded this to several levels. We found it useful. US developer and a US analyst to India to communicate on.
It's also valuable to send. India to the US team. The plane fares soon repay. One of the benefits of a business- oriented ambassador on the.
Building software off just a list of requirements. The why often makes a big. An important part of the ambassador's job is to communicate. On any project there's a lot of informal communication. While. much of this isn't important, some of it is - and the trouble is that.
So part of an ambassadors job is to. We usually rotate the ambassadors every few months (and in. This. makes it easier for the ambassadors, who don't want to be away for too. It also allows more people to get to know the remote team by. In choosing ambassadors it's very. Some. people don't want to spend several months thousands of miles away from. We've also found that it's important for project managers to.
Much of a project manager's job is to. Experience working on both side of the telephone line is. Ambassadors are an important part of trust building and. As a result it's essential to send. If a. project runs for a while without ambassadors in place. Ambassadors reduce this risk, but need to. Don't Underestimate the Culture Change.
One of the hardest parts of introducing agile methods into an. Indeed we've found that. Many companies operate with a command and control model. To make agile methods work you need much more autonomy and decision. We find this to be a big problem in western companies, but. Asia since Asian cultures reinforce.
Beware that polite acceptance is often a sign of an. In addition western. The bad news for this is that getting teams to be more. You can never assume that problems will be raised, even when. Getting people used to a distributed control style. But there is good news. Once people realize they have the.
Several of our Indian team told me how their friends. Offshore team. members gain the trust the understanding to make decisions instead of. For me one of. the most interesting things we will discover is what the longer term.
Asia and in the West. Seeding visits play an important role here. People are much. more likely to raise issues if they have a good personal.
Even talking about these cultural issues can cause. Some (western) industry analysts who saw a draft of. One of our developers in Bangalore said I'm being far. Another commented that it's an issue, but questioned.
But there seems to be some consensus that there are. Asia that reinforce command and control, and. This is a particularly sharp issue for Thought. Works. We have. a pronounced anti- authority attitude that's striking even in the US.
I'm glad to say that we certainly seem to be. Use wikis to contain common information. We've played around with various ways to hold common. Wikis work well because. Any common information can be put there, story cards, design. We've found it's very useful to use.
RSS feed. Wikis are by nature unstructured, and this lack of structure. The team can usually evolve their own. This does mean that. Use Test Scripts to Help Understand the Requirements.
With greater distance, you need to put more ceremony into. We've been able to do that while still.
Increasingly I've found that more mature XP teams use. Such teams get. test scripts written out before the start of an iteration to help. One style that's worked well is for a US based. XP lingo). An Indian based analyst/tester then. This can be done either for. As the scripts are developed the US and Indian analysts.
IM as well as regular (2- 3 times a week). We've found that this has very much helped both the Indian. US customer really understand the requirements. The developers find it easier to ask questions of the Indian. Indian. analyst/tester is still important. Search engines are good, but humans. The biggest problem we found with this technique is to.
As a result on the. Use Regular Builds to Get Feedback on Functionality. When people consider the requirements gathering in agile. At some later. point somebody checks to see if the developers have implemented. On an agile project, the close proximity. Furthermore a partially developed system can also educate.
Having regular integrated builds allows a US customer to pull. While this isn't quite as. To make this work, it's critical to sort out the environment. There's nothing worse than onshore people. Make sure the environment is sorted out. Make sure people look at what's built regularly, even if it's.
The quicker someone looks at a. Often people like to wait until something is. In these situations. Scrum has long advocated that the development team does a.
We've. adopted this practice pretty widely now - we call it a. With remote teams we like to do a remote showcase. Getting the. remote team to do this is another example of taking every. Use Regular Short Status Meetings.