DEV Community

Discussion on: The Impossible Bar of a Professional

jorgecc profile image
Jorge Castro • Edited on

If you are a 3d artist, then the difference between a good one versus an aficionado is the speed. A good artist could model a 3d art in a single day while an aficionado could do the same in a month.

With programmers are the same. And it is here some "ideologies fail":

  • agile without deadlines.
  • TDD if it involves spending more than 10% of the developer time. In fact, 10% is still a big waste.
  • Docker, Kubernetes and such (if you spend so much time configuring it).
  • Full SOLID, for example, to add Interface for a class that will be used only once.
  • Reusability of the code when (and again) it will be called only once.
recursivefaults profile image
Ryan Latta Author

It's interesting that you've emphasized speed so strongly while discounting things that are often attributed to quality.

I didn't write about the skills and abilities a professional may carry, because that isn't the point of this article.

I wrote about what people industry do with any skill or ability. I wrote about what happens when, "Professionals" become complicit in doing poor work because of a fake deadline, when they harm themselves staying up late or on weekends because they are pressured to, when they build something that is unethical, illegal or causes harm, when they sit at their desk when they know bullying or harassment happens.

That's the line I draw here. How much of that does each of us bring and allow into our workplace while still claiming we're responsible professionals?

jorgecc profile image
Jorge Castro • Edited on

It is because we usually don't know the "name of the game".

I explain. Let's say that our user (if not the company that we worked) is a Knight, if it is a Knight then we are a blacksmith.

Now, some ogres attacked a village and our knight must fight them back.

The knight says:

  • Hey blacksmith, I need a shield and a sword right now (or, I need it for yesterday I have hear it tons of time).

So, we could give it a fast-but-cheap shield and sword but at least the knight could do its job, or we could say "yes, I will give you the best one but it will take a month". Of course, a month means that all villagers will be dead. Some knights even improvise with their own resources (while they are waiting for proper equipment), some even throw rocks because they are accessible and they know how to use it (Ms excel).

So we do what we can (with our limited resources) and we hope it for the best.

Our ethics suffer if we do a poor job. However, maybe our ethics (or ego) is intact if we take the time to build a better tool but, our usability is compromised (we are useless!) and finally it is the same. So we usually should balance time and quality but we could have them all, we should read the "mood" of the project.

Some developers refuse to release a rushed project. 9/10 ogres prefer this kind of blacksmith

Now, the software has a duration date, right now is around 3 years, it could be extended two cycles (6-7 years) but anything over it is insane. This doesn't mean that there are not systems and programs around here that aren't older than 7 years (aka legacy) but they are costly. It means that if we took 3 years to develop a system, then the end result borns outdated.