aboutsummaryrefslogtreecommitdiff
path: root/public/software-development-pitfalls.html
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2023-11-01 22:54:27 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2023-11-01 22:54:27 +0100
commit2417a6b7603524dc5cd30d29b153f91024b9443d (patch)
tree9be5ea8e5baba96dd9159217da6badf6157fb595 /public/software-development-pitfalls.html
parent89ba3497f07a8ea43d209b583f39fcc286acc923 (diff)
downloadmitjafelicijan.com-2417a6b7603524dc5cd30d29b153f91024b9443d.tar.gz
Move to Jekyll
Diffstat (limited to 'public/software-development-pitfalls.html')
-rwxr-xr-xpublic/software-development-pitfalls.html152
1 files changed, 0 insertions, 152 deletions
diff --git a/public/software-development-pitfalls.html b/public/software-development-pitfalls.html
deleted file mode 100755
index d3d53e4..0000000
--- a/public/software-development-pitfalls.html
+++ /dev/null
@@ -1,152 +0,0 @@
1<!doctype html><html lang=en-us><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="JBMAFP - github.com/mitjafelicijan/jbmafp"><link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" rel=icon type=image/x-icon><title>Software development and my favorite pitfalls</title><meta name=description content="Over the years I had the privilege to work on some very excited projects both insoftware development field and also in electronics field and every experiencetaught me some invaluable lessons about how NOT TO approach development."><meta name=author content="Mitja Felicijan"><link rel=alternate type=application/rss+xml title="Mitja Felicijan's posts" href=https://mitjafelicijan.com/index.xml><link rel=alternate type=application/rss+xml title="Mitja Felicijan's notes" href=https://mitjafelicijan.com/notes.xml><style>:root{--border-color:gainsboro;--border-size:2px;--link-color:blue;--bg-color:#eee}*::selection{background:var(--link-color);color:#fff}*::-moz-selection{background:var(--link-color);color:#fff}*::-webkit-selection{background:var(--link-color);color:#fff}body{padding:2.5rem;max-width:1900px;background:#fff;font-family:sans-serif;line-height:1.35rem;font-size:16px}hr{border:0;border-bottom:var(--border-size)solid var(--border-color);margin-block-start:1.5rem}a{color:var(--link-color);text-decoration:none}h1,h2,h3{line-height:initial}h1{font-size:xx-large}footer{margin-block-start:2rem}cap{text-transform:capitalize}blockquote{font-style:italic}table{max-width:100%;border:var(--border-size)solid var(--border-color);border-collapse:separate;border-spacing:0}table thead tr th{border-bottom:var(--border-size)solid var(--border-color);text-align:left}table th,table td{padding:.5em .8em}ul.list li{padding:.2em 0}ul{line-height:1.35em}pre{text-wrap:nowrap;overflow-x:auto;padding:0 1em;border:var(--border-size)solid var(--border-color)}code{padding:0 3px;font-size:14px;border:0;background:var(--bg-color)}pre code{line-height:1.3em;background:#fff}pre,code,pre *,code *{font-family:monospace}figure{margin-inline-start:0;margin-inline-end:0}figcaption{width:800px;max-width:100%;text-align:center}figcaption p{margin:.3em 0 1.5em;font-style:italic}img,video,audio{width:800px;max-width:100%;border:var(--border-size)solid var(--border-color);padding:.5em}header nav{display:flex;gap:.9rem}article iframe{margin:0!important}audio::-webkit-media-controls-enclosure{border-radius:0}@media only screen and (max-width:600px){body{padding:.5em;word-wrap:break-word}header nav{gap:.7rem}header nav .hob{display:none}a{word-wrap:break-word}img,video,audio{padding:0}}</style><header><nav class=main itemscope itemtype=http://schema.org/SiteNavigationElement role=navigation aria-label="Main navigation"><a href=/>Home</a>
2<a href=/#posts>Posts</a>
3<a href=/#notes>Notes</a>
4<a href=/#sideprojects class=hob>Side Projects</a>
5<a href=/vault.html>Vault</a>
6<a href=https://github.com/mitjafelicijan target=_blank>Code</a>
7<a href=/mitjafelicijan.pgp.pub.txt target=_blank class=hob>PGP</a>
8<a href=/curriculum-vitae.html>CV</a>
9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Software development and my favorite pitfalls</h1><p><cap>post</cap>, Nov 10, 2015 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>Over the years I had the privilege to work on some very excited projects both in
10software development field and also in electronics field and every experience
11taught me some invaluable lessons about how NOT TO approach development. And
12through this post I will try to point out some absurd, outdated techniques I
13find the most annoying and damaging during a development cycle. There will be
14swearing because this topic really gets on my nerves and I never coherently
15tried to explain them in writing. So if I get heated up, please bear with me.<p>As new methods of project management are emerging, underlying processes still
16stay old and outdated. This is mainly because we as people are unable to
17completely shift away from these approaches.<p>I was always struggling with communication, and many times that cost me a
18relationship or two because I was not on the ball all the time. Through every
19experience, I became more convinced that I am the problem and never ever doubted
20that the problem may be that communication never evolved a single step from
21emails. And if you think for a second, not many things have changed around this
22topic. We just have different representations of email (message boards, chats,
23project management tools). And I believe this is the real issue we are facing
24now.<p>There are many articles written about hyper connectivity and the effects that
25are a direct result of it. But mainstream does nothing towards it. We are just
26putting out fires, and we do nothing to prevent it. I am certain this will be a
27major source of grief in coming years. And what we all can do to avoid this is
28to change our mindset and experiment on our communication skills, development
29approaches. We need to maximize possible output that a person can give. And to
30achieve this we need to listen to them, encourage them. I know that not
31everybody is a naturally born leader, but with enough practice and encouragement
32they also can become active participants in leadership.<p>There are many talks now about methodologies such as Scrum, Kanban, Cleanroom
33and they all fucking piss me of :). These are all boxes that imprison people and
34take away their freedom of thought. This is a straightforward mindfuck /
35amputation of creativity.<p>Let me list a couple of things that I find really destructive and bad for a
36project and in a long run company.<h2 id=ping-emails>Ping emails</h2><p>Ping emails are emails you have to write as soon as you receive an email. Its
37sole purpose is to inform the sender that you received their email, and you are
38working on it. Its result is only to calm down the sender that their task is
39being dealt with. It’s intent basically is, I did my job by sending you this
40email, so I am on clear grounds. I categorize this email as fuck you email.
41This is one of the most irritating types of emails I need to write. This is the
42ultimate control freak show you can experience, and it gives the sender a false
43feeling of control. Newsflash: We do not live in 1982 where there was a
44possibility that email never reached the destination. I really hate this from
45the bottom of my heart.<p>They should be like: “Yes, I am fucking alive, and I am at your service my
46leash!”. I guess if I would reply like this, I wouldn’t have to write any more
47of this kind of messages.<h2 id=everybody-is-a-project-manager>Everybody is a project manager</h2><p>Well, this is a tough one. I noticed that as soon as you let people to give
48their suggestions, you are basically screwed. There is a truth in the saying:
49“Give low expectations and deliver little more than you promised.”.<p>People tend to take a role of a manager as soon as they are presented with an
50opportunity. And by getting angry at them, you only provoke yourself. They are
51not at fault. You just need to tell them they are only giving suggestions and
52not tasks at the beginning and everything will be alright. But if you give them
53a feeling that they are in control, you will have immense problems explaining
54why their features are not in current release.<p>Project mission must be always leading project requirements and any deviation
55from it will result in major project butchering. And by this, I mean that the
56project will get its own path, and you will be left with half done software that
57helps nobody. Clear mission goals and clean execution will allow you to develop
58software will clear intent.<h2 id=we-are-never-wrong>We are never wrong</h2><p>I find this type of arrogance the worst. We must always conduct ourselves that
59we are infallible and cannot make mistakes. As soon as a procedure or process is
60established, there is no room for changes or improvements. This is the most
61idiotic thing someone can say of think. I think that processes need to involve
62and change over time. This is imperative and need to have in your organization
63if you want to improve and develop company. We all need to grow balls and change
64everything in order to adapt to current situations. Being a prisoner of
65predefined processes kills creativity.<p>I am constantly trying new software for project managing and communication. I
66believe every team has its own dynamic, and it needs to be discovered
67organically and naturally through many experiments. By putting the team in a
68box, you are amputating their creativity and therefore minimizing their
69potential. But if you talk to an executive, you will mainly find archetypical
70thinking and a strong need to compartmentalize everything from business
71processes to resource management. And this type of management that often
72displays micromanagement techniques only works for short periods (couple of
73years) and then employees either leave the company or become basically retarded
74drones on autopilot.<h2 id=micromanaging>Micromanaging</h2><p>This basically implies that everybody on the team is an idiot who needs to have
75a to-do list that they cannot write themselves. How about spoon-feeding the team
76at launch because besides the team leader, everybody must be a retarded idiot at
77best?<p>I prefer milestones as they give developers much more freedom and creativity in
78developing and not waste their time checking some bizarre to-do list that was
79not even thought through. Projects constantly change throughout the development
80cycle, and all you are left at the end is a list of unchecked tasks and the
81wrath of management why they are not completed. Best WTF moment!<h2 id=human-contact--no-need-for-it>Human contact — no need for it!</h2><p>We are vigorously trying to eliminate physical contact by replacing short
82meetings with software, with no regards that we are not machines. Many times a
83simple 5-min meeting at morning can solve most of the problems. In rapid
84development, short bursts of man to man communication is possibly the best way
85to go.<p>We now have all this software available, and all what we get out of it is a
86giant clusterfuck. An obstacle and not a solution. So, why we still use them?<h2 id=mvp-is-killing-innovation>MVP is killing innovation</h2><p>Many will disagree with me on this one, but I stand strong by this statement.
87What I noticed in my experience that all this buzz words around us only mislead
88and capture us in a circle of solving issues that already have a solution, but
89we are unable to see it without using some fancy word for it.<p>The toughest thing to do for a developer is to minimize requirements. Well, this
90is though only for bad developers. Yes, I said it. There are many types of
91developers out there. And those unable to minimize feature scope are the ones
92you don’t need on your team. Their only goal is to solve problems that exist
93only in their heads. And then you have to argue with them, and waste energy on
94them, instead of developing your awesome product. They are a cancer and I
95suggest you cut them off.<p>MVP as an idea is great, but sadly people don’t understand underlying
96philosophy, and they spent too much time focusing and fixating on something that
97every sane person with normal IQ will understand without some made up
98acronym. And the result is a lot of talking and barely no execution.<p>Well, MVP is not directly killing innovation, but stupid people do when they try
99to understand it.<h2 id=pressure-wasteland>Pressure wasteland</h2><p>You must never allow to be pressured into confirming a deadline if you are not
100confident. We often feel a need that we are in service of others, which is true
101to some extent. But it is also true that others are in service to us to some
102extent. And we forget this all the time. We are all pressured all the time to
103make decisions just to calm other people down. And when they leave your office
104you experience WTF moment :) How the hell did they manage to fuck me up again?<p>People need to realize that the more pressure you put on somebody, the less they
105will be able to do. So 5-min update email requests will only resolve in mental
106breakdown and inability to work that day. Constant poking is probably the only
107thing I lose my mind instantly. For all you that are doing this: “Stop bothering
108us with your insecurities and let us do our job. We will do it quicker and
109better without you breathing down our necks.”<p>If this happens to me, I end up with no energy at the end. Don’t you get it?
110You will get much more from and out of me if you ask me like a human person and
111not your personal butler. On a long run, you are destroying your relationships
112and nobody would want to work with you. Your schizophrenic approach will damage
113only you in a long run. Nobody is anybody’s property.<h2 id=conclusion>Conclusion</h2><p>I am guilty of many things described in this post. And I find it hard sometimes
114to acknowledge this. And I lie to myself and try vigorously to find some
115explanation why I do these things. There is always space for growth. And maybe
116you will also find some of yourself in this post and realize what needs to
117change for you to evolve.</div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
118a lock on a Linux NFS server, which turned
119out to be specific to NFS v3 (which I really should have seen coming,
120since it involved NLM and lockd). Finding the NFS v4 client that
121owns a lock is, depending on your perspective, either simpl…<li><a href=http://www.landley.net/notes-2023.html#28-10-2023 target=_blank rel=noopener>October 28, 2023</a> — <a href=http://www.landley.net/notes-2023.html>Rob Landley's Blog Thing for 2023</a><div>Oh good grief, two of my least favorite licensing people, Larry Rosen
122and Bradley Kuhn, are interacting on the OSI's license-discuss
123list where the're doing
124bad computer history and insisting that a guy Larry Rosen
125coincidentally interviewed for a book years ago is clearly the origin of
126somethin…<li><a href="http://offbeatpursuit.com:80/blog/?id=25" target=_blank rel=noopener>A fix by any other name</a> — <a href=http://offbeatpursuit.com:80/blog/>WLOG - blog</a><div>tags:
127i2c, plan9
128Another month, another file system.
129Well, if you can’t fix it in software, fix it in hardware (looking at
130you, bme680, we’re not
131done yet). The show must go on, as they say, and I would like my
132experiments to go on.
133So a “new” addition to the environmental sensor family connected to
134the h…<li><a href=https://mirzapandzo.com/next-image-url-parameter-is-valid-but-upstream-response-is-invalid target=_blank rel=noopener>Next/Image "url" parameter is valid but upstream response is invalid</a> — <a href=https://mirzapandzo.com/>Mirza Pandzo's Blog</a><div>Getting "url" parameter is valid but upstream response is invalid error with Next/Image on WSL2<li><a href=https://drewdevault.com/2023/10/13/Going-off-script.html target=_blank rel=noopener>Going off-script</a> — <a href=https://drewdevault.com>Drew DeVault's blog</a><div>There is a phenomenon in society which I find quite bizarre. Upon our entry to
135this mortal coil, we are endowed with self-awareness, agency, and free will.
136Each of the 8 billion members of this human race represents a unique person, a
137unique worldview, and a unique agency. Yet, many of us have the sam…<li><a href=https://szymonkaliski.com/writing/2023-10-02-building-a-diy-pen-plotter/ target=_blank rel=noopener>Building a DIY Pen Plotter</a> — <a href=http://github.com/dylang/node-rss>Szymon Kaliski</a><div>This article documents my learnings from designing and building a DIY Pen Plotter during the summer of 2023.
138My ultimate goal is to build my…<li><a href=https://neil.computer/notes/chart-of-accounts-for-startups-and-saas-companies/ target=_blank rel=noopener>Chart of Accounts for Startups and SaaS Companies</a> — <a href=https://neil.computer/>Neil Panchal</a><div>Accounting is fundamental to starting a business. You need to have a basic understanding of accounting principles and essential bookkeeping. I had to learn it. There was no choice. For filing taxes, your CPA is going to ask you for an Income Statement (also known as P/L statement). If<li><a href=https://journal.valeriansaliou.name/deploy-a-nomad-cluster-on-alpine-linux-with-vultr/ target=_blank rel=noopener>Deploy a Nomad Cluster on Alpine Linux with Vultr</a> — <a href=https://journal.valeriansaliou.name/>Valerian Saliou</a><div>After spending countless hours trying to understand how to deploy my apps on Kubernetes for the first time to host Mirage, an AI API service that I run, I ended up making myself a promise that the next app I work on would be using a more productive & simpler<li><a href=https://jcs.org/2023/10/25/wifi_da target=_blank rel=noopener>BlueSCSI Wi-Fi Desk Accessory 1.0 Released</a> — <a href=https://jcs.org/>joshua stein</a><div>BlueSCSI Wi-Fi Desk Accessory
1391.0 has been released:
140wifi_da-1.0.sit
141(StuffIt 3 archive)
142SHA256: ccfc9d27dd5da7412d10cef73b81119a1fec3848e4d1d88ff652a07ffdc6a69aSHA1: ff124972f202ceda6d7fa4788110a67ccda6a13a
143This is the initial public release of my BlueSCSI Wi-Fi Desk Accessory for
144classic MacOS.<li><a href=https://michael.stapelberg.ch/posts/2023-10-25-my-all-flash-zfs-network-storage-build/ target=_blank rel=noopener>My 2023 all-flash ZFS NAS (Network Storage) build</a> — <a href=https://michael.stapelberg.ch/>Michael Stapelbergs Website</a><div>For over 10 years now, I run two self-built NAS (Network Storage) devices which serve media (currently via Jellyfin) and run daily backups of all my PCs and servers.
145In this article, I describe my goals, which hardware I picked for my new build (and why) and how I set it up.
146Design Goals
147I use my netw…</ul><p>Generated with <a href=https://git.sr.ht/~sircmpwn/openring target=_blank rel=noopener>openring</a>.</section><footer><hr><p><big><strong>Want to comment or have something to add?</strong></big><p>You can write me an email
148at <a href=mailto:mitja.felicijan@gmail.com>mitja.felicijan@gmail.com</a> or
149catch up with me <a href=https://telegram.me/mitjafelicijan target=_blank>on Telegram</a>.<hr><p>This website does not track you. Content is made available under the <a href=https://creativecommons.org/licenses/by/4.0/ target=_blank rel=noreferrer>CC BY 4.0 license</a> unless
150specified otherwise. Blog is also available as <a href=/index.xml target=_blank>RSS feed</a>.</footer><script>
151 window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
152 </script><script defer src=/_vercel/insights/script.js></script> \ No newline at end of file