In my prior job at IBM, I was, on more than one occasion, reminded of the pains of dealing with software development tools. It seemed to be a constant battle to keep up with licenses, install critical fixes, and update to the latest version of whatever tool I happened to be using. Since I often worked on projects across multiple machines, I had to ensure that versions of the tool on different machines were reasonably close and that any code formatting settings were consistent across the different tool instances. On top of this, the tools were sometimes so CPU intensive that multitasking on the same machine running the tool was impossible.
All of the above pains were a direct function of the tools being installed on my local machine, so you can imagine my interest in a recent announcement by IBM signaling the launch of a pilot program offering Tools as a Service. The program, initially offered to students and faculty of selected universities, delivers hosted software development tools to developers. Users of the development tools do not install, maintain, or run the products on their local machine, instead they access them through a cloud maintained by IBM. The tools can be accessed from any machine with an internet connection, and a developer's sandbox is persisted across multiple sessions. The developer simply logs in, does work, and at some point saves his/her changes and logs out. The saved changes can be accessed at some point in the future from the same machine or an entirely different one.
This is exactly what I needed! Like many developers, I wanted to focus on writing code not maintaining a suite of tools. I for one hope this eventually extends beyond a pilot program and becomes a mainstream practice. You can read more about IBM's Tools as a Service initiative here.
Dustin Amrhein[Read More]
A view from the clouds: Cloud computing for developers
with Tags: development X
Much of the focus on cloud computing to date revolves around the ways in which cloud computing delivers significant administrative and operational benefits. After all, the more dynamic, autonomic capabilities promised by cloud could go a long way in relieving some of the burden in managing large, complex IT infrastructure operations. Sometimes lost in the cloud computing benefits discussion is how cloud computing enhances development and test groups in an enterprise. I can think of five different ways in which cloud computing strengthens development and test groups:
1) Self-service capability: A defining characteristic of cloud computing solutions is a self-service capability that allows users to commission and decommission computing resources as appropriate. In development and test shops, this means users can directly procure the resources they need to complete their tasks without going through lengthy, manually-driven procurement chains. This results in a significantly shortened procurement period, and it means developers and testers can quickly get to the task at hand.
2) Resource availability: Resource sprawl within IT shops, a very common occurrence, leads to resource deficiencies that are sometimes a problem for enterprise developers and testers. Tasks like testing massive configurations and performing intensive load tests become increasingly difficult as it is hard to harness enough resources to get the job done. Cloud computing, through intelligent virtualization, usage tracking, and more, enables this scattered resource pool to be viewed and utilized as a single logical entity. Resources can be doled out as needed, and intense tasks become achievable without extensive setup or procurement periods.
3) Environmental fidelity: From the time a software application or service leaves a developer’s hands to the time it reaches production, quite a few things about its environment may be changed, often times unbeknownst to the developer. The test and operation teams may have different conventions and configurations than development teams, and this can lead to unintended application behavior and delays in service delivery. Cloud computing offers a potential solution to this problem in the form of the increasingly popular templatized solution stack. These solution stacks are pre-built, ready to deploy configurations, which include the application and entire environment down to the operating system. This stack can be captured as some sort of image (i.e. OVF image, Amazon Machine Image, etc.), and passed off between each team along the delivery cycle. Teams downstream from development see the exact environment in which the application was designed and unit tested, and they can balance needed changes to that environment against a known, working solution.
4) Hosted tools: Though possibly not yet standard operating procedure, one can look at the wave of SaaS offerings and make a reasonable assumption that more and more development and test tools will be moving in that direction as well. Why not? Putting aside the technical challenges of hosting something like a code editor on a network, the benefits of centrally hosting these types of tools are clear. Developers and testers no longer have to worry with installing, configuring, running, or maintaining these enabling tools on their own machines. Instead, they can log into the tools from any machine with a network connection and get work done.
5) Increased focus: This benefit is a culmination of all of the above benefits. By easing the process to acquire resources, making more resources available, ensuring configuration integrity, and removing the burden of maintaining tools, developers and testers are left to focus on their core jobs. The operational and administrative portions of their job are significantly reduced through cloud computing solutions. As a result, organizations are in a position to benefit from more developer innovation, increased test quality and coverage, and more.
The above five ideas illustrate that cloud computing can indeed enhance development and test efforts just as they boost administrative and operational tasks. Development and test teams that understand the benefits they can derive from cloud computing are likely to be proactive in advocating its use. For the cloud computing industry, increasing adoption by development and test groups could lead to widespread grassroots movements that further spread the use of cloud computing throughout enterprises.
-- Dustin Amrhein
DKA 0600026VJ2 Tags:  development ibm websphere_application_sev... websphere jee developer eclipse java 4,380 Visits