Random Ramblings on LabVIEW Design

Community Browser
Labels
cancel
Showing results for 
Search instead for 
Did you mean: 

Re: Levels of Programming Enlightenment

swatts
Active Participant

Welcome to Nerdhhist Boot Camp.

Just coming to my little corner of the Internet automatically pushes you up the path to Nerdvana. In a world of turmoil and angst I want this to be an area of calm contemplation.

I've come to the conclusion that there are steps to Programming/Design Enlightenment. As you go through them life becomes significantly less aggravating. The key is empathy. Empathy with other programmers and empathy with the end users.

If you can be enlightened it's fair to assume you can also have an endarkened attitude. I've met a few who have inhabited this stage and I'm at a loss at how to get them out of it.

-1 Endarkenment

These can be technically competent and experienced people, who have spent years in the industry. They have a general dislike of other programmers and users. They hide code and leave a trail of poorly engineered projects behind them. Often they leave a job just before the end, leaving the customer to pick up the pieces. This isn't random, they leave before they are found out. I won't waste too much effort on this group.

0 Enthusiast

Everything is shiny an new, you're wearing a suit made of Arduinos and you program for fun!

This sums up my feelings on the subject

 

Hold onto that exuberance and add focus to get to the next stage.

1 Infuriated/Opinionated

You've a got a few successful projects under your belt and you are king of the world!! If everyone works like you they'll be just as successful. The following statements will be heard here.

"Methodology xxx is the best way to program"

"Way of running a project xxx (Agile) is the only way to successfully run a project"

"such and such a tool/function is evil/terrible and people who use it are awful too" 

When Jon came up with LCOD, and we started using and honing it in practice, I couldn't understand why everybody didn't use it. I thought we had given the secret of pain free programming to the world, it was kind of rude of everyone not to take the gift. It was a time of disenchantment and frustration.

For me, age showed me the exit sign from this stage.

2 People Oriented

The realisation that everyone is different and it's brilliant is one of the best parts of this stage.

  • The person who busts your code all the time is not a pain in the bum, but a fantastic testing resource.
  • Customer feedback becomes a huge asset and not a personal insult about your design.
  • Techniques, processes and methodologies can be employed strategically, offering most benefit for the buck.

Ramp.png

 

I think this quote from Fab sums it up nicely

"I tell them, those are two very different ways of doing it try to understand our reasoning and pick the one that resonates the most with you and your team. Stick with it…. until it no longer serves you 🙂

The key is understanding why we are suggesting one way or the other"

And perhaps one of the keys to enlightenment is understanding

Lots of Love

Steve

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

Comments
FabiolaDelaCueva
Active Participant

Dear Steve,

 

Love, love, love this blog post! You and I have discussed this topic several times and I love how you describe the ramp to Programming Enlightenment. I appreciate the title specially, wonder where you got that from 😉

 


swatts wrote: 

I think this quote from Fab sums it up nicely

"I tell them, those are two very different ways of doing it try to understand our reasoning and pick the one that resonates the most with you and your team. Stick with it…. until it no longer serves you 🙂

The key is understanding why we are suggesting one way or the other"

And perhaps one of the keys to enlightenment is understanding

 

I believe when I said this, was when I was telling you how when I teach Managing Software Engineering in LabVIEW, I make sure to present different ways to organizing a project, I show them your blog post and our blog post. I explain, as far as I understand it, your reasoning and then I explain ours.

 

People think we want everyone to use DQMH, we don't, at least I don't. We want people to know about it, to understand that certain repetitive tasks can be automated via LabVIEW scripting, (just like you created a tool to automate LCOD) but it is not the only way, it is a way. It will all depend on the team, their level of expertise, etc. I know that LCOD is a very thorough way of doing projects, I learned it when I read your Software Engineering Approach to LabVIEW book and used it in some of my first projects. I also think Actor Framework works well for teams of LabVIEW developers who are comfortable with LVOOP and are under the guidance of a skilled LabVIEW Architect. In general, having a skilled Architect leading the project leads to good results, regardless of the tools used. 

 

Now, that said, I think I have not reached the Programming Enlightenment yet, I know we don't know what is between the People Oriented phase and the ultimate enlightenment, I just know that we don't know what we don't know. I hope that we, the LabVIEW community, can learn together what we don't know and reach Nerdvana one day 🙂

 

Thanks again for sharing your wisdom with us.

 

Regards,

Fab

 

PS: Hope someone finds useful all those links and that no one finds them annoying 🙂

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
swatts
Active Participant

Thanks for your kind words Fab, I like links!

I do enjoy writing the articles that build on conversations, comments etc over time. The seed of this one was probably planted at a CLA summit 2 or 3 years ago.

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

FabiolaDelaCueva
Active Participant

By the way, I found this and thought of this post. The image says:

Oh god! I made it! ... I have freed myself from the ego... I am awesome!  🙂

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
swatts
Active Participant

I always enjoyed the job interview answers to the question

"Q: What is your greatest weakness?"

"A: Sometimes I'm just so awesome that normal people find me intimidating." Sadly I left the job market before I could try it out. Smiley Very Happy

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

SercoSteveB
Active Participant

Nice one Steve.

 

I had never heard Endarkenment and Nerdvana before Smiley Very Happy.  I am adding them to my lexicon, right next to Unobtainium and another about a "... user not trained" that is way to rude to post here. 

 

 

swatts
Active Participant

Cheers Steve

I'll claim endarkenment as my own, but I'm sure where I got Nerdvana from. Pretty sure it's not a swattsism.

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

JScherer
Member

Steve,

 

Thanks for bringing attention back to this post via LinkedIn. As someone doing my best to progress into the level two space, your book, JKI's templates, and Fabiola's lectures have given me a lot of material to learn from and think about. 

I don't know if you're familiar with it, but the above stages remind me of the Situational Leadership model. Particularly your stage 0 matching up with a D1 enthusiastic beginner.  

swatts
Active Participant

Welcome back Jason!

I think I got these levels (or the seed of the idea) from Peopleware by Tom DeMarco, and I'll bet he got them from applying leadership theory to software development teams. I love the history of ideas so thanks for linking to that, I think it rounds off the picture I'm trying to draw really well.

Now you've got >150 other articles to read!, enjoy...

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile