Translate

quarta-feira, 13 de fevereiro de 2019

Do your company have People or Resources?

First of all, I would like to make the corporative approach I'll be using to talk about people and resources clear to everyone.

People - Individuals who have feelings, believes, values, preferences, ambitions, passions and a need to be constantly motivated.

Resources - Everything needed to get something done in a project that has a cost and a production rate embedded. Eventually, when human effort is needed, people might be used as resources.

Now that we clearly understand the difference, let's talk about how companies misuse both, people and resources on its workdays.

It is very common to see companies (especially the Brazilian ones) in a rush to hire people to be used as resources in a given project. And worse, most of the times they try to get the most qualified people for the lowest wages. The problem is that this practice entails in dealing with a set of known issues. If you wanna have a strong corporative culture that will grow multidisciplinary, mature and self-managed teams that will boost your company, this is the wrong way. 

You've got to remember that those resources are people. Putting them together in a team expecting productivity and interaction among them just isn't gonna work. Your company must have a desired employee profile to be fulfilled before hiring. You can't just put an inattentive person in a team full of details driven people. What you think will happen? The answer is very simple, both team and person will be frustrated at the very first interaction, and that's your fault! As result, you'll get low-quality deliverables, deadline breaking, high turnover and money loss due to constant training for new employees (if you train them).

Try to hire people that are like-minded to your company's objectives and policies so your teams may have more engagement in their daily tasks having the big picture in mind.

In another hand, even having team like-minded with your company's culture you still can't forget that they're people. They need to be respected, they need to feel safe and motivated. Throwing tons of tasks to be delivered in record time on then just because they've shown their value as a team isn't gonna work either. There is a very sharp line between motivation and limitation and even knowing it is not easy to find out, you must try.

Treat people like people. If your employees are happy, motivated and confident, probably your customers will be too. 

If your company have a resource-centric culture, people that work for you will treat your company as a resource too, that is, it can be replaced at any time.

When your company have a people-centric culture you will see the advantages of it which I can explain in a future article.

quinta-feira, 7 de fevereiro de 2019

What is SDLC and why do we need it?



In short, SDLC is a software development process. In this post, I will only talk about a few points that I judge important because besides important it's an embracing matter.

SDLC means Software Development Life Cycle. Is a software production process which aims great quality along with low costs and short terms. This process has a detailed plan about how to develop, alter, maintain and replace a software system.


The SDLC has many distinct phases but the most important is to plan, design, build, test and deploy. Some of the most popular development models that use SDLC are:

- Waterfall model
- Spiral model
- Agile model
- Iterative model
- etc.

Obviously that each model has its particularities, which consequently changes or customizes SDLC according to its purpose. However, despite the model being used, it's considered a good practice in SDLC usage to follow:

1 - Conception


  • Identify the current problems: What don't we want? Identify the weakness and strengths of the actual system with improvement as a goal.

2 - Elaboration


  • Plan: What do we want? Define the requirements of the new software, the resources and effort demanded. Don't forget to list the risks.
  • Design: How do we get what we want? Translate the new system requirements into functional specifications (it depends on what model is been used) with participation and approval of all stakeholders.

Fail on this might cause the project cancellation or at least overrun its costs.

3 - Construction


  • Development: let's create what we want! This phase creates the solution by generating all its code.
  • Test: Did we get what we wanted? Search for bugs and inefficiencies and correct them until the software meets its specifications.
  • Deploy: Let's start using what we wanted! This phase is executed with some limitations and depending on end-user feedback some adjustments might be needed.
  • Maintenance: Let's get this closet to what we want! When used in the real world the solution might not be perfect as expected. Further conditions in the real world might demand some updates on the software to keep it efficient.

Benefits of SDLC

If done right, it can deliver a higher level of management, control and documentation. Developers understand what are they building and why. Everyone agrees on the established objective and the path to achieving it. Also, everyone understands the cost and resources needed.

There are many pitfalls in SDLC usage. It can become a roadblock instead of a facilitator. To fail on the execution of the main phases of SDLC independently of the motivation (cost reduction, meet deadlines, culture and etc.) might bring to you undesired results.

Tools

There are many tools that allow you to manage your project with a satisfactory level of customization to meet company needs.

Here in Montreal we use Redmine to support our SDLC. We're customizing it and maturing the process as the projects are delivered.

It's not easy, it takes time and demands perseverance as you will be breaking paradigms, changing the company's culture and take people out of their comfort zone.


Be insightful and reap the fruits of the SDLC executed in full in the not-so-distant future.