I am creating a series of blog posts which will be published periodically over the next month. The series will cover the following topics:
Recently, we worked on a custom development project to re-engineer a core data capture solution.
There were four main challenges that we faced:
The three teams working on the project had very different responsibilities. Each team used their established development practices, which needed to be integrated to establish a standard approach in the development process, and this was achieved very successfully by utilising Visual Studio Online and Microsoft Lync.
We used Visual Studio Online to create a virtual development office and were easily able to manage our user journeys, tasks and development iterations. It also provided us with functionality to easily keep a log of daily activities and meeting minutes by posting them in the project’s online team room.
Due to the nature of the different disciplines of the team, we had to find a solid solution to share code. The creative company delivered design artefacts, which were developed on Apple; the application development team worked on Microsoft Windows; and the customer faced challenges with sharing internal infrastructure resources externally.
We opted to use the Git repository for Team Foundation Server, which forms the basis for Visual Studio online. The creative team used an internal Git repository to develop on and shared the design artefacts by pushing it to the shared Git repository on Visual Studio Online. The application development team used Git extensions for Visual Studio to integrate with the repository which provided a familiar environment fitting in with the normal development processes. The customer could easily use a browser to view progress, source code history and the actual source code with the integrated Monaco editor.
Requirements were communicated using a fully functional mocked prototype created by the creative team. This approach left requirements open to interpretation and it was vitally important that the application development team understood the requirements and delivered the user journeys as intended. We managed this process by using Microsoft Lync’s conference functionality to share screens and talk through each user journey prior to starting development. The same approach was used to show the actual implementation to the customer and the creative team once the development was completed, creating a tight feedback loop to mitigate any misinterpretations of the intended user journeys. We found that this process reduced the time spent discussing requirement significantly and allowed the customer to focus on production readiness rather than having to work on requirements documentation.
One of the greatest benefits of using Visual Studio Online was the team room. I personally don’t think it was designed or intended to be used in this way, but we found that using it as a daily log provided easy access to any decisions or communication of changes submitted by the different teams. All the important points discussed in the daily stand-up was summarised and posted in the team room which created a permanent time stamped record that could be referenced in the future.
We also used the team room to track commits to the Git repository and to monitor the success of automated build process (another blog post) in addition to using the team room for logging meeting outcomes. This allowed the development team to quickly integrate design changes when the code is committed by the design team.
Using Visual Studio Online to co-ordinate, manage and develop the solution significantly improved the overall development experience and allowed everyone to focus on the implementation details.
If you would like any more information on this approach please feel free to contact me.
Lawrence Rabbets, Principal Consultant, Advanced Microsoft Consulting, Sword IT Solutions.