Tagproduct management

Development: code of conduct

neutral-whyyyyy

Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.

Code of conduct – absolutely great thing in the world of open source and overwhelming media. We try to setup a certain pattern of communication with others, to avoid bashing, insults or any other types of miscommunication.

It perfectly works in community organisation. People know their “do’s” and “don’ts”. Every now and then, I wonder why it’s not always applicable to distributed teams, working on common tasks. I’m talking not about the communicational aspect of conduct, – but an actual work.

Apparently, it comes down to styling guides, and “convention over configuration” concept of team work, when you deal with application development with semi-isolated groups, but nevertheless, let’s get ourselves to the lists. We all do like lists:

  • Web Design & Layout structuring
  • Front-end Development
  • Back-end Development

All three disciplines use their own sorcery to get things going, but in between, there’s always a time lose.

Web Design & Layout structuring

Usually, people in charge for it are “super busy” to deal with minor requirements, and you might end up with messy stylesheets, and unstructured HTML layouts in common pages. If you get your head up for a little while, and stop re-inventing wheels, and realise that most of your time you write repetitive components on HTML/CSS, no matter how they look – it’s a win!

Apparently, you thought about using CSS frameworks, like Twitter Bootstrap, or Grid 960 to name a few. If you still in complete denial of the fact, that it’s useful, and keep writing your on CSS every time you get a new client – I’m glad for you, but please, use the standards. It’ll definetely reduce the number of “psychopaths” mentioned above.

Hey, but it’s not the end. ECSS perfectly matches LESS/SCSS. I can ensure you, developers will say “thank you” for that, especially when they have to deal with large scaled application, and side-projects that deal with common stylesheets and building them every now an then.

I really hope, I got you convinced of stop using “input1/input2/btn3” identifiers in your CSS, and spend some time reading the stuff.

Front-end Development
c676de4842e508242361c7a0aa2fe13a2e1191b58546d1554d5c128c404216d9

I’m here not to discuss the callback hell of jQuery, and the mess you might made with all the plugins you googled, but hey, the world has changed drastically. If the stylesheets and HTML layout was done correctly, I’m pretty sure there must be one tiny happy front-end developer that doesn’t have to stay awake all night figuring out how to deal with all that sh###, or maybe simply change his job and move to Ibiza.

The world’s become a better place with JS6 standards, Ember, Angular and React at your fingerprints – make your back-end developers happy!

Back-end Development

Well mate, if you got here, then you definitely made few people happy as you’re still alive, and started thinking about the standardisation of project, and caring about others health. Because these guys are all about standards and they truly know where you live – the most severe type of “psychopaths” in the list so far.

To cut the bashing part of the story, please setup a set of prerequisites for the teams. Get some standards to streamline the shipment of your app.

giphy

Management inside Automattic

Great article describes how Automattic handles most of the managerial routines, and keep things running:

The great irony in this, of course, is Mullenweg himself.

In the jazz ensemble, Mullenweg’s notes overrode everything. “I’m married to WordPress,” he told me.

All the high-stakes decisions for all three organisations were made by him – and often low-stakes ones as well.

Employees jokingly referred to the following common occurrence as “Matt bombing,”

fastcompany

Great article on software development sins from Ionel Cristian and great quote on technical dept:

Management fear risks. Juniors fear getting in intractable situations or just don’t know how to solve it better. Seniors with cozy positions fear embarrassment – it’s already cozy enough and the golden shackles are so shiny.

Why risk looking like a fool and give management reasons for downgrade or lose that minuscule 1% salary upgrade.

But you, yes you, you can take it in your own hands. Fight for change or you’ll remain miserable and deal with “legacy” code forever.

How to convince management to change and fix the damn debt? Depends on the situation, but it’s mostly a matter of ruthless politics. Make campaigns, invent reasons, gather support.

IONEL Cristian, technological debt

How bad is your Change Risk Anti-Pattern index?

CRAP is short for Change Risk Anti-Patterns – an acronym to protect you from deeply offensive code.

Measures the C.R.A.P. (Change Risk Anti-Patterns) score. It is designed to analyze and predict the amount of effort, pain, and time required to maintain an existing body of code.

A method with a CRAP score over 30 is considered CRAPpy (i.e., unacceptableoffensive, etc.).

 C.R.A.P.(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)

Where comp(m) is the cyclomatic complexity of method m, and cov(m) is the test code coverage provided by automated tests.