Category: Managing

Effort, control and stress in your projects!

In all projects there is stress. It is up to each of us, control it and reduce it. There are people who only know how to work under stress, and that, damages his/her health, it is scientific and is well known. What to do to reduce stress? This question answers itself with two questions: What level of enlightenment have you about the project you’re involved in? And as a consequence, how much do you think you can “control” the future?

The stress comes from the lack of control of the future, and this happens for 2 reasons: The first is lack of project planning in a clear way for all team members, along with the confidence of the leader who will not “persecute his team developing members” if they cant comply with the impossible tasks times! A well developed project plan, along with a risk plan is a relief for all stakeholders of the project. I think just reading this gives psychological relief and reduces stress!

The second reason is the balance between control and energy expended for such control. A few years ago someone showed me the following drawing:

circles

In this picture, the circle in the center indicates what we control, and the energy we spend on that control. When we move away from the center (things which aren’t in our control, such as other people decisions and acts), the less control we have and we can only hope for influence, that will vanishes the more we move away from the center.

In the center we spent little energy to control things, like our decisions, but when we try to influence, or moving away from the center, we must spend much more energy, like trying to convince others for some decision or trying to control other’s things. If we try to influence things that are very far away from the center we have to spend a huge quantity of energy, raising our stress and causing damage to our health (body and mind).

small_394435153So if you are a project manager, and you really want to manage healthy your team so you can have a very successful project in every way, learn to manage well your energy and of your team, it will give you in a long run a successful personal, professional and social life. Let me say to you some Christian advice “love thy neighbor as thyself”.

If you are one of the team developers, you are not obliged to accept whatever the project manager gives to you, if there’s one thing I’ve learned is: it is harder to say “no”, and is easier to say “yes”, but it is the “no” that define your life. Do not be confrontational, present alternatives, discuss your point of view, if the project manager don’t accept it and the right its on your side, well probably the company is not for you!

This way of seeing things applies to all our life.

photo credit: bubbo.etsy.com via photopin cc

LinkedIn Recommendations–Do you know the risks?

There are a lot of people asking for recommendation in LinkedIn and other social networks.
My focus will be on LinkedIn, because it’s the most popular business professional network, where many people are trying to gain and increase their “personal brand”.
Although it seems a great way to gain some free “personal brand”, I think the person who will write a recommendation for a friend or colleague must think twice before do it:

Among other questions I will start with:

1) In your professional analysis is it really true what are you writing about your friend?
2) Are you ready to answer about the words you used to recommend your “friend”, to your boss, ex boss, future boss, colleague, friend, etc.?
3) Do you want to be accountable for a future failure of your recommendation just because someone who trusts your judgment accepted it has true?

On LinkedIn it’s not about what people are saying about you, I can value more your value, reading the recommendations written by you, because it reflects your judgments, person analysis, technical and personal soft skills, etc. If you can do a good analysis, probably you know something about the subject you are talking about, and that values you, not the person that you are recommending.
Even being a friend of yours, it’s your reputation in the game, and above all in the the social network, visible to thousands of people, including head hunters and job opportunities.
Sometimes people ask me if I know/recommend someone to a specific job. Sometimes I know someone, sometimes not, but I always try to recommend a person that I know it will do the job, and be careful enough to say what I know about the person and don’t risk to blindly recommend her/him, and in the future be the guy who cant analyze people, who has recommended a failure, that will be my failure. How can I, in the future, present my self as a Team Leader, Project Manager or a Senior if I cant analyze the skills of someone? And, these skills must be not just technical ones, but soft skills too.

So, my “recommendation”: be very honest when you recommend someone on LinkedIn or other social network, because its not about the person who are recommending, but its, above all, the content of your recommendation about that person, which will reflect you as a professional. And it will be your name and your reputation, and your capacity as a business professional.

Don’t jeopardize your future just because he’s a friend.
Sometimes, it’s hard to say no to a friend, he could not understand a friend saying no to a “little help” for is professional life. In that case, I recommend you to be honest, try to focus on things that are really true, and if that friend had to work with you, what role do you think will fit in him? That, I think, it will be the content of your recommendation.

Hope it helps you in the future!

José Cruz

Manage the system, not the people

When you are working with people, one thing you must expect and be sure about: “You are working in a complex system, not in a complicated one” (See a previous post to know the difference).

When you work in a complex system, there are some unpredicted behaviors, as everybody who works with people already know. So, you can’t control the people, you can try a lot of strategies to do it, like: persuasion, influence, fear, bonus, promotions, etc. Some of these strategies are good ones, but others are malicious and just show how bad a manager is as a manager and as a person.

But whatever your strategy is (hope you choose the good ones for everybody), more or later you will have “surprises” because you thought you could control a complex system.

So, how can I manage a team if it’s not manageable by nature and have some unpredicted behavior?

You can minimize the unpredictability managing the system, creating the rules, not rules for the people but for the system. If you are a project manager, or a team leader, you must give freedom to the team members, but show them the constraints that you think will influence the behavior of the system, or in this case, the team performance, motivation, etc. The team, as a complex system with people, will experience a wonderful thing, a complex system growing and self-organizing with itself. I have already experienced this in some projects where the project manager was out or gave this managing opportunity.

This seems to be a simplistic view of software teams’ management, but if you stop and think for a while I am sure you reach this conclusion, or similar, because when you are managing people you are managing the unpredictability which seems to me a paradox, and it is! So, this is why you must let the system go, inside your parameters.

Want an example of this? Traffic.

No one is controlling the people inside the car, and sometimes they really have an unpredictable behavior, but, for the good of everybody in this system (with some flaws but fortunately just a few), the system self organizes. There are anyone controlling the drivers? No! There are unpredictable behaviors? Yes, they are people! The system works? Yes, I use it all the time! This works for software developing teams to, really! Do you have the courage to try it out?

It’s a bug! it’s a feature! Its just code! Its…super-whatever!

One of these days someone from my team told me about a story where someone closed a bug with the comment: “Works as coded!”. Well, its true, indeed, and its very difficult to discuss this argument. Probably his project manager will not disagree (I hope) with the comment but certainly will disagree by closing the “bug” with such argument!

Once in a while, I do training, I’m a Microsoft Certified Trainer and a Portuguese Certified to do training in any subject. (This doesn’t mean I can really do training to anyone in anything, its just means Portugal accept me to do training).

In one of these trainings I was teaching my students about software development cycle, and between roles, risk management, project management, etc.… one of the lessons was about bugs. What is a bug?

“A bug its nothing more than a problem in the development that its visible in the final product to the customer. “

You can disagree with this sentence, but think in it for while?

– Do you really could design all the possible tests (unit, functional, etc) in a way that you can guarantee that’s impossible your application/system has no bugs?

Lets dream (for a big application) you can! And you conclude that you need to  develop about 2000 tests with 10000000 input states for these tests, and expect 190000 different outputs from these inputs. (for clarification, you must test success and probable/expected failures)

If you are developing, for instance a web site, and you know that from all these bugs, only 1/100 could be visible or could bring trouble (semantic and/or behavior) to your application, it means you will not have to correct all the other 9/100 bugs discovered. To your customer, its important to pay more development weeks to the team to correct these 9/100 bugs? And if the customer its your company, I will bet with you that the project manager doesn’t want these 9/100 bugs corrected! It will not increase any value to the final product, it will not have any visible impact to the final customer, the only think that will increase it’s the project expenses.

As a developer, as a team leader, and as a project manager, something that I learned it’s: Any technical think in a project must have a business impact, and the goal of a member of team, such as leader, developer or project manager its to minimize the expense and increase quality of the product. This quality is observable by the final customer and not from the developer team. I think, this is applied to any subject, not only software development.

image

In a future post, I will merge this bug concept with the complexity/complicated subject post I have wrote before, and we can really have some fun discuss this intersection subjects, since that, most of times, a really software bug its something about application behavior, and behavior its related with predictability,  not related with understanding (at least in complex systems). Read my old post ”Complex or Complicated” and I think you will know what to expect from my future post.

In the future, be more nice with the bugs!

Complex or Complicated

Usually these are words used as synonymous, when in fact they are orthogonal between them.

When we are talking about “complicated”, we are explaining something about linearity. Something is “simple” or “complicated”. What does this mean? Let’s see an example:

Something “simple”: understanding how a bicycle works. I think we don’t need to a genius for this, you analyze the “simple” engine and after some minutes (hopefully seconds) you’ve figured it out!

Something “complicated”: How a clockwork works. If you try to analyze it, you will have to think and analyze the mechanics for a long time, write a lot, until you figure out how the watch works, and how all those components fit together to give you an “accurate” time. It’s a task that’s its possible, takes some time, but you can analyze it linearly until you find the solution that explains it 100%.

Click image below to follow to a site explaining how this works!

Terminology of the geartrain

The image should be perceived has trying to show a complex system, but its not, it’s just very complicated, but with a 100% detailed explanation how the engine works!

So, we have Simple and Complicate, as 2 grades of linearity.

How about “Complex”?

When we say “Complex”, we are talking about behavior, not linearity. We can take several degrees of behavior but let’s analyze 3 very understandable:

“Predictable”: Something that we can predict, we could not understand it totally, but we know how it responds: For Instance: I jump, and gravity pushes me down again. Do I understand gravity? Something in school…. but…. its invisible and pushes me down! 😉

Complex: Something that we can somehow predict but sometimes arises some unexpected behavior.  For instance: Social interactions in a small company, home, software projects with several components in different tiers. Or Poker, a game with rules, but not predictable.

Chaotic: Like complex systems, but with plenty unexpected behavior factors. For instance: Events in  a big city. weather sometimes is complex and sometimes chaotic.

So, I hope in the future when someone use the word  complex knows that’s its different from complicated. Saying complicated means I just need tools and time to figure it out, and complex I could have tools and time and take my whole life and not discover or even completely predict the system.

image

Hopefully in future posts dive deeper on this subject. It’s a very popular one in software team leading.

Great video about education!

Education, Inovation, creativity

Verdadeira Vida

Um salto de alegria!

Será este o teu mundo?

O que é a verdadeira vida?

O que é a verdadeira alegria?

Só porque te ris, achas que tens a verdadeira vida?

Já alguma vez te apaixonas-te? Lembras-te do sentimento? No teu dia a dia tens esse sentimento pela vida?

Sabes onde procurar esta vida?

Bad Behavior has blocked 82 access attempts in the last 7 days.

Hyper Smash