Three Ideas to Consider When Implementing Agile with Distributed Development Teams Tre idee a prendere in considerazione in sede di attuazione agile con team di sviluppo distribuiti
The framework of software engineering has been redefined by introduction of Agile software development concepts. Agile has prompted greater improvement in the life-cycle of a software project. When implementing Agile with an offshore or distributed development teams, there are opportunities to address three aspects of the project. We will cover these three items as well as provide a little background on Agile. Il quadro di ingegneria del software è stato ridefinito da Agile introduzione di concetti di sviluppo software. Agile ha chiesto una maggiore miglioramento del ciclo di vita di un progetto software. In caso di applicazione Agile con una o off-shore team di sviluppo distribuito, ci sono opportunità di affrontare tre aspetti della il progetto. Ti coprire queste tre voci e un po 'di fornire a sfondo Agile.
There are several development tactics introduced by Agile. Most tactics focus attempt to minimize and/or expose risk in developing software in short amount of time. Ci sono diverse tattiche di sviluppo introdotto da Agile. La maggior parte delle tattiche di concentrarsi tentativo di ridurre al minimo e / o esporre a rischio in via di sviluppo software nel breve lasso di tempo. Iteration is the development of software in one unit of time, and this may last from one to four weeks. It includes planning, requirements analysis, design, coding, and testing. Iterazione è lo sviluppo di software in una unità di tempo, e questo può durare da una a quattro settimane. Esso comprende la pianificazione, i requisiti, analisi, progettazione, gestione di codice e di test. Software developed during iteration need not be functional enough to be released as a product in the market, but the objective is to have working software, without bugs, at the end of each iteration. Il software sviluppato nel corso di iterazione non deve essere funzionale abbastanza per essere rilasciato come un prodotto sul mercato, ma l'obiettivo è di avere un software, senza bug, alla fine di ogni iterazione. The team re-evaluates the project priorities at the end of each iteration. Il team di ri-valuta il progetto priorità alla fine di ogni iterazione.
Traditional outsource challenges are amplified and new challenges are created when software development is taken offshore. Esternalizzare le sfide tradizionali sono amplificati e le nuove sfide vengono creati quando lo sviluppo di software è off-shore. These new challenges are mainly in cultural differences, combined with the communication difficulty due to the difference in time and language comprehension. Queste nuove sfide sono principalmente nel differenze culturali, combinata con la difficoltà di comunicazione dovute alla differenza in termini di tempo e di comprensione linguistica. Most importantly, the biggest challenges remain in communicating, transfer of business logic understanding, demand in co-operation in poorly defined projects, unknown and imprecise requirements and lack of customer involvement, differences between customer and vendor, geographical distance, and many more. Più importante, le principali sfide rimangono nella comunicazione, il trasferimento di comprensione della logica di business, la domanda in cooperazione in progetti mal definiti, imprecisi e sconosciuto requisiti e la mancanza di coinvolgimento dei clienti, le differenze tra cliente e fornitore, distanza geografica, e molti altri. To be successful with offshore software development, these hurdles need to be overcome by both the onshore and offshore teams. Per avere successo con il mare aperto lo sviluppo del software, tali ostacoli devono essere superati da entrambe le onshore e offshore squadre.
In plan-driven and Agile as well, face to face communication is stressed to improve communication and understanding of the project. In piano-driven e agile e, faccia a faccia è sottolineato comunicazione per migliorare la comunicazione e la comprensione del progetto. This type of face to face time takes place during each iteration, where plan-driven project is concerned and this took place essentially at the beginning of the project. When face to face time is not possible with the offshore provider, it is beneficial to have each developer answer 3 daily questions: what you did yesterday? what you plan to do today? describe any roadblocks or obstacles in completing the iteration stories? Each developer should answer these question and not simply the offshore project manager. Perhaps the offshore project manager can help in translating the answers to these questions. Questo tipo di faccia a faccia tempo si svolge nel corso di ogni iterazione, se del piano-progetto è orientato in questione e questo si è svolta essenzialmente all'inizio del progetto. Quando faccia a faccia tempo non è possibile con il fornitore di off-shore, è opportuno avere ogni sviluppatore risposta 3 quotidiana domande: che cosa avete fatto ieri? ciò che si pensa di fare oggi? di descrivere le eventuali blocchi o ostacoli il completamento del iterazione storie? Ogni sviluppatore deve rispondere a queste domande e non semplicemente il project manager off-shore. Forse il progetto off-shore manager può aiutare a tradurre le risposte a queste domande.
In case of Agile, face to face meetings are held at all time, usually in the form of daily Scrums, pair programming, iteration retrospectives and iteration planning. In distributed development teams, many times the onshore managers travel offshore to hold meetings with the offshore team, or in other circumstances, managers from offshore travel onshore for meetings. In caso di Agile, faccia a faccia le riunioni si svolgono tutti i tempi, in genere sotto forma di quotidiano Scrums, coppia di programmazione, di iterazione e retrospettive iterazione di pianificazione. Nel team di sviluppo distribuiti, numero di volte che il onshore gestori di viaggio off-shore di tenere incontri con le off-shore team, o in altre circostanze, di manager di viaggio off-shore a terra per le riunioni. One important influence depends on the offshore person visiting the onshore team to absorb the project details and develop/foster relationships. Una importante influenza dipende dalla persona offshore onshore che visita la squadra di assorbire i dettagli del progetto e sviluppare / promuovere relazioni. He should take this know-how from the onsite team in a way that he is knowledgeable enough to answer many questions raised by his offshore team. Egli tiene presente il know-how in loco dal team in un modo che egli è saperla sufficiente per rispondere a molte domande sollevate dal suo off-shore team. In addition, he should be also capable of relating to his team members about the decisions that were taken in his meetings with the onsite team. Depending upon the complexity of the project, a member of the onsite team, with good knowledge in business logic is often sent to work offshore. Inoltre, essi devono anche essere in grado di relative alla sua squadra membri circa le decisioni che sono state prese nella sua incontri con il team in loco. A seconda della complessità del progetto, un membro del team on site, con buone conoscenze in logica di business è spesso mandata a lavorare off-shore.
In implementing Agile projects, a series of processes are utilized. Agile nella realizzazione dei progetti, una serie di processi, sono utilizzate. The development process is not just a single approach. Il processo di sviluppo non è solo un unico approccio. In implementing software offshore development, there are some principles that are followed, which have been termed as Agile Manifesto. Nella realizzazione di software di sviluppo offshore, vi sono alcuni principi che sono seguiti, che sono stato chiamato come Agile Manifesto. These are as follows - Questi sono i seguenti --
➢ Customer satisfaction is achieved by rapid and continuous delivery of useful software. ➢ La soddisfazione del cliente è ottenuta mediante rapido e continuo di consegna di software utile.
➢ Quick delivery of working software within weeks rather than months. ➢ Rapidità di consegna del lavoro all'interno del software settimane piuttosto che mesi.
➢ The principle measure of development progress is derived from the working software. ➢ Il principio di misura i progressi di sviluppo è derivato dalla lavorazione del software.
➢ Any changes in the software may be incorporated later. ➢ Le modifiche del software possono essere incorporati in seguito.
➢ Necessity in having face to face communication for better understanding. ➢ necessità di avere faccia a faccia di comunicazione per una migliore comprensione.
➢ Maintain close relationships between the business people and the developers. ➢ mantenere stretti i rapporti tra i gli uomini d'affari e gli sviluppatori.
➢ Motivation and trust on the individuals make the project implementation successful. ➢ La motivazione e la fiducia da persone fisiche rendere l'attuazione del progetto di successo.
➢ Apply continuous attention to the project design, and try to attain technical excellence. ➢ Applica continuo l'attenzione sulla progettazione del progetto, e cercare di raggiungere l'eccellenza tecnica.
➢ Adapt fast to changing circumstances. ➢ Adapt veloce al mutare delle circostanze.
It was found that the iterative framework brought benefits to Agile software development vendors. Si è riscontrato che il quadro iterativo portato benefici per lo sviluppo di software Agile fornitori. By this approach, the customers could make payments after each iteration. Con questo approccio, i clienti possono effettuare i versamenti dopo ogni iterazione. By paying this way, the customer does not lose or be in a risk to pay the for the whole lot after the completion of the project. Pagando questo modo, il cliente non perdere o di essere in un rischio di pagare l'intero per la partita dopo il completamento del progetto. This brought in commitment from the customer to provide the vendor with better business and motivates the vendor to consider each iteration important. Ha portato in questo impegno da parte del cliente di fornire il migliore venditore con le imprese e motiva il venditore di prendere in considerazione ogni iterazione importante. The method of continuous feedback and communication helps in the offshore development process, but the approach of short iterations has proved to be especially successful. Il metodo di continuo feedback e aiutano a mettere in comunicazione il processo di sviluppo offshore, ma l'approccio di breve iterazioni ha dimostrato di essere particolarmente efficaci.
Another aspect of Agile development is the importance of testing in each iteration. Each iteration should produce automated tests that can be used during each iteration and future iterations as well. The benefits of automated testing is better covered in different articles. However, in the context of this article, it is important for your offshore vendors to deliver automated tests with each iteration. When considering new vendors, ask about their testing strategies. It is better to go with a vendor who believes in automated testing, rather than trying to convince a vendor the benefits of automated testing. Un altro aspetto di sviluppo Agile è l'importanza della sperimentazione in ogni iterazione. Ogni iterazione dovrebbe produrre automatizzata delle prove che possono essere utilizzati nel corso di ogni iterazione e future iterazioni pure. I vantaggi di test automatizzati è meglio disciplinato in diversi articoli. Tuttavia, nel contesto di questo articolo, è importante per il tuo offshore venditori automatici di fornire prove a ogni iterazione. Se si prendono in considerazione nuovi fornitori, chiedere informazioni sui loro strategie di sperimentazione. E 'meglio andare con un venditore che crede in automatico il controllo, piuttosto che cercare di convincere un venditore i vantaggi di test automatizzati.
So, in sum, when implementing Agile in distributed development teams, there are opportunities to address three aspects of the project: communication, payment/deliverables and automated testing. Sì, in somma, in sede di attuazione Agile nel team di sviluppo distribuito, ci sono opportunità di affrontare tre aspetti del progetto: comunicazione, pagamento / prodotti e di test automatizzati.












