diff options
Diffstat (limited to 'content/posts/2015-11-10-software-development-pitfalls.md')
| -rw-r--r-- | content/posts/2015-11-10-software-development-pitfalls.md | 256 |
1 files changed, 127 insertions, 129 deletions
diff --git a/content/posts/2015-11-10-software-development-pitfalls.md b/content/posts/2015-11-10-software-development-pitfalls.md index 57e9736..b9edd19 100644 --- a/content/posts/2015-11-10-software-development-pitfalls.md +++ b/content/posts/2015-11-10-software-development-pitfalls.md | |||
| @@ -5,178 +5,176 @@ date: 2015-11-10T12:00:00+02:00 | |||
| 5 | draft: false | 5 | draft: false |
| 6 | --- | 6 | --- |
| 7 | 7 | ||
| 8 | Over the years I had the privilege to work on some very excited projects both | 8 | Over the years I had the privilege to work on some very excited projects both in |
| 9 | in software development field and also in electronics field and every experience | 9 | software development field and also in electronics field and every experience |
| 10 | taught me some invaluable lessons about how NOT TO approach development. And | 10 | taught me some invaluable lessons about how NOT TO approach development. And |
| 11 | through this post I will try to point out some absurd, outdated techniques I | 11 | through this post I will try to point out some absurd, outdated techniques I |
| 12 | find the most annoying and damaging during a development cycle. There will be | 12 | find the most annoying and damaging during a development cycle. There will be |
| 13 | swearing because this topic really gets on my nerves and I never coherently | 13 | swearing because this topic really gets on my nerves and I never coherently |
| 14 | tried to explain them in writing. So if I get heated up, please bear with me. | 14 | tried to explain them in writing. So if I get heated up, please bear with me. |
| 15 | 15 | ||
| 16 | As new methods of project management are emerging, underlying processes still | 16 | As new methods of project management are emerging, underlying processes still |
| 17 | stay old and outdated. This is mainly because we as people are unable to | 17 | stay old and outdated. This is mainly because we as people are unable to |
| 18 | completely shift away from these approaches. | 18 | completely shift away from these approaches. |
| 19 | 19 | ||
| 20 | I was always struggling with communication, and many times that cost me a | 20 | I was always struggling with communication, and many times that cost me a |
| 21 | relationship or two because I was not on the ball all the time. Through every | 21 | relationship or two because I was not on the ball all the time. Through every |
| 22 | experience, I became more convinced that I am the problem and never ever | 22 | experience, I became more convinced that I am the problem and never ever doubted |
| 23 | doubted that the problem may be that communication never evolved a single step | 23 | that the problem may be that communication never evolved a single step from |
| 24 | from emails. And if you think for a second, not many things have changed around | 24 | emails. And if you think for a second, not many things have changed around this |
| 25 | this topic. We just have different representations of email (message boards, | 25 | topic. We just have different representations of email (message boards, chats, |
| 26 | chats, project management tools). And I believe this is the real issue we are | 26 | project management tools). And I believe this is the real issue we are facing |
| 27 | facing now. | 27 | now. |
| 28 | 28 | ||
| 29 | There are many articles written about hyper connectivity and the effects that | 29 | There are many articles written about hyper connectivity and the effects that |
| 30 | are a direct result of it. But mainstream does nothing towards it. We are just | 30 | are a direct result of it. But mainstream does nothing towards it. We are just |
| 31 | putting out fires, and we do nothing to prevent it. I am certain this will be | 31 | putting out fires, and we do nothing to prevent it. I am certain this will be a |
| 32 | a major source of grief in coming years. And what we all can do to avoid this | 32 | major source of grief in coming years. And what we all can do to avoid this is |
| 33 | is to change our mindset and experiment on our communication skills, | 33 | to change our mindset and experiment on our communication skills, development |
| 34 | development approaches. We need to maximize possible output that a person can | 34 | approaches. We need to maximize possible output that a person can give. And to |
| 35 | give. And to achieve this we need to listen to them, encourage them. I know | 35 | achieve this we need to listen to them, encourage them. I know that not |
| 36 | that not everybody is a naturally born leader, but with enough practice and | 36 | everybody is a naturally born leader, but with enough practice and encouragement |
| 37 | encouragement they also can become active participants in leadership. | 37 | they also can become active participants in leadership. |
| 38 | 38 | ||
| 39 | There are many talks now about methodologies such as Scrum, Kanban, Cleanroom | 39 | There are many talks now about methodologies such as Scrum, Kanban, Cleanroom |
| 40 | and they all fucking piss me of :). These are all boxes that imprison people | 40 | and they all fucking piss me of :). These are all boxes that imprison people and |
| 41 | and take away their freedom of thought. This is a straightforward | 41 | take away their freedom of thought. This is a straightforward mindfuck / |
| 42 | mindfuck / amputation of creativity. | 42 | amputation of creativity. |
| 43 | 43 | ||
| 44 | Let me list a couple of things that I find really destructive and bad for a | 44 | Let me list a couple of things that I find really destructive and bad for a |
| 45 | project and in a long run company. | 45 | project and in a long run company. |
| 46 | 46 | ||
| 47 | ## Ping emails | 47 | ## Ping emails |
| 48 | 48 | ||
| 49 | Ping emails are emails you have to write as soon as you receive an email. Its | 49 | Ping emails are emails you have to write as soon as you receive an email. Its |
| 50 | sole purpose is to inform the sender that you received their email, and you | 50 | sole purpose is to inform the sender that you received their email, and you are |
| 51 | are working on it. Its result is only to calm down the sender that their task | 51 | working on it. Its result is only to calm down the sender that their task is |
| 52 | is being dealt with. It’s intent basically is, I did my job by sending you | 52 | being dealt with. It’s intent basically is, I did my job by sending you this |
| 53 | this email, so I am on clear grounds. I categorize this email as fuck you email. | 53 | email, so I am on clear grounds. I categorize this email as fuck you email. |
| 54 | This is one of the most irritating types of emails I need to write. This is | 54 | This is one of the most irritating types of emails I need to write. This is the |
| 55 | the ultimate control freak show you can experience, and it gives the sender a | 55 | ultimate control freak show you can experience, and it gives the sender a false |
| 56 | false feeling of control. Newsflash: We do not live in 1982 where there was a | 56 | feeling of control. Newsflash: We do not live in 1982 where there was a |
| 57 | possibility that email never reached the destination. I really hate this from | 57 | possibility that email never reached the destination. I really hate this from |
| 58 | the bottom of my heart. | 58 | the bottom of my heart. |
| 59 | 59 | ||
| 60 | They should be like: “Yes, I am fucking alive, and I am at your service my | 60 | They should be like: “Yes, I am fucking alive, and I am at your service my |
| 61 | leash!”. I guess if I would reply like this, I wouldn’t have to write any | 61 | leash!”. I guess if I would reply like this, I wouldn’t have to write any more |
| 62 | more of this kind of messages. | 62 | of this kind of messages. |
| 63 | 63 | ||
| 64 | ## Everybody is a project manager | 64 | ## Everybody is a project manager |
| 65 | 65 | ||
| 66 | Well, this is a tough one. I noticed that as soon as you let people to give | 66 | Well, this is a tough one. I noticed that as soon as you let people to give |
| 67 | their suggestions, you are basically screwed. There is a truth in the saying: | 67 | their suggestions, you are basically screwed. There is a truth in the saying: |
| 68 | “Give low expectations and deliver little more than you promised.”. | 68 | “Give low expectations and deliver little more than you promised.”. |
| 69 | 69 | ||
| 70 | People tend to take a role of a manager as soon as they are presented with an | 70 | People tend to take a role of a manager as soon as they are presented with an |
| 71 | opportunity. And by getting angry at them, you only provoke yourself. They are | 71 | opportunity. And by getting angry at them, you only provoke yourself. They are |
| 72 | not at fault. You just need to tell them they are only giving suggestions and | 72 | not at fault. You just need to tell them they are only giving suggestions and |
| 73 | not tasks at the beginning and everything will be alright. But if you give | 73 | not tasks at the beginning and everything will be alright. But if you give them |
| 74 | them a feeling that they are in control, you will have immense problems | 74 | a feeling that they are in control, you will have immense problems explaining |
| 75 | explaining why their features are not in current release. | 75 | why their features are not in current release. |
| 76 | 76 | ||
| 77 | Project mission must be always leading project requirements and any deviation | 77 | Project mission must be always leading project requirements and any deviation |
| 78 | from it will result in major project butchering. And by this, I mean that the | 78 | from it will result in major project butchering. And by this, I mean that the |
| 79 | project will get its own path, and you will be left with half done software | 79 | project will get its own path, and you will be left with half done software that |
| 80 | that helps nobody. Clear mission goals and clean execution will allow you to | 80 | helps nobody. Clear mission goals and clean execution will allow you to develop |
| 81 | develop software will clear intent. | 81 | software will clear intent. |
| 82 | 82 | ||
| 83 | ## We are never wrong | 83 | ## We are never wrong |
| 84 | 84 | ||
| 85 | I find this type of arrogance the worst. We must always conduct ourselves that | 85 | I find this type of arrogance the worst. We must always conduct ourselves that |
| 86 | we are infallible and cannot make mistakes. As soon as a procedure or process | 86 | we are infallible and cannot make mistakes. As soon as a procedure or process is |
| 87 | is established, there is no room for changes or improvements. This is the most | 87 | established, there is no room for changes or improvements. This is the most |
| 88 | idiotic thing someone can say of think. I think that processes need to involve | 88 | idiotic thing someone can say of think. I think that processes need to involve |
| 89 | and change over time. This is imperative and need to have in your organization | 89 | and change over time. This is imperative and need to have in your organization |
| 90 | if you want to improve and develop company. We all need to grow balls and change | 90 | if you want to improve and develop company. We all need to grow balls and change |
| 91 | everything in order to adapt to current situations. Being a prisoner of | 91 | everything in order to adapt to current situations. Being a prisoner of |
| 92 | predefined processes kills creativity. | 92 | predefined processes kills creativity. |
| 93 | 93 | ||
| 94 | I am constantly trying new software for project managing and communication. | 94 | I am constantly trying new software for project managing and communication. I |
| 95 | I believe every team has its own dynamic, and it needs to be discovered | 95 | believe every team has its own dynamic, and it needs to be discovered |
| 96 | organically and naturally through many experiments. By putting the team in a | 96 | organically and naturally through many experiments. By putting the team in a |
| 97 | box, you are amputating their creativity and therefore minimizing their | 97 | box, you are amputating their creativity and therefore minimizing their |
| 98 | potential. But if you talk to an executive, you will mainly find archetypical | 98 | potential. But if you talk to an executive, you will mainly find archetypical |
| 99 | thinking and a strong need to compartmentalize everything from business | 99 | thinking and a strong need to compartmentalize everything from business |
| 100 | processes to resource management. And this type of management that often | 100 | processes to resource management. And this type of management that often |
| 101 | displays micromanagement techniques only works for short periods (couple of | 101 | displays micromanagement techniques only works for short periods (couple of |
| 102 | years) and then employees either leave the company or become basically retarded | 102 | years) and then employees either leave the company or become basically retarded |
| 103 | drones on autopilot. | 103 | drones on autopilot. |
| 104 | 104 | ||
| 105 | ## Micromanaging | 105 | ## Micromanaging |
| 106 | 106 | ||
| 107 | This basically implies that everybody on the team is an idiot who needs to | 107 | This basically implies that everybody on the team is an idiot who needs to have |
| 108 | have a to-do list that they cannot write themselves. How about spoon-feeding | 108 | a to-do list that they cannot write themselves. How about spoon-feeding the team |
| 109 | the team at launch because besides the team leader, everybody must be a | 109 | at launch because besides the team leader, everybody must be a retarded idiot at |
| 110 | retarded idiot at best? | 110 | best? |
| 111 | 111 | ||
| 112 | I prefer milestones as they give developers much more freedom and creativity | 112 | I prefer milestones as they give developers much more freedom and creativity in |
| 113 | in developing and not waste their time checking some bizarre to-do list that | 113 | developing and not waste their time checking some bizarre to-do list that was |
| 114 | was not even thought through. Projects constantly change throughout the | 114 | not even thought through. Projects constantly change throughout the development |
| 115 | development cycle, and all you are left at the end is a list of unchecked tasks | 115 | cycle, and all you are left at the end is a list of unchecked tasks and the |
| 116 | and the wrath of management why they are not completed. Best WTF moment! | 116 | wrath of management why they are not completed. Best WTF moment! |
| 117 | 117 | ||
| 118 | ## Human contact — no need for it! | 118 | ## Human contact — no need for it! |
| 119 | 119 | ||
| 120 | We are vigorously trying to eliminate physical contact by replacing short | 120 | We are vigorously trying to eliminate physical contact by replacing short |
| 121 | meetings with software, with no regards that we are not machines. Many times | 121 | meetings with software, with no regards that we are not machines. Many times a |
| 122 | a simple 5-min meeting at morning can solve most of the problems. In rapid | 122 | simple 5-min meeting at morning can solve most of the problems. In rapid |
| 123 | development, short bursts of man to man communication is possibly the best | 123 | development, short bursts of man to man communication is possibly the best way |
| 124 | way to go. | 124 | to go. |
| 125 | 125 | ||
| 126 | We now have all this software available, and all what we get out of it is a | 126 | We now have all this software available, and all what we get out of it is a |
| 127 | giant clusterfuck. An obstacle and not a solution. So, why we still use them? | 127 | giant clusterfuck. An obstacle and not a solution. So, why we still use them? |
| 128 | 128 | ||
| 129 | ## MVP is killing innovation | 129 | ## MVP is killing innovation |
| 130 | 130 | ||
| 131 | Many will disagree with me on this one, but I stand strong by this statement. | 131 | Many will disagree with me on this one, but I stand strong by this statement. |
| 132 | What I noticed in my experience that all this buzz words around us only | 132 | What I noticed in my experience that all this buzz words around us only mislead |
| 133 | mislead and capture us in a circle of solving issues that already have a | 133 | and capture us in a circle of solving issues that already have a solution, but |
| 134 | solution, but we are unable to see it without using some fancy word for it. | 134 | we are unable to see it without using some fancy word for it. |
| 135 | 135 | ||
| 136 | The toughest thing to do for a developer is to minimize requirements. Well, | 136 | The toughest thing to do for a developer is to minimize requirements. Well, this |
| 137 | this is though only for bad developers. Yes, I said it. There are many types | 137 | is though only for bad developers. Yes, I said it. There are many types of |
| 138 | of developers out there. And those unable to minimize feature scope are the | 138 | developers out there. And those unable to minimize feature scope are the ones |
| 139 | ones you don’t need on your team. Their only goal is to solve problems that | 139 | you don’t need on your team. Their only goal is to solve problems that exist |
| 140 | exist only in their heads. And then you have to argue with them, and waste | 140 | only in their heads. And then you have to argue with them, and waste energy on |
| 141 | energy on them, instead of developing your awesome product. They are a cancer | 141 | them, instead of developing your awesome product. They are a cancer and I |
| 142 | and I suggest you cut them off. | 142 | suggest you cut them off. |
| 143 | 143 | ||
| 144 | MVP as an idea is great, but sadly people don’t understand underlying | 144 | MVP as an idea is great, but sadly people don’t understand underlying |
| 145 | philosophy, and they spent too much time focusing and fixating on something | 145 | philosophy, and they spent too much time focusing and fixating on something that |
| 146 | that every sane person with normal IQ will understand without some made up | 146 | every sane person with normal IQ will understand without some made up |
| 147 | acronym. And the result is a lot of talking and barely no execution. | 147 | acronym. And the result is a lot of talking and barely no execution. |
| 148 | 148 | ||
| 149 | Well, MVP is not directly killing innovation, but stupid people do when they | 149 | Well, MVP is not directly killing innovation, but stupid people do when they try |
| 150 | try to understand it. | 150 | to understand it. |
| 151 | 151 | ||
| 152 | ## Pressure wasteland | 152 | ## Pressure wasteland |
| 153 | 153 | ||
| 154 | You must never allow to be pressured into confirming a deadline if you are not | 154 | You must never allow to be pressured into confirming a deadline if you are not |
| 155 | confident. We often feel a need that we are in service of others, which is | 155 | confident. We often feel a need that we are in service of others, which is true |
| 156 | true to some extent. But it is also true that others are in service to us to | 156 | to some extent. But it is also true that others are in service to us to some |
| 157 | some extent. And we forget this all the time. We are all pressured all the | 157 | extent. And we forget this all the time. We are all pressured all the time to |
| 158 | time to make decisions just to calm other people down. And when they leave | 158 | make decisions just to calm other people down. And when they leave your office |
| 159 | your office you experience WTF moment :) How the hell did they manage to | 159 | you experience WTF moment :) How the hell did they manage to fuck me up again? |
| 160 | fuck me up again? | 160 | |
| 161 | 161 | People need to realize that the more pressure you put on somebody, the less they | |
| 162 | People need to realize that the more pressure you put on somebody, the less | 162 | will be able to do. So 5-min update email requests will only resolve in mental |
| 163 | they will be able to do. So 5-min update email requests will only resolve in | 163 | breakdown and inability to work that day. Constant poking is probably the only |
| 164 | mental breakdown and inability to work that day. Constant poking is probably | 164 | thing I lose my mind instantly. For all you that are doing this: “Stop bothering |
| 165 | the only thing I lose my mind instantly. For all you that are doing this: | 165 | us with your insecurities and let us do our job. We will do it quicker and |
| 166 | “Stop bothering us with your insecurities and let us do our job. We will do | 166 | better without you breathing down our necks.” |
| 167 | it quicker and better without you breathing down our necks.” | ||
| 168 | 167 | ||
| 169 | If this happens to me, I end up with no energy at the end. Don’t you get it? | 168 | If this happens to me, I end up with no energy at the end. Don’t you get it? |
| 170 | You will get much more from and out of me if you ask me like a human person | 169 | You will get much more from and out of me if you ask me like a human person and |
| 171 | and not your personal butler. On a long run, you are destroying your | 170 | not your personal butler. On a long run, you are destroying your relationships |
| 172 | relationships and nobody would want to work with you. Your schizophrenic | 171 | and nobody would want to work with you. Your schizophrenic approach will damage |
| 173 | approach will damage only you in a long run. Nobody is anybody’s property. | 172 | only you in a long run. Nobody is anybody’s property. |
| 174 | 173 | ||
| 175 | ## Conclusion | 174 | ## Conclusion |
| 176 | 175 | ||
| 177 | I am guilty of many things described in this post. And I find it hard sometimes | 176 | I am guilty of many things described in this post. And I find it hard sometimes |
| 178 | to acknowledge this. And I lie to myself and try vigorously to find some | 177 | to acknowledge this. And I lie to myself and try vigorously to find some |
| 179 | explanation why I do these things. There is always space for growth. And | 178 | explanation why I do these things. There is always space for growth. And maybe |
| 180 | maybe you will also find some of yourself in this post and realize what needs | 179 | you will also find some of yourself in this post and realize what needs to |
| 181 | to change for you to evolve. | 180 | change for you to evolve. |
| 182 | |||
