Archive

Posts Tagged ‘visual studio’

How can this be possible?

August 31st, 2010

Reading time: < 1 minute

  • Share/Bookmark

Technology , , ,

Beweevee for Visual Studio 2008 Beta Released!!

July 29th, 2010

Reading time: 2 - 3 minutes

What are you waiting for? Go and grab a copy of Beweevee for Visual Studio 2008 Beta!!!

We have released the Beweevee for Visual Studio 2008 Beta.

New Features

  • After usage feedback we incorporated a more developed graphic interface.
  • The peer-to-peer networking stack had improved connection stability.
  • We improved Visual Studio 2008 general stability issues that arrised on Alpha.
  • Network Troubleshooter will be able to pinpoint problems in network connectivity.
  • Much faster connection for remote files.
  • Facebook Support
  • Much improved responsiveness and sign in experience.



Known Issues

The following is a short list of limitations, known issues that you will find while using the product, if you find anything new please report it so we can fix them.

  • Close Visual Studio before running the installer.
  • The files that maybe shared must be compound only by text, please, don’t share files with graphic components. If some file types has been restricted just let us know and we can test them for the next update.[/i]
  • Due to technology connectivity is based on IPv6, if you haven’t an IPv6 network, then we use an IPv4 bridge technology provided by the Operating System that requires that Windows Firewall is ON.
  • The User Interface and Workspace Sharing Methods are still in development, the final design will be modified according to our clients usage feedback.
  • In the case of Cone NATs the connectivity is limited; you will only be able to connect to workspaces created by others. Note: If you have already connected to a peer, then connectivity is bidirectional.



Installation Instructions


  • Share/Bookmark

Business, Corvalius, Social, Technology , ,

Beweevee for Visual Studio - Teaser 1

May 11th, 2010

Reading time: < 1 minute

  • Share/Bookmark

Technology , , ,

Programming collaboratively in geographically distributed teams

March 1st, 2010

Reading time: 10 - 17 minutes

 

PDF Version

Header Information

 

User

Technical Buyer

Economic Buyer

· Developer

· Architect

· IT Department

· Offshore Manager

· Director

· CIO

 

A day in life (before)

 

Scene or situation: Focus on the moment of frustration. What is going on? What is the user about to attempt?

 

Borys is the lead programmer of a mid-size offshore Development Company based on Poland. He is currently working on the corporative payroll system of its main client who is based on the United Kingdom. He spends one week a month at the client company at London working along the client in planning new features and requirements. That week is always very intense as the face to face communication makes it a very productive time. Borys is a very skilled developer, he got the lead programmer job after his superior was required by the client for another mission critical system just a couple of month ago. Before that he was the developer of the Transacting engine, the one that execute online transactions on behalf of the entire organization.

In one of those trips an urgent change request was added to the backlog by Ian from the business analysis team. That left them 4 days to do the necessary changes in the transacting engine, and the rest of the application.

Irena was a very clever developer at the Warsaw team, leaving her in charge of the 120K lines of the Transacting engine code, had been a no brainer decision. However, she was quite new to the job of extending it.

 

Desired Outcome: What is the user trying to accomplish? Why is it important?

 

The change request was in fact caused by a new requirement issued by the England Central Bank, and it must be in effect by Monday morning, when the company would start the payroll processes to all their providers and workers. If they didn’t comply most transactions would be rejected by the source and requiring the company to handle each one individually by a manual workflow; with the volume of transactions scheduled to occur that was definitely an impossible task.

 

Attempted approach: Without the new product, how does the user go about the task?

 

Borys meet with Ian and Irena for 2 hours to understand the scope of the critical request. Irena was at the phone from Poland, and she was able to understand the main problem. After that Borys meet with her by phone to speak about the extensions that had to be performed on the rules engine to handle the requirement of the Central Bank. Borys knew that the rules engine was capable of doing it with some extensions that would require slight architectural changes in the adapters and rules logic. Being the most knowledgeable person on the transacting engine (it was his baby after all), he explain in detail Irena the solution. It wouldn’t take him more that 1 day to solve the problem, which would leave the certification team Friday to perform all the required tests to put it in production on Saturday.

He continued with his planned work while Irena was busy working along the plan they laid out. At the end of the day they spoke again, she was a little behind, and had to take a couple of decisions that Borys wasn’t confident about. He had his time booked until after dinner, so he wouldn’t be of much use that day. She continues working around the clock until 1AM.

The next day, they had the daily meeting Irena needed lots of help with the rules engine, but no one was as skilled at it as him. They phone called each other every 2 hours to assess the status. Lots of emails with questions went back and forth, Borys was worried. At the end of the day he had to take the airplane to come back to Poland, and they were already delayed.

He went to the office on Saturday and started to review the code, he found very important mistaken assumptions; it wasn’t Irena’s fault, which was the first time she extended the rules engine. That part of the system had been in place without modifications for almost 6 months. He had a hard time remembering all the nitty gritty details on why he did some things also. They pair programmed and redid the entire feature and finished by 2AM. On Sunday the Certification team had to come to the office, they weren’t very thrilled at it. Deployments where done on weekends so the production team had rotating personnel that worked on weekends so they didn’t mind.

Errors where found and corrected by Borys and Irena, working around the clock they decided that if there was a bug they wouldn’t correct it; there was no more time, they had to put the changes in production right now. The production team finished by 5AM London Time and was ready to roll by 7AM. Most transactions were executed with some exceptions that were performed by hand. The mission has been accomplished. Remaining defects where squashed during the week for the next weekend deployment.

 

Interfering factors: What goes wrong? How and why does it go wrong?

 

Irena was a very clever developer but her knowledge of the inner working of the rules engine was not as detailed at needed, even if Borys was pretty detailed in the documentation. Borys wasn’t able to see what Irena was doing because IT rules at the client company didn’t allow him to use screen sharing software (banking network restrictions are a norm almost everywhere) so his communication bandwidth was limited and wasn’t able to track her steps to guide her. The end result was to restart the entire work Irena has been doing for 2 days adding to the project wasted effort.  

Borys knew very well the inner working of the rules engine (as he has written it) but the last time that part was modified she wasn’t on the job. Even Borys had trouble remembering why he did something like performance tweak here and there. Those detailed inner working reasons are not typically documented because they are not worth the effort (except in cases like this one).

The certification team at London was not very happy to have to work on Saturday night and Sunday when they were told that they would have the build by Friday. And the production team had to work around the clock to have the system productively by 7AM without the entire certification process done; at the time they were already complaining that if something bad happened it wasn’t their fault.

The system worked but they were lucky, as the certification process couldn’t be performed in it’s entirely; so they risked a lot to go into production.

 

Economic Consequences: So what? What is the impact of the user failing to accomplish the task productively?

 

Failing to have the requirement changes by Monday would have been a huge problem for the client company and for Borys boss too. Having to resort to the manual workflow would have delayed the payments to providers for 2 to 4 days, delaying also the delivery of important goods. Borys boss would have trouble billing the extra hours worked by Borys and Irena, as the client wouldn’t be too thrilled of the inconvenient.

 

A day in life (after)

 

New approach: With the new product how does the end user go about the task?

 

Borys and Irena would have the meeting with Ian. Irena and Borys would fire up Visual Studio, and try to connect through the Windows Peer-Networking stack (a peer-to-peer technology that can pass firewalls that enable IPv6 edge traversal). Sadly the IT department does not allow IPv6 traffic, so Irena shared the solution through beWeeVee for Visual Studio Saas Viewer, a Silverlight application that is able to give basic access to the solution on the other end.

Borys and Irena discussed the detailed implementation right into the code, putting comments and discussing key details of the inner working on the rules engine. At the end of the 2 hours conference call they had already laid out a solution straight in the code. That was possible because they would simultaneously write code while they discussed the changes needed. Borys helped Irena also to write the tests that would define the interface and behavior of the rules engine changes.

Irena worked on her side, and once in a while Borys connected to the Saas Viewer to see a fast playback of the changes that Irena is working on; in the event he discover something that he was not confident it can work, he annotate the information in Irena’s code and sent her an small review project tweet for her to notice that he was around.

Irena finishes by 4AM and by Friday morning, the build was sent to the certification that took the entire day and Saturday morning. By Saturday midday the build was ready to be put in production.

 

Enabling factors: What is it about the new approach that allows the user to get unstuck and be productive?

 

The live collaboration straight into the code that beWeeVee added to Visual Studio allowed Borys and Irena a very efficient communication and collaborative workflow. The use of the beWeeVee for Visual Studio SaaS Viewer gave Borys the ability to access Irena’s solution code in a split second from a web source, even if the typical workflow was disrupted for security reasons inside the bank.

Furthermore, the ability to replay all changes that Irena made to the code was an invaluable aid to let Borys understand in a quick glance the state of advance. Even more, being able to review some rule engine key changes months ago using the playback feature aided Borys to remember key details that were invaluable at the time of communicating the solution to Irena.

 

Economic rewards: What are the costs avoided or benefits gained?

 

One of the biggest benefits of beWeeVee for Visual Studio is that the communication bandwidth is enhanced by working directly with the subject matter, not in an abstract way. In that way, the mental model mismatch between Borys and Irena get narrower, diminishing the rework, accelerating the time it takes to accomplish the task. The solution obtained diminished the needs of redesign and refactoring after production because the entire team was more efficient.

Under the same assumptions, an alternative solution to diminish the risk identified after the first day would have involved Borys to depart Thursday noon to Warsaw to join Irena on Friday. Even in that case, they couldn’t have been able to release the build for certification on Friday mid-day.

Under a different set of assumptions the IT department would have permitted the use of a remote desktop solution. That could make a slight difference on the communication (the first 2 hours information exchange between Borys and Irena), however it wouldn’t made much difference on the efficiency of being able to write code simultaneously and the ability to use the playback ability. So the efficiency would have been still much lower under those assumptions. Moreover, as beWeeVee for Visual Studio is embedded in the native development environment, the development workflow is not altered; something that would have happened using other alternative software likes Etherpad or beWeeVee Web.

  • Share/Bookmark

Corvalius, Technology , , , ,

Preguntas y Respuestas sobre el concepto de programación remota

July 15th, 2009

Reading time: 3 - 4 minutes

Intentaremos responder algunas preguntas realizadas en YouTube sobre el concepto de Visual Studio Co-operativo.

Pregunta: Si el código está bajo algún Sistema de Control de Versiones (i.e.:SVN) y se hace Check-in de este nuevo archivo se generarían 2 Check-in de este archivo con los cambios que hizo cada Usuario?

Respuesta: Cuando te invitan a co-operar sobre un archivo de código, estás efectivamente trabajando sobre la copia de código de quien te invitó, que luego puede hacer check-in con los cambios de todos los usuarios.

Los sistemas de control de versiones actuales no soportan el concepto de co-operación, son naturalmente colaborativos. Al trabajar en tu copia local, estás asumiendo que luego podrás llegar a un acuerdo con el resto de las personas con las cuales tuviste conflicto de intencionalidad, al momento de realizar un Checkin/Commit sin información previa de cómo llegaron allí.

El modelo co-operativo para ser útil también requiere de esos puntos de acuerdo (revisiones), pero también permite trabajar a un nivel de granularidad mucho menor. Al guardar todo el historial de como llegaste hasta una solución y hacer playback como si tuvieras una máquina del tiempo. Estos datos se podrán utilizar para análisis de código y estimaciones, por ejemplo.

Pregunta: Los usuarios con los cuales se pueda hacer el “SHARE” del archivo deberían ser usuarios que existen en el SVN, no ?

Respuesta: Un usuario es cualquier persona que disponga de una versión co-operativa de la aplicación y con quien puedas conectarte. No estás limitado a que sean usuarios del control de código fuente o la herramienta de Gestión del Ciclo de Vida de Aplicaciones, como Team Foundation Server, aunque está soportado en entornos empresariales. Tampoco hace falta que tenga la misma aplicación, solo una versión compatible con la tecnología beWeeVee y el formato de archivo que quieras compartir. Por ejemplo, podrías compartir un archivo de código para que lo puedan editar desde una versión web mientras pueda entender los elementos que este comparte.

Pregunta: El “SHARE” se hace sobre el archivo o sobre la clase, ya que podria ser una partial class definida en dos archivos.

Respuesta: Básicamente se comparten archivos, así como carpetas, proyectos y soluciones. Además de compartir, los demás participantes también conocerán la estructura de la solución, de manera de tener el contexto necesario para co-operar. Así que en el caso de la clase parcial, se pueden compartir los archivos necesarios o el otro usuario puede pedirte lo que falte.

Adicionalmente, te invitamos a que veas el datasheet de beWeeVee. Allí damos más información de contexto sobre las arquitecturas previstas y de los dominios de aplicacion posibles, que creemos son bastante variados. Dentro de nuestra visión, también existe la posibilidad de que beWeeVee sea el core de una plataforma de control de versiones en la cual se resuelvan algunos de los problemas que tienen las plataformas actuales.

  • Share/Bookmark

Technology , , ,

Visual Studio Concept Co-operative Editor

July 14th, 2009

Reading time: 4 - 6 minutes

As a developer, when working in teams, have you ever feel that you could do something far better working with someone else? The productivity, working as a team, far surpasses the productivity of working alone. Team members interacting directly can solve issues faster and get more work done. However, what if both of you were miles away? From industry experience we know productivity diminish a lot, so much that we rather do things by our own than try to work those bits with someone else.

The massification of communication technology and bandwidth has brought several changes in our work environment. It has allowed us to move information faster, and easier. But the more important has allowed us to distribute the workload in several physical locations. Moreover, the off shoring of systems design and programming services has become commonplace and companies contracting their entire software development workforce are a scenario we see more and more. Even though the technology has made lots of things easier, there are no replacements to face to face communication. Some resort to voice over IP technologies or even video conference that is great to know your peers and exchange information. However, things get more complex at the time to perform the required tasks and productivity gets a hit. Some will argue that the productivity is not that important, but the morale of developers working for you gets far lower, far easier than when people is working as a team.

Coming from a software development background, the first real scenario we moved to fulfill was that of programming environments. First, because we noticed the productivity hit of working with someone else that is not with you there. Haven’t you feel that you could do something far faster, without that much overhead?

We think that co-operation and beWeeVee can bring many tools to help solve this problem. Many of this tools are involved in what we call Remote eXtreme Programming (RXP) and some members of the software development community call Remote Pair Programming.

· Code Editing: Definitely the most visible co-operation scenario, writing code in pairs, being at the same physical location or augmented though VoIP or videoconference. The evolution of pair programming, as really programming in pairs.

· Code Review and Comments: When doing outsourcing work, it is pretty common to have someone on the technical side overseeing the work of the outsourced team. Code review can be made very effective if you can review and catch problems even before they got introduced, having a say even before the code is in the source control system.

· Team Mentoring: Coupling senior developers with junior developers in the same programming session can be a very effective solution to knowledge distribution and sharing. Having a couple of senior developers, mentoring and working (with the code) along with 2 or 3 junior developers. And in the same way, if you have the business technical specialist in house, but your programming services outsourced, the same scenario apply.

· Code creation playback: One of the most interesting features of the co-operations approach in beWeeVee is that you have unlimited undo capabilities, allowing you to see the entire history of the project, file or algorithm that will allow you to understand how things end up being as they are right now. Imagine seeing the natural evolution of your projects as they have been created (and not only the final committed product).

· Sharing Code Instances: In projects with many persons it is pretty common to hear something like this: “Hey, I need that code you have been working on” with the best response case being “Let me shelve it for you”. The typical solution is to just commit unstable, unfinished code. But the question is the following: What if that request really means that you are dependent on each other? Wouldn’t it be better and faster to do it together?

Having shown a little review on how co-operation can create an entire new working environment and workflow, we are going to show a concept video on what we are working on, beWeeVee for Visual Studio 2008 and 2010.

May the source be with you. ;)

  • Share/Bookmark

Business, Technology , , ,