What are the unwritten rules of development?

What underlying rules govern our work?

Which are good and which need to be dropped?

Did you find this post useful? Show some love!

When you are looking over someone else’s code, before you criticize, recognize that they likely did what they did for a reason.

100% this! When I do code reviews, I remember to always ask for clarification in a format like "what was the intent/your intention here?" instead of something like "why did you do it that way?"

As soon as one starts anything with "why", the receiver feels the need to be defensive. "Why" is an aggressive word and should be avoided.

I love this! In the words of Erykah Badu "I'm and artist and I'm sensitive about my..." Coding is definitely an extension of creativity. Sound advice to keep defensive feelings out of it.

You can't make a decision with information you don't have.

Great point! A corollary: don't judge the person by the quality of the code.

That's true. People get better over time. And maybe the person who wrote that code is so much better now. I look down on the code I wrote 2 yrs ago, and that's just mark on the progress I made thus far.

I have an easy rule: Always start with a honest "Awesome, ...".
"Awesome, your code is very readable."
"Awesome, your layout is great."
"Awesome, your site looks great."
...

There's only one, really, but I'm so bad at following it that I had to make it written

don't be a dick

Doesn't count anymore. It's written!

Learning how to ask the right questions (obviously) gets you the right answers BUT also helps you strengthen your understanding.

My mentor once told me 'A senior developer is just a developer that learned to ask the right questions by understanding the problem better'

Sticks with me everyday

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❤️

Plus, no fake comments when you're signed in. 🙃

After spending the first half of my career in technical support, I wholeheartedly endorse this rule.

Sleep a little bit more. You'll squash your current bugs and have less of them to deal with in the next few days

I can definitely relate with this one. Stepping away from your code (not necessarily sleeping), keeps you fresh and gives you a new angle of analyzing that stubborn bug.

I'd extend that to looking after yourself in general - getting enough to eat, drink, exercise and, as you rightly say, sleep! No code is worth losing your health & wellbeing over!

The fastest, safest and cleanest code is that which does not need to be written.

This is a rule I regularly promote.

Todo comments are not for bug fix reminders.
Todos are for acknowledging completed code could be done better but the current code meets requirements and is therefore shippable.

Yeah, we have // FIXME comments to remind us of bugs ;)

From a friend and mentor - "When you get to the top, send a ladder back down"

Words to live by! Namaste!

Rule1: Write tests. Explain your processes in this tests.

Rule2: Write comments. Dont explain your code, explain why u wrote this code in this manner.

Rule3: Dont forget to do some research work before start coding. (Refresh your design pattern skills, architecture, dependencies around your projects, etc).

I am not saving lives.

Some developers write code with a lot of real life consequences, I'm not one of them. So I keep that in mind.

I had a boss who'd been in a Major in the Air Force, and had been wounded in combat. Whenever the debate over some technical point got very heated, he'd interject with, "Calm down. This isn't combat. Nobody is going to die if we pick the quick route over the safe route."

Exactly. I make mobile apps and crud apis and I still get so much anxiety over it. If I were writing code for airplanes, banks etc, I'd have anxiety 24/7. I'm still working on taking care of my anxiety but it's difficult.

take care of yourself Avjinder, that's the most important thing.

I don't have suggestions on how to combat anxiety but I remember this thread which talks about depression and anxiety. Maybe you can find some tips in there:

Thank you for the link, it's really helpful. I am working on improving my mental health but the progress has been slow. I've chalked it up to this being my first professional job, and being handed a massive load of responsibility. I expect it to go away with time and experience, but only time will tell. One thing I've been recommended is to leave work at the workplace, and not bring it home with me. That has been helpful for me to a certain extent. Imposter syndrome is a bitch though, and cumbersome to get rid of.

I think mine is actually that if there are rules, they should be written or codified somewhere! Strong communication and making no assumptions about what makes sense to other people I think is a must when working on a development team.

Corollary: a colleague will /always/ forget something important when communicating: most likely because it's the context of their issue and they are inside it. Be prepared to live in the dark for a while as you politely ask for explanations and they surface from their silo... sometimes resolving stuff in the process (hello Rubber Duck debugging!)

Oh, yeah, being prepared to ask questions and walk through stuff with people is like a real key underrated dev skill.

There is nothing so permanent as a temporary fix.

More colloquially known here as "fix it in post".

I'm having fun trying to ensure that all features / fixes that we have going into service have a clear statement of what will enable them to be decommissioned, before they go live: giving the more malevolent of us a goal or two :)

Stop trying to be clever.

Clever solutions < simple (or elegant) solutions.

I'd take a css solution over a javascript one any day.

Know your weaknesses, and don't be afraid to admit them.

I'm mainly a front end developer, and I have a lot of experience with server side tech (Apache, Tomcat, Node.js/Express/Koa/Sails/etc), as well as several flavors of Linux administration. I'm more than happy to do my best and answer any questions about those topics, as well as provide resources for learning more.

The minute you ask me a database question, I'm going to stop you, and tell you that I don't know enough to provide good or accurate information, and you're better off talking to a DBA. I can read SQL, I can write some (bad) SQL, I can use an ORM library to interact with a DB, and if it's Postgres, I can do enough on the command line to be dangerous. Outside of that, my knowledge of databases is very limited, and I make no attempt to hide this fact. I'm starting to learn more, but the fact of the matter is that for my day-to-day job, it's not needed

That feature you build today maybe removed in the future. Once you realize this, it will allow you to iterate quicker. 😀

Learn how to test
write good tests
test

Be creative. You're allowed to find answers from outside the box.
Stretch. Get up, move around. Learn how to walk away and come back later.
Read the code before you ask! Then ask, ask more, keep asking until you understand.
Learn how to ask good questions
Don't role your eyes
Offer to help when you are needed
Include everyone on the team in new initiatives

And most important of all

alt text

Visuals<functionality.
Its much better to have an ugly UI, and a fully functional backend, than a backend that's in shambles and a UI that looking good is all it actually does.

Start where the project revolves
When you start with the center-most aspects of your project, it will usually wind up much more on-center oddly enough.

For example, with Desutezeoid, my point and click adventure game engine, i started with the core screen data format (XML) and some basic clickable text items that jump between screens, and worked from there. sure, it wasn't pretty at first, but now Desutezeoid has a solid plugin API, an animation system, inventory management, and a host of other features. and you know what? It even looks halfway decent.

A rule that shall be kept:

The continuous learning and sharing knowledge mentality. I believe the exponential'boom' of the last 10 years in our sector, is due to that, at one point of another.

For example, the ML popularity rise that happened, when Google chose to open source tensor flow

A rule that shall be abandoned:

Being labelled as anti social guys/girls. It is a bit unfair, but it is up to us to change it.

great comment! Sometimes people seem anti social when they are nervous about making new friends. Reach out and make someone else feel welcome.

Blame your code first.

Sure - it's possible that there's a bug in the library that 1,000 other people are using - but it's faaaar more likely that you're using it wrong, making an assumption you shouldn't, or even simply have a typo.

Bugs in other people's code do exist. But you're far more likely to see a bug in your own code that in someone else's. Blame your code first.

Keep learning. Be aware of current trends. Learn new technologies, even if you're not using them professionally. No position is guaranteed to last forever and your knowledge can help you stumble onto better opportunities.

For me, the only rule is

There are no rules; only guidelines that may become strict in certain situations.

I find that developers that say “never do xyz” tend to over complicate things when xyz becomes the best solution.

Freelance Coder Rules To Live By...

  1. Nothing gets pushed to production after lunchtime Thursday....

  2. Do not schedule meetings on Fridays.

  3. Don't take calls from clients until after lunch Monday.

  4. Enjoy coding but remember, it's your profession, not your life.

The best code is a code what is not written.

Everyone's indentation is correct.

Write clean, simple and easy to read code, instead of fancy pancy :)

Don't embed non-constructive comments, profanity or inside jokes

Classic DEV Post from Feb 28

Can I see your terminal?

I want to see everyone's terminal

READ POST
Follow @itsjzt to see more of their posts in your feed.
Ben Halpern
A Canadian living in New York, having a lot of fun cultivating this community! Creator and webmaster of dev.to.
Trending on dev.to
How do you keep track of all the great resources you find?
#discuss #learning #resources
Sweating the very small design details: external links
#css #webdev #design #discuss
I asked my first StackOverflow question
#discuss #beginners #javascript
What should I be asking for salary?
#discuss #career #programming
Explain Higher Order Component(HOC) in React.js like I'm five
#explainlikeimfive #beginners
Go or Python and why?
#go #python #discuss
Explain Docker to Me and When Would I Use it?
#explainlikeimfive
What was your first computer?
#discuss