Let me tell you first an experience that happens to me when purchasing on Amazon. Once, by mistake, I put the wrong address on an order. I notice it right away, so I call the provider to fix the address. The provider tells me that Amazon doesn’t have the functionality to fix the address so he will have to cancel the whole order and hope that I make the purchase again.
Fixing an address doesn’t seem like a big deal, but why amazon don’t have that functionality? …
Bad code, you say?
There are so many things that influence the outcome for an application, that writing code is the last one that you should worry about.
Writing code is only about 30% of the total effort needed to create an application. And from that whole 30%, only 10% you are actually typing code.
Creating an application is one of the hardest things to do. We as humans, our brain is a wonder, they can solve things or intuit a solution without to much information and/or instructions on how to do things.
Software, on the other hand, is kind of dumb. They need extremely precise instructions to do things. For sure the software can do things faster and better than a human but it is as smart as the instructions it receives and it only takes one missing instruction to do a complete mess or stop working. …
First, let's talk about the concept of finish.
As a project manager or team lead, you assign a task to be done to a developer and is very important that the developer tell you when the task is done. At this point, the task isn't finished yet, after that is your responsibility to verify that the task is actually done and that fulfill all the requirements needed.
Usually, you will have a Tester that will do this verification. Until you or a tester verify that the functionality implemented doesn’t have defects and it does what is expected, covering all the scenarios and doing all the validations, then the task is finish. …
To better understand the answer lets first see some history.
Software development has existed since the beginning of the 1960s. The way software was created at that time is completely different and formal methodologies make sense at that time since they were created for that kind of development. A lot of developers were needed to write code and projects took a lot of time. It was expensive and only big companies could have the luxury to afford it. There where heavyweight methods.
But then, in the 1980s things changed, the PC was invented and new languages come to the playground. Now you don’t need an army of software developers to create software nor big and expensive machines. Teams now are a lot smaller since everything has simplified and soon everybody realized that the old way to make software now is obsolete and an overkill. …
There is only one constant in software development, things are going to change. This is an immutable Law. The first step to properly handle “change” is to accept this fact. It is so important, that even in the Agile Manifiesto principals you can read: “Welcome changing requirements, even in late development”. So, they are not going away, but that doesn’t mean that you can do nothing about it.
Let’s address why it happens first because the people that don’t learn from history are condemned to repeat it, then how to handle them in a way that doesn’t create headaches.
To the human mind, it comes very naturally that when it is presented with a problem it will come up with a solution. The inexperienced managers implement control over their departments by this approach, as soon something comes up, they will tell what to do, they figure out everything on the fly, this is called reactive management or as I like to call it Cowboy management since everything is improvised. Is not possible for any human to foreseen what situations we are going to be presented to handle, so this management style comes naturally. People that work in hotels will tell you strange stories about how they are always surprised by the kind of things that happen on the hotels no matter how many years you been working on that industry. …
Let's start with this article: Enterprise Software is the hardest to develop.
There are several kinds of software defects, which is the actual name of ‘bugs’, and all of them have completely different causes.
First, let start with the technical defects. These ones are common among new and less experienced developers. For example, let say you need an application that sums two integer numbers and the requirements clearly indicate that, then when your developer delivers the software these things happen:
I have a cousin that use to work on a factory. His job was to bend pipes. He was in a station as part of a production line. Some station before his station do a specific bending and some station after his station do other specific bending so at the end of the production line the product was finish.
The task given to him say something like this: For client “X” for order number “N” do bend “Y” on 300 pipes (the number of pipes always is different). So, the industrial engineers department provided the machinery, the tools needed to do that specific bending, a set of instructions on how to do the station setup and a set of instructions how to the bending of the pipes. Usually they do that once and then as the orders arrive the worker do the same bending over and over again. …
What would happen to you if suddenly you are the one been fire? How does that will affect your income, your mortgage, your lease car, your relationship with your spouse or wife, the education and feeding of your children? How in jeopardy will be your future and your family future?
What would you feel if you are a good and productive and hard worker, loyal to the company for several years but it that won’t matter? still you will get fire.
Like uncle Ben says: With great power comes great responsibility. …
The kind of work the developer does is like a craftsman, but an usual management mistake is trying to manage the developers like they are in a factory assembling televisions for 8 hours. In those positions, it makes sense to not allow a worker to stop doing their job because he stops finishing the product which translates to fewer pieces produce by day, which raise the cost and lower the profit.
But that way to manage workers don’t work with software developers. The software developers usually are 90% of the time figuring out how to solve a problem and 10% writing code. …
Si estas en una situación en donde alguien a quien te gusta te ve como amigo y tus intenciones son otras, debes:
1 Ser claro que no quieres ser su amigo.
2 Debes ser alguien interesante, y no trates de aparentar ser alguien interesante. Trabaja en ti primero, ve al gimnasio, has rapel, lee libros interesantes, toca la guitarra, canta, aprende piano, lee mas libros, que tu platica sea interesante, ten pasatiempos raros, cocina para otros, se alguien único y diferente. No trates de fingir nada de esto, se nota cuando solo estas hablando de mas. …