I think when you are working with offshore team or outsourcing company – this particular phase is the most tricky to deal with. Because most of us now a days are so accustomed to work with internal QA team. Things take a drastic change during the Testing and Bug tracking phase. And that is another reason why services of a company like “HeliDigiZen” come in handy. As we know what we are dealing with and know how to handle this. During the testing phase if you uncover a bug – the fix needs to go through regression testing. So not only you have to test all the flows once the bug fix in place – you also have to test it across all the devices as well. You have to make sure the bug fix under one flow is not introducing new bugs on another flow and make sure none of the old bugs are coming back in while merging the changes while deployment.
Most of us now a days have our own favorite bug tracking system but while you are working with the outsourcing company it is best to work with a bug tracking system that works for both the parties. You don’t want your outsourcing resources to waste time trying to figure out how to operate a certain bug tracking system at the same time you don’t want to go through that process either. This is where some innovation comes in handy. We developed our own bug tracking system using google docs and google spreadsheet – as most of the people know how to use it and it does not require any additional software to be bought or installed. This helped us solve a few issues that we were facing,
- Now we always had a way to track what is happening with each bug reported – as we had 5 state defined for each bug – Open, Working, Fixed, Verified and Reopened
- Every one had an easy way to reproduce the bug – as we always defined the steps to reproduce when reporting a bug – very important
- It was simple to go through all the list of bugs while testing different flows and making sure none of the old bug are coming back or we are reporting the same bug again and again.
- And it was simple to reopen a particular bug just in case we see it again rather than reporting it all over again!
Up until this point we had always been working on the outsourcing company’s server but at this point we realized we wanted some control so we had them deploy the project on our end – so we can keep on testing while they are still working on bug fixing on their end. Helped us out a lot, and gave us an idea of “Pre Beta Launch” as well. But now we needed a way to track 2 different versions of code and an ability to report bugs for each one. It was pretty simple to accomplish using our own tracking system.
Once we were fairly confident of how things are working on our own server, we wanted some additional user feedback. We wanted to make sure that the flows are tested by some users who had no idea how this is suppose to work, and that is when we came up with the “Pre Beta Launch”. At this point we invited a few of our friends from technical background to do a test run on our system – and help us with some feed back. A great step – as that helped us understand what flows are confusing, some text revision needed and also gave us some confidence that we are pretty close to the Beta launch.
How did we go about our Beta launch? That we will cover in our next post!
The development phase starts when you approve the design PSDs and the team starts to work on converting the PSD into HTML pages and actual flow design. Here is where your SOW is going to come in very handy, and in our case a well defined SOW made it a lot more easier to navigate through this phase. This phase is when you will want to have well defined internal milestones where you run the testing of various flows as they are getting built and put in place. The well defined testing milestones are important so that you can discover any issues in the flow that you have defined or uncover any gap between your and your teams vision. You want to identify it sooner then later, because it will involve a lot more to change it once the backend is in place,
Also the thing that you should keep in mind is SEO and how you want to use any mark up language or Rich snippet. We used various tools while navigating through the development phase
- SOW – A well defined SOW is very essential during the whole project life cycle but during the development phase you are going to get the maximum usage out of it.
- Basecamp – To keep every one informed about all the steps being taken and all the comments or conversations being done.
- Bug Tracking System – A good bug tracking system is very essential to keep track of all the open issues and check how the progress is going – we had to come up with our own that we developed using google docs and google spreadsheets
The first milestone we had defined was converting the PSD to HTML and just have the page to page flow. This is done by simple linking between the pages with no backend. This process is very similar to the tool “Axure: Interactive Wireframe Software & Mockup Tool”, if you are familiar with it. The only disadvantage with Axure is you are not able to take the “HTML” pages that Axure creates directly into your project, where as in when we used this approach we already had HTML pages ready to be used directly in our project. Just as an additional note, it would be a good idea to use some SEO tools to help you with any markups or Rich snippet. As you already have some HTML example pages defined.
By first defining the basic flow with just HTML links – we were able to examine each flow and refine and correct it if need be without putting a lot of work on the back end. This was a great way of eliminating a lot backend changes for simple design tweaks. And it also gave us a way to make sure that the offshore team and us were on the same page as far as the basic flows were concerned. Very important when you are working with the offshore team.
Once we had refined the basic flow – the development phase milestone 2 work began. The milestone 2 was defined at putting the backend for those flows. But we wanted to work through one flow at a time. For example in our Toysshare project there are 5 main flows,
- Sing up/Login/Logout
- Listing Toys for Sale/Swap
- Searching for Toys
- Contacting the Sharer
- Admin Panel
Again as each flow was put in place one milestone was achieved and we tested each flow individually as they were put in place – this eliminated any refinements still needed in each individual flows without affecting the others.
And as the last milestone we put all the flows together and tested the whole project making sure that all those flows interact with each other the way it was expected. At this point after any fixes you should do regression testing to make sure the fix does not introduce any new bugs or while merging the files some old bugs don’t come back. – This is where we had to develop our own bug tracking system to make sure we are on top of each bug and we are doing regression testing at each level.
Also here is when all the mobile devices come into play. We wanted our site to be responsive – meaning now the testing had to be done on Windows PC, MAC , IOS, Android and Windows Phone. It helped a lot on how we had designed the milestones and testing setup – as most of the corrections and refinements were done way ahead of this final testing phase. In the next post we will go over Testing, Bug tracking and Beta launch in more detail.
While we were going through the design and development phases for Toysshare.com – we realized that working with an outsourcing company had to be handled a lot differently then working with an in house development team. As we moved through the Toysshare.com we got fairly aware of things that you need to keep in mind while you are working with an outsourcing company – and it eventually became a usual practice for us.
At that point we decided we should form a consultation firm “Helidigizen” – that can help people go through the outsourcing process. Essentially helping companies get their idea executed to a final product but guiding them through all the steps from defining SOW, getting in touch with right outsourcing company, and helping them out with the communication and execution during all the following steps,
- Design Phase
- Development Phase
- Testing Phase
- Deployment Phase or Beta Launch
We take care of choosing the right outsourcing model, choosing the right company and all the midnight communication needed through the proper execution of the project for them. And since we have gone through the process our selves multiple times it comes naturally to us on how to get the best results from the outsourcing company for the money.
It makes complete sense to get the project executed through us for all as we work with the outsourcing company on a long term basis, we have a trust relationship already built with them. As a result we have a much easier communication channel with them. For the outsourcing company too as they are dealing with the same people frequently it just becomes much more simpler. We already have some standard procedures setup and they don’t have to keep on revising them for each of our clients. This way we can achieve the results much faster which translates into increased efficiency!!
How do you get started once you have narrowed down the company and given them SOW – what is the next step?
Well we had an advantage that we were able to meet the project manager from the outsourcing company while we were there. That gave us a chance to discuss the SOW and clear out any doubts. Once things were put into perspective with timeline and milestones the real work started. I can see the project life cycle over 4 phases:
- Design Phase
- Development Phase
- Testing Phase
- Deployment Phase or Beta Launch
Please keep in mind that for the timeline and milestone to be met your input is very crucial in each phase. Especially the design phase as it is the base on how soon you can get to the next phase and keep on moving forward.
During the design phase they tried to design the logo, the color scheme for the website and a few important pages. We had defined our SOW in the terms of pages as well which made it a bit simpler for them to come up with the design for each page. They were able to provide us with a few options on logo/ color scheme and home page psd. Once we approved those the other few page designs were done. The best way to get the communication right at this point is to use the visuals. We created very basic wireframes most of them had drawn on the paper and give them reference to some websites that we liked the designs of. That made it very clear for them to understand what exactly were we looking for.
For each design that they submitted we were able to identify the elements that we liked and the elements that we thought should be changed. And we defined the changes with some visual reference making it easier for them to understand what we are looking for. One note here – it would be a good idea to identify all the message and confirmation text and put it into words for them – as the languages over different countries differs a lot and this way you have covered it at very first step.
It is very important to make sure that both the teams are on the same page in terms of design at this stage as – once everything is approved you go into development phase with the correct design in mind. Which will make development phase a breeze.
We will talk about what to keep in mind during the development phase in the next post.
While we were deciding what is the best outsourcing option for us we went through meetings with different companies. From what I have observed during that process we can categorize the outsourcing options in below different categories
- Small Scale
- Medium Scale
- Large Scale
- Individual Free Lancer
Our elimination process worked in the following way -> Because we needed a fast turn around time we had to eliminate a couple of small scale companies as they could not start on the project right away. Some of the individual free lancer were available to start right away and were reasonable too – but the issue came down to they not being able to support our need for a design team. And once they would take up another project we were worried about the support we would get from them even after the project was over.
Now we were left with 2 options – Large Scale and Medium Scale companies. For a large scale company we were a small client and I was not sure if they would move around resources if they get some request from some of their regular big clients. And the last thing I wanted during the execution was change of the person in the middle of project.
Once we had narrowed down our search to Medium scale companies we met with a few of them and chose the one who had mostly work with US client and knew how quality mattered. Also influencing our decision was the communication and trust we got built up while meeting. They were ready to sign the NDA and they were able to provide the timeline and broken down hour structure for the project. And I am very happy to say they really were able to stuck to the timeline and deliver milestones along the way! They were also able to support us even after beta launch which was one of the most important thing for us.
Of course during the project we did come across quite a few things that you would need to keep in mind while working with an outsourcing company – and we will be covering those within the next few posts.
When you are trying to base the beginning of your completely new project on outsourcing – it becomes very important to choose the right outsourcing company. You have to take few things into consideration,
1. Which model are you looking for:
Usually there are 3 different models that outsourcing companies follow:
- Fixed Price
- Per Hour rate
- Per Month rate for individual developer
You can also get in touch with a freelancer to get your work done but I think you have to be extra careful in choosing the right candidate.
2. Do you have a scope of work defined and with what accuracy level
3. Do you have a basic design defined or you would need help on that as well
Going over the above questions in our case, we wanted to know in advance how much money we will be spending – so we were looking for a fixed price model. And because we needed some help with designing as well – we eliminated the individual freelancers. At this point we were looking for a company who can execute our extremely well defined SOW into a reality. Just as a side note the SOW or scope of work is the most important thing in deciding what model you want to go for. If you don’t have a well defined model or if you are still working on it as your project is getting execute I think per hour rate or per month rate for individual developer is a good idea.
The third criteria in choosing the right outsourcing company for us was a break down on timeline and pricing. We had quite few people coming up with a price for the project but no defined timeline, or milestone and pricing and we did not want that – we wanted someone who can give us exact timeline with milestone and payment plans defined. So now at this point our 4 criteria were:
- Fixed Price Model
- A company with an internal design team
- A company who can give us well defined timeline pricing model and dates for milestone
- NDA – it is always in your interest to get the NDA when you are working with an outsourcing company
Because we have connections back in India – we started to look for the company from here in the city that we have lived most our life. We got in touch with the few of those as well. And as we were going through and getting familiar to the process I formed the idea of “HeliDigiZen” – a consulting company who would get you in touch with the right outsourcing company for your needs. But more on that in the next post.
Coming back to the issue in hand – we were having hard time figuring out a few facts and choosing the company so we decided to actually go down to India and meet with few of them to pick the right company for us. And I think that paid off big time. I think meeting the companies in person gave us a much better idea about their employees, their setup, their professionalism and helped us build the trust and communication channels the way we wanted! And that boosted the idea of “HeliDigiZen” further – as I though many of the companies would want to have someone in US to get in touch with so that they can trust an outsourcing partner better and don’t need to deal with timezone differences.
We will go over our experience in meeting with different companies in the next post. But for this one we did go with the company which met all three of our criteria. It was difficult and we did not close the deal until the last day we had to leave but we were able to find the right company!