Net Solutions
Blog

Archives for the ‘Uncategorized’ Category

Aug 12, 2011

Recently we came across an interesting presentation by Agile Guru Mike Cohn, founding member of mountaingoatsoftware.com. Presented at the Danish Agile User Group conference, this presentation presents his ideas on how to make Agile work across distributed teams, and the challenges encountered in achieving the same. While the presentation covers at length issues like scaling, managing dependencies and coordination in distributed agile, some of the three key points of the presentation are:

1. Proactively Manage Dependencies: One way this can be achieved is by sharing team members across different teams. It helps if at least some team members are aware of what is going on in other teams at all times. Another way is to create ‘integration teams’ – a virtual team composed of team members from different teams who control the integration of different parts of the project.

2. Decide how to distribute: This can be achieved in two ways: each team across different locations has all needed skills or teams are deliberately distributes in such a way those Individuals in different locations work as one team. There are advantages and disadvantages to both ways of distributing a team.

3. Create coherence: Some tips on how this can be achieved.

  • Acknowledge big cultural differences
  • Acknowledge small cultural differences
  • Strengthen functional and team subcultures
  • Build trust by emphasizing early progress

4. Change how you communicate

  • Encourage contact between teams: teams get together in person for at least some time by seeding contact visits, or travelling team members.
  • Add back some documentation: cannot rely as much on talking
  • Encourage lateral communication between team members
  • For us at Net Solutions, a company practicing agile development with distributed teams, most of these ideas sound very familiar. In fact, we have been actively putting some of these ideas in practice since 2008. For example, we have been managing dependencies between different phases of a project lifecycle by creating virtual teams consisting of team members from different functional areas, each of whom is skilled in a particular area of the project lifecycle. We have strengthened our functional team subcultures by having functional area managers for different functional areas. We encourage stakeholder meetings especially at the beginning of project. Also, our business analysis team creates FRDs and wireframes which ensure that different team members remain on the same page.

    Reading all these ideas in Mark Cohn’s presentation has reaffirms our belief that Distributed Agile practices are indispensible for a company working with distributed teams.

    For more on this very interesting presentation, please click here.

 

Jun 12, 2011

Cloud Computing is a concept which appears to be relatively new these days. But the fact is that this concept of cloud computing has existed since the age of computers and networks was still quite young. People have actually long been experiencing the benefits of cloud computing by booking airline tickets online and using Web-based email, such as Hotmail or Yahoo! But with its “so-called” recent arrival and adaption there are different definitions that are being framed for it. And in our process of carving out its true definition we recently came across an interesting article on the website InfoWorld.

Cloud computing is named so because the data and applications exist on a “cloud” of Web servers. Cloud computing is a technology that uses the internet and central remote servers to maintain data and applications. Cloud computing allows consumers and businesses to use applications without installation and access their personal files at any computer with internet access. This technology allows for much more efficient computing by centralizing storage, memory, processing and bandwidth. Many people have been confusing cloud computing with ‘Utility Computing’ or ‘Grid Computing’ and so are many companies who in their proclamation of providing “Cloud Computing” actually provide the service of Utility Computing.

In a grid computing system, networked computers are able to access and use the resources of every other computer on the network whereas in cloud computing systems that usually only applies to the back end. Utility computing is a business model where one company pays another company for access to computer applications or data storage. In this way, utility computing is relatively straightforward. Cloud computing, in contrast, is much less direct. While all the services are still being rented, the company knows far less about the source of the services. Users still pay for what they use, but the company providing the services utilizes a much more complex system of infrastructure and software, usually involving grid networks that support multiple tasks at once. Thus cloud computing is actually more powerful, since it does not rely on any one source. By spreading out the task load, cloud computing can be a fast and effective means of computing, often with simplified troubleshooting and less maintenance overall.

Few of the advantages of Cloud Computing Technology are:

  • Automatic upgrades: The greatest advantage of using Cloud computing technology is that the company would not have to spend time and resources to upgrade and integrate their technology with the greatest and the latest version.
  • Easy Web-services integration: Cloud computing technology is much easier and quicker to integrate with a company’s applications (both traditional software and cloud computing infrastructure-based), whether third-party or homegrown.
  • No hardware or software to install: The beauty of cloud computing technology is its simplicity and in the fact that it requires significantly fewer capital expenditures to get up and running. Interesting.
  • Faster and lower-risk deployment: With Cloud Computing technology applications get live in a matter of weeks or at maximum just few months even with extensive customization or integration.
  • Support for deep customizations: The cloud computing infrastructure not only allows deep customization and application configuration but also preserves all those customizations even during upgrades.

By eliminating the problems of traditional application development, cloud computing technology frees you to focus on developing business applications that deliver true value to your business (or your customers).

Net Solutions can build custom applications which are architected to take full advantage of any cloud infrastructure, and help address complex application models like SAAS.

We have experience in cloud platforms like Salesforce.com’s Force.com, Google App Engine, and Amazon Cloud Services. We help enterprises build and deploy scalable apps on these platforms with significantly reduced time to market and infrastructure cost.

Our project teams have skills with new technologies like Python and new architectures like non-relational data model and multi-tenancy, to take full advantage of the cloud platform and services.

 

full list of our services