Definition of "Pragmatic"

240 views
Skip to first unread message

Dave Schinkel

unread,
Jan 8, 2015, 7:11:46 PM1/8/15
to clean-code...@googlegroups.com
I pose the question, is "Pragmatic" part of Software Craftsmanship or does it really mean the same thing as a whole?

opinions?

To me it looks to be a core part of Software Craftsmanship, specifically the Software Craftsmanship Movement.

Sebastian Gozin

unread,
Jan 9, 2015, 5:36:22 AM1/9/15
to clean-code...@googlegroups.com
I would say it is. I'm not too confident you'll find agreement on that at large though.

Caio Fernando Paes de Andrade

unread,
Jan 9, 2015, 7:48:16 AM1/9/15
to clean-code...@googlegroups.com
People often use pragmatism as an excuse to skip important practices or disciplines, but that is just an excuse and has nothing to do with the real meaning of the word.

By doing the simplest design that works, we are being pragmatic. We are focusing on what's really needed and not on any purist ideal design we might have dreamt of. By following the disciplines that ensure our design's correctness and completeness, we are being pragmatic.

By keeping our code open for improvement, we are avoiding dogmatism. We clean it while we code, we agree that we don't write the best code and we always can improve it, instead of assuming that a solution can be final. By refining and evolving a design, we are avoiding dogmatism.

Pragmatism is indeed the cornerstone of software craftsmanship, because it reflects the practical, actionable nature of the craft. We may look dogmatic when following the disciplines we do, but we only follow them because they allow us to be pragmatic. I wouldn't do TDD if it didn't allow me to be much more pragmatic about my designs.

Some people may think that our commitment to be pragmatic sounds very dogmatic, and with that I cannot argue. After all, we all believe in better software, and that in itself is a quite dogmatic belief.

Caio

Sent from my iPhone
--
The only way to go fast is to go well.
---
You received this message because you are subscribed to the Google Groups "Clean Code Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clean-code-discu...@googlegroups.com.
To post to this group, send email to clean-code...@googlegroups.com.
Visit this group at http://groups.google.com/group/clean-code-discussion.

Frederik Krautwald

unread,
Jan 9, 2015, 8:19:07 AM1/9/15
to clean-code...@googlegroups.com
Pragmatic means doing deeds that are practical. Hence, a software craftsman follows rational principles, when crafting software, that are practical to its outcome.


On Friday, January 9, 2015 at 1:11:46 AM UTC+1, Dave Schinkel wrote:

Dave Schinkel

unread,
Jan 10, 2015, 2:20:48 PM1/10/15
to clean-code...@googlegroups.com, caio...@icloud.com
:)

"People often use pragmatism as an excuse to skip important practices or disciplines, but that is just an excuse and has nothing to do with the real meaning of the word"

this is indeed exactly what I've realized as well.  There are so many times people abuse the word "Pragmatic" and twist and turn it to mean totally the opposite of what it's real meaning is.

Let me give an example.  I am currently looking for a job (hopefully I can land one with a place who cares about Craftsmanship for once).  Anyway, as I was cycling through job descriptions, I saw this paragraph in one of them:


This role is part of the back-end team, which we call Platform, the group who builds and maintains the services that power our products. On Platform we design and build for scale, reliability and product agility. That means picking the right tool for the job while being pragmatic and scrappy. We build services in Python and Java using technologies like Cassandra and HBase, Memcache and Redis, Scribe and Storm..." and blah blah blah

Responsibilities include:

·         Be a major individual contributor of coding on the team

·         Promote and nurture good team practices such as TDD, code reviews, and pair programming


I have seen a lot of people use Pragmatic this way.  As an excuse to skip quality.  Unless I am misunderstanding their meaning of "Scrappy" in the paragraph above, that's what this is saying to me. That you the employer think that we can skip value by being "Pragmatic".  That's how it reads to me.  And if that's really what it's saying, to me it's a problem in our profession because right after, they talk about TDD.  If you're doing TDD and you're really adhering to Craftsmanship, SOLID and all that, you'd never use that word "scrappy" to begin with and you'd never relate scrappy to being the same as being "pragmatic".

again maybe I'm reading that wrong but it sure sounds like that's what they're saying here and to me that's a huge red flag if I'm a job searcher looking for jobs that have culture of craftsmanship and doing disciplined TDD.

I could be looking at that too narrow, I don't know but this is something that has been bugging me, language people use in job descriptions when trying to seek and weed out good vs. bad cultures.  I don't want to waste my time interviewing if the job description has a red flag to begin with.  I've learned to be smarter when looking, especially after being able to pair and do real TDD in the past year.
To unsubscribe from this group and stop receiving emails from it, send an email to clean-code-discussion+unsub...@googlegroups.com.

Dave Schinkel

unread,
Jan 10, 2015, 5:57:01 PM1/10/15
to clean-code...@googlegroups.com, caio...@icloud.com
what the frick  I just found this, how did I not see this by now.


The Software Craftsman: Professionalism, Pragmatism, Pride (Robert C. Martin)


Thanks UB.

I am also doing a series on TDD on DimeCasts.net which one cast talks about craftsmanship.  I had started one on Software Craftmanship already, almost final but maybe this will come as a good reference also.
Message has been deleted

Sebastian Gozin

unread,
Jan 12, 2015, 4:42:37 AM1/12/15
to clean-code...@googlegroups.com, caio...@icloud.com
I don't think you can really tell from most job descriptions if they apply things like TDD or pagmatism as these things are written to match as many people as possible.
To the point I almost always react with deep suspicion when I see someone advertise themselves as an agile/craftsmanship shop or using TDD.

It seems to be easier to go by the shops reputation.

Dave Schinkel

unread,
Sep 5, 2015, 2:44:54 PM9/5/15
to Clean Code Discussion, caio...@icloud.com
A shops reputation is almost always unknown unless you know someone who has worked at x place or heard of their value through the web such as Pivotal (a shop which has done XP and pairing and TDD and all that for over 12 years).  Usually it's a black hole.  Unfortunately, until you get aboard.  

It's best to try to get a tour of a place if you can.  For example if you get far enough into the interview process, ask them to take you around to see their pairing stations, their agile boards, whatever.  It may seem uncomfortable asking but do it.  When I interviewed at Redbox a few years back, I didn't even have to ask.  It was for their core dev team and not every team in Redbox is doing TDD or pairing, but this team was which is something that was attractive to me.   Well, they ended up giving me a tour.  I saw their Kanban board, I saw their pairing stations, and even shook the hands of some of the devs.  I didn't end up getting the job (they had the next week a hiring freeze and never came back to me) but I at least had some proof that the words really meant something when they stated they have certain processes or principals in place.  Now if they're good at TDD, that's another story but at least I saw the surface, not just heir say.

vivek poddar

unread,
Sep 6, 2015, 1:14:49 AM9/6/15
to clean-code...@googlegroups.com

Hi,

I would like to chime in and share my experience. I have never worked on large scale projects but mostly what I have learned from some of my personal projects is that applying KISS approach works great. Stick to the basics and prepare at least a working prototype. Then iterate consistently to achieve some satisfaction and stop there, you have to believe that you can't be perfect at first shot.

A working model really helps to boost your confidence gives you a path to follow onwards otherwise striving for perfection can really stall you and seeing no result for longer time can decrease your motivation.

Hence I believe it's Pragmatic?

Also, thanks to @dave, he is putting up a great effort and really putting up some good discussion topics.

Cheers,

:)

To unsubscribe from this group and stop receiving emails from it, send an email to clean-code-discu...@googlegroups.com.

To post to this group, send email to clean-code...@googlegroups.com.
Visit this group at http://groups.google.com/group/clean-code-discussion.

--
The only way to go fast is to go well.
---
You received this message because you are subscribed to the Google Groups "Clean Code Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clean-code-discu...@googlegroups.com.

Bill Adams

unread,
May 6, 2016, 12:18:34 PM5/6/16
to Clean Code Discussion
"People often use pragmatism as an excuse to skip important practices or disciplines, but that is just an excuse and has nothing to do with the real meaning of the word."

Dead - On
Reply all
Reply to author
Forward
0 new messages