Tuesday, July 30, 2013

Cloud Workers: How Cloud Computing affects Testers

Tester

Connectathon       
By Dugsong, via Wikimedia Commons
Cloud computing can present a unique set of challenges to testers.  Every system is not built the same.  Some are more stable and contains less bugs than others.  Some systems are similar to traditional software development while others represent a completely new way of doing things.

Pro

Some systems such as Infrastructure as a service (IaaS) are similar to traditional software development systems.  With these fimilar environmens testers do not have to change much of their methods of testing.

Con

Other systems such as platform as a system (PaaS) can represent entirely new paradigms.  Multitendency system and databases, for example, are systems that exist across multiple systems.  Traditional test automation can involve inserting and them manipulating data.  If the testing system does not pin itself to one database database update latency may cause unexpected errors.  PaaS often do not have the same testing hooks that many mature software languages do.

Software as a Service (SaaS) can suffer from high loads.  The cloud provider may also not give the developers a test environment to work with. When they do find bugs it may be up to the cloud provider to fix.  The cloud provider may not be willing to fix the service before the systems is due to go into production. 

Many cloud systems change versions outside of the SDLC of the current project.  System that are tested and working may break without notice.  Systems with governors may work at the time of release but break under strain.  

Conclusion

In short testers are the ones who have the great burden working with could computing.  They need to find different ways of testing.  In the past testing mainly happened before deployment into production and was expected to remain working the same until the next release.  Cloud computing changes that.  Systems can easily break after deployment changing the way testers need to test.  

Monday, July 29, 2013

Cloud Workers: How Cloud Computing Affects Developers

Developer

Wikimania 2009 - Tim Starling
By Nicolas Goldberg,via Wikimedia Commons     
For developers cloud computing represents a new set of tools that can make development time faster by giving them ready made tools and components.  Not all components are made the same.  Some tools such as Microsoft's Azure and Amazon's AWS give a set of tools that most developers would not have access to.  These tools can come with caviots that can frustrate developers and delay projects.

Pros

Developing in the cloud gives developers access to more tools than ever before.  Software developers can take advantage of elastic computing to scale their applications.  They can globally distribute their assets to increase speed of websites.  Cloud computing increases time to market with many applications.

Cons

Cloud computing does come with limitations.  Some of these limitation are due to inherent factors such as the latency of transmitting information over the internet while other limitations come directly from the cloud provider to safeguard one user from taking down the system for everyone.  Developers need to make systems "cloud ready".  A cloud ready system is one that is tolerant to the limitations of cloud computing.

Over the past 20 years the software development industry has undergone an evolution into better systems and methods.  Design patterns such as the abstract factory pattern help developers complex systems that meets a specific need, development methodologies such as test driven development has help companies cut down development time.

Building in the Cloud

Systems that are not cloud ready can break when the system is under strain.  Latency of the internet can cause system to become prohibitively slow.  In modern development the software is tested and then put into production with a limited smoke test to make sure it works.  With cloud computing systems can fail long after they are deployed.  Software developers need to think critically about the limitations of the cloud they are using and adjust their development methods in a way that will work with the cloud.

Software developers need to have a way of monitoring their cloud based software to make sure that events such as strain or systems upgrades do not break the system.  With traditional software development after the deployment the systems is forgotten about until.  Cloud system's need monitoring in production.  Simply passing test in the development environment will not suffice in the cloud world.



Tuesday, July 16, 2013

Cloud Workers: How Cloud Computing affects Project Managers

Project Manager

US Army 51968 Charlie Wilcox, USASMDC-ARSTRAT Simulation Center program manager, left, talks with Ben Matthews, project manager, and Cathy Hatchett, security manager, both with GaN Corporation. GaN Corporation was
By Deborah Erhart, via Wikimedia Commons     
Cloud computing is a new paradigm for IT professionals.  For project managers cloud computing brings with it new tools that bring with them new possibilities.

Pros


Cloud computing services come with loaded with a predefined set of features giving access to functionality for no additional development time.  Many cloud computing providers such as Azure and Amazon's AWS have templated or pre-defined systems reduce the time to develop projects.  While others such as Salesforce have an app store that allows the easily addition of adding for low or no cost.

Cloud computing can be empowering to less technical workers such as project managers by giving them the ability to use and administer software without always involving other IT workers.  Some cloud systems allow non technical workers the ability to add on extra components the same way they would install an app for a phone.

Cons

While cloud computing has great benefits for organizations there are some pitfalls that project managers need to know to help them plan and reduce risk in their projects.  Software as a Service (SaaS) for many cloud providers can have updates that effect the project.  Cloud services that work one day can break then next.  Someone needs to be responsible within an organization to keep track of the emails from the cloud provider about scheduled outages, updates, and bug fixes.

When using cloud software half of the system is controlled by someone else.  What may be an emergency to an internal IT organization may not be to the cloud provider.  Many cloud provides have a 72 hour turn around time for their help desk.  But fixes or essential updates may take months to happen if they happen at all.

Cloud computing is also a fixed asset.  With traditional software projects software development teams can build highly flexible software.  Cloud computing is pre-defined resources that are inflexible.  Project managers need to learn about the limits of the system they are purchasing before deciding to go with them.

Discussion

Cloud computing can help organizations succeed but it requires PMs to plan for delays due to the cloud provider.  Project managers need to also find the limitations of the cloud systems before deciding to go with the system.