| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Oct | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
October 25, 2007 by stedjamulia.
One of theories I subscribe to is the Garbage Can Model. The model was first conceived in 1972 by Michael D. Cohen, James G. March and Johan P. Olsen. The model is based on the premise that many solutions are created and trashed, but during the process of creation and failure, new problems are discovered. These problems are eventually solved and success is achieved.
This pattern of success has been tried and tested by many organizations, and successful products have been born as a result of many prior failures. Some of these products include the iPod and Post-it Notes. The same process applies to outsourcing.
I believe to find the right outsourcing process and team requires trial and error. Entrepreneurs will learn a lot about outsourcing the first time they try it. They will learn even more the second, third, and n’th time. They will understand the hidden costs of outsourcing, how to work and incentive their developers, their teams capabilities, what are realistic development time lines, what product management process and documents works best for their team, how important testing is to ensure product quality, what hours are required from the product manager/owner to make sure the project is a success, and a lot more.
Gaining experience in outsourcing is invaluable, and learning how to become successful can truly save you a lot of money. For every one person that succeeds with an outsourcing project, there are others who fail. Failure is not bad. Matt Glotzback, director of product management at Google Enteprise, said, ” There is no penalty for failure. In fact, we encourage it because if you’re not failing, it means you’re probably not trying.”
Hiring your own local developers, nearshoring or offshoring, will each have their own similar issues. I have watched companies fail in each one of these scenarios. I have also seen companies equally achieve success. Remember, failing wisely is a sign of progress; just make sure your team can pick right back up and work harder to succeed. This is the key. Running a successful outsourced organization not only adds value to your company, but it also gives you a strategic advantage over a competitor who may have higher operation costs from having a local expensive development team.
Posted in Successful Outsourcing | No Comments »
August 29, 2007 by stedjamulia.
I have been impressed with the demand for companies wanting to outsource. I think the healthy economy and low unemployment rate has truly contributed to the need for outsourcing. Employers are having a hard time finding skilled local talent and are having to go out-of-state or out-of-country.
The recruiting processes takes time and costs money. Employers are justifying the investment and starting outsourcing projects to mitigate the risks of not finding local resources and to experiment with outsourcing, which they hope will eventually lower their costs. When you are paying a head hunter and recruiting services thousands of dollars to find you a good developer, it becomes easy to justify a pilot project that costs thousands of dollars for several skilled developers in India who can get your business where it needs to be when it needs to be.
Because of the market demand for outsourcing, make sure to act fast on securing good development resources. Outsourcing companies are running out of resources. If you are doing business with a company in a geographic region that does not have a large talent pool, then you may get stuck as you try to expand. So make sure your outsourcing partner is established in a region with plenty of resources.
Posted in Market Trends | No Comments »
August 24, 2007 by stedjamulia.
I have met several people in the last month that claim to keep development local because they can be more agile and get things done faster. I think this in many ways can be true, but in this article I would like to point out that a remote and outsourced model can also be very agile.
In 2006, I attended the Collaboration Technology Conference, where I heard the founder of 37 signals speak about his development model and how he had 8 remote developers building a collaboration application. For those that were located in the same city, they would meet on occasion, but most of the time they would work from home. 37 signals has become very successful and many prominent companies such as Apple and Times magazine have hailed their products and how easy they are to use.
Another company that has many remote developers is MYSQL. In an article in Fortune, the CEO of MYSQL spoke about their 320 employees in 25 countries, of which 70 percent work from home. MYSQL has also been prized for being a very innovative profitable company with a growing market share. Both 37signals and MYSQL are considered to be both Agile companies that have accomplished success with remote development teams.
How do these companies do it? I believe that learning how to be agile in a remote development model is possible. For those companies that learn how to do this effectively, they truly can succeed at a lower cost. Here are some tips I have learned and applied that have helped my development projects become more agile and successful:
1. Have the Right Mental Attitude
From my experience in managing offshore development teams, I found that the first hurdle management and team members have to overcome is to believe that developing products remotely can be successful and that the outsourcing project can be successful. Once this barrier is overcome, then things are a lot easier.
2. Work During the Same Time
The second barrier that needs to be overcome is that people need to start working in the same time zone. If the product manager is asleep while the developers are working, this will lead to mis-communication issues. Decisions need to be made on the spot and if they take 24 hours to make, then for sure you will have delays. In one of my current projects, we had to make 4 critical decisions during one day of development, if decisions had not been taken, we would have stalled development for at least one day. When you do not have real time communication you end up having to document a lot more and developer end up having to do a lot more reading and less coding. Everyone in a development team should make the effort to work together at the same time.
3. Invest in Collaboration Tools
Invest in some collaboration tools that will allow real-time desktop sharing. You will use real-time desktop sharing every day. I suggest using AIM Pro. AIM Pro is free and it uses Webex’s desktop and presentation sharing that is very high quality and fast. Also, using Skype for voice and presence is vital for quick voice discussions.
4. Get a Good UI Design Package
Finally, I suggest getting an Interface design package, I gave you several options in my previous blog. Using such software will help you become more agile and will speed up the developers understanding of what the system has to do to perform correctly.
I hope these tips will help your remote team become more agile. Remember, you can be as successful outsourcing development as if you are working locally. You just need to build your capabilities.
Posted in Development Phase | No Comments »
August 17, 2007 by stedjamulia.
The easiest way to show development for what you want built and to get feedback from customers is to first build your product’s interface. For a non-developer, this can be intimidating, but with the use of some design tools, interface design is very easy and not very expensive.
There are several tools to pick from, each having their own strength and weakness. Here are some of my favorites:
Microsoft Excel – I personally would not use Excel, but I have included it since several people have used this tool for web development, and it seems like a tool that everyone has. With excel you can use each formula box to create a part of the website by coloring the box or turning it into a drop down, input box, or a field. Also, macros allow you to add fancy buttons to the pages.
Microsoft Visio – Visio is very easy to use and has a good library of shapes that allows you to drag and drop shapes into a Visio canvas and design your user interface. You can easily add colors to Visio and use the drawing tool to create your own shapes. Visio’s biggest benefit is that it is simple to use and will help you keep your designs simple. Visio’s biggest problem is that your drawing will only be a drawing and you will not be able to see what your interface will look like in a web browser. Many outsourcing companies do not use Visio, and this may be a problem when it comes to sharing your interfaces. Also, another problem with Visio is when you have a lot of overlapping images the interface becomes cluttered. Linking pages in Visio is not possible.
Nvu- Nvu, an open source project sponsored by Linspire, is a web authoring tool similar to Dreaweaver that helps you create web pages. If you are not willing to spend money on a web-authoring tool, then this could be the solution for you. I did not think the tool was as user friendly as some of the other tools mentioned in this blog, and the tool’s library was not as rich as Fireworks for interface development. Nvu is more competitive to Dreamweaver and is more difficult to use for beginners. I think as the tool develops, this could become a good alternative.
Adobe Photoshop - Many people use Photoshop to create web interfaces and have become very good at using Photoshop. I personally found it a harder tool to use since it is not a tool specialized for web page development. Buttons, drop down menus, text boxes, and other images for your site will need to be created since there is not an existing library that is included out of the box. Also, there seems to be a bigger learning curve when using Photoshop. I found Fireworks a lot easier to use. However, Photoshop is a better tool to use when it comes to adding pictures to your site. Also, most outsourcing companies use Photoshop which will allow you to easily share your work.
Adobe Fireworks - Adobe Fireworks is by far my most favorite tool. It has the simplicity of Visio and a much better library that is designed for web interfaces. The library contains buttons, text boxes, drop down menus, and other images that you can modify to fit your site’s needs. You can drag and drop images onto the canvas or create an image and use and re-use it. Another huge benefit is that it is created is done in HTML and you can even convert it to different web development tools such as Dreamweaver. Another big benefit is that you can easily enable a button to open another web page you created. This allows you to take your work, view it in a browser, and click through your site. You can even post your work to a server and have a focus group critique it. Also, web developers and designers can download a 30 day copy of Fireworks for free while they work on your project, or they can just use your html to continue your work.
Adobe Dreamweaver/Flex - For those already experienced with Dreamweaver and Flex, using either of these tools may be an excellent choice for website interface design. As you design your interface, you will have a lot of the work already complete. It may help you get to market faster, but if you are not proficient with these tools, it may be a bigger learning curve and slow down your project. In this case, I suggest going with a lighter tool as the ones mentioned above and allow the developer to take your work and use it to build out your product. On the other hand, if you are willing to tackle the learning curve, you may be better off in the long run learning how to use this tool. The only caution is: do not get caught up in building the product when you are suppose to focus on building the interface.
If you are a Microsoft aficionado, then you may want to try using Microsoft’s Silverlight, Expression Web and SharePoint designer tools. I have not yet tested them, but they may be better tools than the ones I mentioned above. If you end up testing them, let me know what your experience was like.
I hope I provided you a good selection of tools that can help you in your web interface development efforts. Completing your interfaces and getting feedback before you start development can really help you streamline the process and come closer to ensuring that your outsourcing project will be a success.
Posted in Design Phase | 1 Comment »
July 16, 2007 by stedjamulia.
I am sure you have a great idea for a start-up and have done due diligence to validate your idea and the market opportunity. Now you are ready to hire a developer and get going. In my first series of blogs, I will discuss what a person needs to do to get their idea ready for development, find the right outsourcing partner, negotiate best pricing with an outsourcing partner, and ensure successful development of their product. The goal of this blog series is to help first timers successfully get their idea documented, developed, and released.
In the beginning you probably discussed your idea, drew some pictures, and even drafted some preliminary thoughts of what your product will do. Prior to engaging with any outsourcing company, it is a good idea to take some time to create the basic interfaces for your product and document your product’s requirements.
Designing the interface and documenting the product requirements takes time. The devil is in the details and creating an easy to use product is not a small accomplishment. The more concrete and detailed you can be about what needs to be built prior to development, will save you a lot of time and money. If your company is not able to agree on what needs to be built and you cannot properly describe to developers your product, then you will almost for sure end up requesting changes that may slow down development, causing wasted work, inaccurately estimating required resources, mismatching developer skill sets with project needs, and creating a faulty architecture.
Developers do not want to work for clients who have not properly documented their requirements. Others charge expensive fees for having to do additional work that is not coding. Remember developers like to code and do not like to create requirements and specifications. Unless you are willing to hire a business analyst or product manager, I would suggest you spend some more time working on requirements and interfaces before hiring a developer. No one will take ownership for your product as you will; therefore, assume control from the beginning, and drive your product to success. If you do this, then any good outsourcing company will help you succeed.
My next blog will address different tools you may want to use to rapidly create product interfaces which will get you closer to being able to start your outsourcing project.
Posted in Requirements Phase | No Comments »