Monthly Archive for January, 2009

2008-2009 Take Aways: Application Development

MuSMo’s project, in our opinion, is considered to be a medium-to-large project that involves i) distributed environments, ii) significant amount of computational power and storage, iii) different data types that must not be treated equally, and iv) fairly complex business logics. It is definitely not a project to be taken lightly. Over a year working with a software development company, we have the following take aways specific on application development.

  1. Framework. Always work with an application framework. Choose the most suitable framework for your project. In other words, contextualise on how flexible, extensible and adaptable your project will be and how it relates to the framework you are working with. Do not neglect to take into account the original purpose of the framework, its security risks, documentation and resource availability.

  2. Discussion. Development is not an individual effort, it is a team effort. And thus it requires on-going discussion of the project tasks on its requirements and specifications to ensure highest quality of clarity. If the team does not understand the task fully before acting, it will only lead to unnecessary reiterations.

  3. Documentation. Without clear and detail documentations, it would be extremely difficult and time consuming to i) keep track on the project’s status, capabilities, components, features, functions, etc., ii) generate mature discussions on tasks, and iii) pin-point any potential and/or existing issues.

Our previous post on Outsourcing Software Development is intricately related to this post.

2008-2009 Take Aways: Network and Hardware Infrastructure

In the online media streaming industry, the requirements for network and hardware infrastructure to achieve user satisfaction on reliability, stability and performance hold a much higher stake than most industry. For a bootstrapping startup like ours, financial limits can restrain the business’ infrastructure capabilities, however, the following considerations must not be neglected for the business to steadily and satisfactorily expand over time.

  1. Datacenters. Datacenters are quite abundant around the world. However, ensure that your datacenter partner has proper cooling and humidity control, energy redundancy, network availability and redundancy, security systems, and good friendly service. Online businesses rely the most on the datacenters, without them your business will cease to exist no matter how perfect your application or team members are. A good trusted datacenter will ensure the peace of mind for your company and users.

  2. Controlled scalability. How scalable is your product has been a hot topic. However, the more important question should be, can you control the scalability of your network with its corresponding applications? Businesses can fail due to the lack of scalability, but this may also mean that there is a significant lack of design planning and execution in the entire project phase, especially before launching. Controlling scalability will ensure you achieve acceptable reliability and stability for your users over time.

  3. Integratability. Are you able to integrate and expand continuously over time? Adding more powerful servers and increasing network bandwidths are common solutions. However, it does not solve the problem if your network design and applications do not allow such additions. Integratability is crucial to the scalability of your business application.

  4. Bottlenecks. Your bottleneck is your slowest device – may it be your CPU, harddisks or network bandwidth. Bear in mind the priorities of which component is most important over time depends on the role and purpose of your systems. Invest in what is most important in your setup to achieve the accepted performance for your users.

2008-2009 Take Aways: Outsourcing Software Development

Outsourcing software development is not new in the ICT industry to effectively lower costs and pool in intelligent resources. We have come to learn from our one year experience that remotely outsourcing software development require the fulfilment of all the following qualities by every stakeholders involved in the project.

  1. Communication goes without saying. It is the most basic process to attain success. Detail frequent, and clear communication – in the form of descriptions, explanations, diagrams, models, demostrations, examples, etc. – is crucial to ensure that the entire team have the same vision of the project. Frequently use basic communication technologies – email, wiki, Skype, IRC, etc.

  2. Focus on milestones so that the team realise the importance of progression, priorities and its consequences to the business. When individuals lack focus in the project, not only will the project be delayed, everyone else will most definitely be affected. Project development imposes high sensitivity on focused efforts within the team.

  3. Respect is always required in any working environment. Be patient to ensure your business partner is viable and trustworthy in the long run. What good is a project when both parties cannot respect and trust one another to achieve excellence in a given task? On the other hand, able to trust that your business partner will reasonably continue with your venture for years to come is essential. Building a working community takes time and must be considered as the foundation of success.

  4. Gratification of every individuals throughout the project phase. Everyone has a collaborative role in the project that drives success. As individuals lack wholehearted gratification of one another’s guidance, support, teaching and/or talent, issues will arise thereby having negative impacts on the dynamics of the team. Worst case scenario is the failure of the project.