How cloud computing affects projects

“Human knowledge has been changing from the word go and people in certain respects behave more rationally than they did when they didn’t have it. They spend less time doing rain dances and more time seeding clouds.”
Herbert Simon

Cloud computing – that server in the sky – has gotten a lot of press recently. Organizations are investigating its power to offer less expensive client services, to more tightly couple dispersed organizations, and to integrate open source applications with proprietary ones to improve the comprehensiveness of services. Cloud computing is also touted as a way to save money and be more green because less energy and natural resources are used.  In fact, I just got back from the Microsoft Worldwide Partner conference in DC where every presentation had something about “the cloud” and how you needed to be “all in.”

Tim O’Reilly, CEO of founder and CEO of O’Reilly Media, talked with operations personnel at OSCON 2010 about cloud coordinating services during the relief efforts after the Haiti earthquake. He discussed using information services provided through Ushahidi (Tufts University) to take source data from SMS, creating interactive maps using Google Earth, provide instantaneous translation with software developed in close to real-time, and connecting people through Skype.  

How will cloud computing change development and project management?

From a project management perspective, several things about business change in a cloud environment. Costing, for example, reflects service agreements rather than hardware and software purchases. Maintenance and troubleshooting becomes more difficult because it is the responsibility of the service provider. How queries are written against stored data changes because of the way that databases are handled in the cloud. Comfort in data security services from providers becomes a huge deal. Developers need proficiency in dynamic programming languages such as Python, Perl, Ruby etc.

Architectures change as Lew Tucker, Sun’s CTO of Cloud Computing cautions, “Different parts of an application might be in many places in the cloud. For example, a presentation layer might be on Facebook, storage could be on Amazon.com’s S3, and application logic could run somewhere else entirely. "

Nikita Ivanov,  CEO of GridGain Systems – Cloud Computing Software suggests that The best way to think about cloud computing is as a data center with an API. In his blog, he presented a provocative list of real-life challenges and observations about cloud computing from which I have selected a couple major ones for consideration by project managers and developers:

  1. You will spend weeks and months fine tuning your application and developing additional functionality; plan accordingly
  2. With 1000s of remote nodes, things that worked in 10s of nodes often “mysteriously” don’t work on the “cloud” scale.
  3. Debugging problems require pretty deep understanding of distributed computing; learning curve is very steep; trial and error is often the only solution
  4. Cloud(s) are implemented based on hardware virtualization – make sure your grid middleware can dynamically provision such images on demand.

Cloud computing requires a platform that can manage the dynamics of the application including troubleshooting performance issues. There are currently no great approaches to identify quickly the root cause of application performance issues in the Cloud. Existing tools and solutions are limited in the way they capture information reports Andreas Grabner in the post, “Challenges of Monitoring, Tracing and Profiling your Applications running in The Cloud”.

To cloud or not to cloud, that is the question. There is certainly potential value added to applications and organizations using the capabilities of cloud computing. However, before making the plunge into territory that will significantly change the way you do application development and manage projects, I strongly recommend educating yourself on process and procedures and get advice from experts.  There are several good places to start and Microsoft has some good resources to help you get started.

Please share your thoughts and experience with computing in the cloud.

 

 

Project Manager Tips for Successful Negotiating

What do you do when you cannot get what you need or want by simply asking (or using brute force — as appealing as that might be)?  Negotiation is one way to get most of what you want when you run into this situation.  Negotiation may involve a simple two-person dialogue (I want Joe Smith to head up testing on the new product before its release; you want Joe to stay with testing the current product; the boss says work it out between yourselves.) Your intelligent scheduling software will not assign Joe full-time to both jobs. So, negotiating an agreement is required.

Negotiation comes into play for simple decision making such as where to go for lunch or what time to should we meet to complex decisions about product pricing, developing a new approach, selecting a team leader, or putting together names for a lay-off list. As project manager, you are negotiating for your team and yourself.

Prepare for Negotiations:
Decide what you want from the negotiations and the minimum you can live with. In between what you want and can live with are the things that you have to trade in negotiations. Ask yourself what the other person wants and what they have to trade — be realistic and acknowledge the justness of their needs. If possible, breakup the total need into small bites of activity or resources. Sometimes small agreements can be achieved without a total victory.

Outside of the specific resource or activity under negotiations, consider what else you have available to “trade”. For example, think about a basketball team that needs a strong forward. The team may put up money, other players, or draft choices to negotiate the release of a player they want. Be flexible on parameters that do not matter to achieving your goal. Start times, hours, days, location, reporting chain, end time, cost, and long-term ownership are all possible areas of negotiation.

Strategies for Negotiations:
Sonshi’s “Intelligent Approaches to Conflict Resolution and Competition” provides wise advice to the beginning negotiator summarized as: 

  • Negotiation is mostly about listening.
  • Negotiation requires give and take. If you can figure out a way to give the other person something important to them while getting what you want, you have a win-win situation.
  • “Be human. Don’t try be clever. In fact, don’t display cleverness. Talk softly and be pleasant. You’re trying to have him be on your side. Share your troubles and problems if need be. You’re not trying to outsmart anyone here — you’re trying to obtain an amicable agreement with another person. When she realizes she is not going against a ruthless opponent but rather someone who’s a real person, she’ll drop her guard and work with you. Isn’t that what you want in the first place?”
  • “If time is of the essence to you, you are at a great disadvantage. Where you must obtain a resolution with the other party by a certain date, she may not be in such a rush. Because of this fact, she can walk away from the negotiation table causing you to give up something valuable just to reach an agreement. Therefore, make sure you’re not constrained by time. Even if you are, do not display it.”

In terms of negotiation strategy, Anatol Rapoport, a mathematical psychologist offered a simple and provably effective negotiation strategy called tit-for-tat. This was used to solve the famous Prisoner’s Dilemma used in game theory to optimize conditions that facilitate cooperation between two parties with conflicting goals. (For more information, see History of Tit for Tat)  According to tit-for-tat, two players have two choices: either cooperate or defect. The best strategy to a successful negotiation is to begin by cooperating (perhaps on one of those little items you identified when breaking down the bigger task). Then on your next move, you do whatever the other person did – so if they cooperate, you cooperate again. If they defect – that is refusing to make an offer – you retaliate by removing your offer or something else of value to the other person.

In studying successive evaluation of the tit-for-tat strategy, four rules emerged:

  • Never be the first to defect
  • Retaliate only after the other party has defected
  • Be prepared to forgive after carrying out just one act of retaliation
  • Adopt this strategy only if the probability of meeting the same player again exceeds 2/3

Sample dialogue – your project needs senior QA and test from a matrix organization. The manager says he can’t meet your project schedule:

(YOU)Make an offer: “The project begins May 1, but I can wait until September 1 to get Joe’s help”.
(THEM) Cooperative response: “Joe is on a project until December”
(THEM) Defecting response: “I can’t ever imagine Joe having any time available in the foreseeable future”

(YOU responding to cooperative response): “Mary Sue in QA my other project can be made available to help you from September through December.”

(YOU responding to defecting response): “Your department needs to hire another QA. my project has high management visibility and I would hate to report that we can’t make schedule because of failure to do QA.”

A couple final thoughts on successful negotiating techniques:

  • Think out of the box. There may be several ways to get what you both want.
  • Do not be afraid to invite an objective third party – one without a stake in the decision – to participate in the discussion. They may have new ideas that are not clouded by preconceived notions of “how this needs to be done” and will be less emotionally involved in the give and take.

If you really want to get better at negotiation I suggest taking a course  – here is the one that I took:
Karrass seminar on Negotiating – http://www.karrass.com/kar_eng/effectivenegotiating.htm

 

The Lazy Project Manager's Blog

The Home of Productive Laziness Thoughts

ProjectManagement.com

Thoughts, experience, tips and tricks on issues affecting managers and project management

A Girl's Guide to Project Management

Project Management musings for one and all

LeadingAnswers: Leadership and Agile Project Management Blog

Thoughts, experience, tips and tricks on issues affecting managers and project management

Project Management Hut

Thoughts, experience, tips and tricks on issues affecting managers and project management

Herding Cats

Thoughts, experience, tips and tricks on issues affecting managers and project management

beyondcenter

Pushing the Edges Out ...

projectxpert

Just another WordPress.com site