We envisioned Ideyatech to be an agile, creative and pro-active software development company. We never intended to become like any other outsourcing company that provides cheap developers and cookie cutters. To differentiate our company from the rest, we redefined the developer titles and roles.

We classified our developers into three: Codester, Codesmith and Codemaster. However, it’s more than just the making new titles… we also redefined their roles.

Codester
A codester is a dynamic individual who has passion for abstract and logical reasoning. He is trained in the art of programming and is experienced in the Java language. He is resourceful and capable of learning new technologies on his own. Codester are people you can rely on to deliver codes that work according to specifications.

Codesmith
A codesmith crafts their codes with artistic mastery. He is capable of writing clean, well-designed codes. He is well-versed in the art of programming and ensures that his codes are optimized, refactored and properly unit-tested. Codesmiths are your best bet in doing complex and more advanced transactional web applications.

Codemaster
A codemaster is one of the chosen few who can design unique solutions to common complex problems. Unlike traditional developers, he thinks of solutions with a business sense. In addition, he is an expert in design patterns - not only in theory, but also in practice. Codemasters are the perfect partners for product development since they have the creative insight and technical proficiency in developing state-of-the-art applications.

When it comes to outsourcing opportunities in the Philippines, one most often calls to mind call centers or customer service. Being an English-speaking country (Philippines is the third largest English-speaking country in the world), it has an edge over call center outsourcing destinations, such as India or even China. The Philippines also boasts of college educated customer service agents who are adept at handling customer complaints and requests.

Next to call center or customer service support, Philippines has also made a considerable progress in the medical transcription business. On top of the labor force’s ability to speak and write in English, it has a surplus of workers with degrees in the medical field, such as nursing, pharmacy, and medical technology, thanks to the growing trend of exporting medical workers to developed countries, such as the US, UK, and the Middle East.

Software Development Outsourcing to the Philippines

Is Philippines in a good position to take a cut in the technology outsourcing pie? Fortunately, the answer is yes, according to analysts.

While still trailing behind India and China, the country “is already emerging as a strong player in this rapidly evolving industry, demonstrating that it can compete with India and other low-wage destinations in creating value,” according to a 2005 report by the McKinsey Global Institute (MGI). Case in point: While Philippines’ population is 16 times smaller than China, it produces twice as many engineers, according to MGI.

In 2007, the Philippines captured USD 4.1 billion or 1.4% of the global outsourcing market share. According to a Reuters report, diversifying outsourced opportunities beyond call centers will earn the country up to $12.2 billion by 2010.

Opportunities Despite Tech Spending Crunch

Because of the global economic crunch, cuts in IT spending are inevitable. The upside of belt-tightening measures is off-shoring of technology jobs. Of course, the downside could be that the growth of off-shored tech opportunities may not be as high as it was projected in the past years. Still, opportunities abound for outsourcing destinations, such as the Philippines.

Filipino engineers and generalist tech workers have become attractive to foreign companies. “Poaching” of tech workers by other Southeast Asian countries has been observed over the past 3 years, thanks to their technical and communication skills. This temporary diaspora of Filipino tech workers offers better earning opportunities to the workers themselves, but on a larger and more important scale, world-class training experiences that they can bring back home.

If the tech industry can supply ample technical and managerial training to its workers, the Philippines can become a more attractive outsourcing destination for technical development. The country should not rest on its call center laurels alone.

Why develop Java applications on Mac? Well, why not? Aside from the coolness factor, here are some business and technical reasons to do so.

  • Macbooks are faster and more stable than any other Vista machine.
  • Macbooks can run multiple OS - Linux, Windows and Leopard. With VMWare or Parallels, you can even run Windows within your Mac environment.
  • You have a better brand than any other outsoucing or software development company. Imagine sending 5 consultants to your clients each carrying a Macbook.
  • They have the tools needed for Java development - including Eclipse, MySQL, Xcode and any other Java IDE.
  • The graphics interface is inspiring. Who says developers don’t need inspiration?
  • Prices of software (e.g. iWorks, etc.) is cheaper than its Microsoft counterparts. Besides, most of the tools are open source.
  • Prices of Macbooks are competitive if not cheaper than other laptop brands.
  • It’s secure… it’s built on top of BSD.
  • Did I mention NO virus?
  • The coolness and intuitiveness of Time Machine encourages data backup. The video below is available now in Leopard and it works!


Mac OS X Leopard - Time Machine

As defined in Wikipedia:

Agile Software Development is a conceptual framework for software development that promotes development iterations, open collaboration, and adaptability throughout the life-cycle of the project.

True to its meaning, Agile is a concept that can be implemented in several ways. So, there is no correct way of getting it right… Nevertheless, here are some tips we’d like to share based on our experience:

Ideyatech agile

  1. Agile team members must be matured and responsible. Team members must be pro-active and have the drive/determination to take charge of the task at hand. Self-organizing teams are hard to develop, especially for junior programmers. It takes some level of maturity and experience for a team member to identify the tasks and execute them.
  2. Agile projects must be contracted as “Time and Material” rather than as “Fix Cost”. This is because agile practice is susceptible to “scope creeps”. The concept of being able to adjust/change requirements during each release indicates that scope must be flexible. As such, contracting on “fix cost” will either limit scope changes or lead to tedious change control processes.
  3. Pair programming should be limited. It is effective only on certain circumstance such as “master-apprentice” pairing or critical components. Otherwise, it will lead to inefficiency where two people are producing half the value of their time.
  4. Tools are essential for unit testing and continuous integration. It is almost impossible to implement unit tests and continuous integration without the proper tools to support the build and test process. It is important that the tool is able to run builds on pre-determined schedules and send configurable alerts. Moreover, choose a tool that can understand the unit test results and do notifications as necessary.
  5. Take the Agile Manifesto with a grain of salt. Not everything in Agile works… it varies on the organization, software and project type. For organizations that are new to this concept, start by shortening your iteration release - at least to monthly. This can take you a long way going agile…