Love Notes | |
Send your Valentine a playlist with a secret message. |
Beginner's Resources to Learn Programming Languages | |
A good collection of links for web developers. | |
JsTips | |
Mobile app that gives a JavaScript tip a day. |
good-migrations | |
Prevent Rails from auto-loading app/ code when running database migrations. | |
log_spy | |
A rack middleware sending request log to Amazon SQS. | |
git-blame-someone-else | |
Blame someone else for your bad code (joke). | |
HTTP::Accept | |
Provides a robust set of parsers for dealing with Accept and Accept-Language HTTP headers. | |
Services | |
A nifty service layer for your Rails app. | |
himawari.js | |
Download real-time images of Earth from the Himawari-8 satellite | |
GrapesJS | |
Next generation tool for building HTML templates without coding. | |
Browsersync | |
Time-saving synchronised browser testing. | |
diff-so-fancy | |
Good-lookin' diffs with diff-highlight and more. |
Kill Your Dependencies | feb 9 |
Some notes to app and gem developers on how not to add unneeded dependencies. | |
Build Your Next Web App 10x Faster with RapidAPI | feb 9 |
RapidAPI is an online platform that lets you create a back end for your web or mobile app without writing a single line of code. | |
Language and Locale Matching in Go | feb 9 |
How Go handles multilinguism. | |
Introducing Dynamic Modules in NGINX 1.9.11 | feb 9 |
NGINX version 1.9.11 introduces dynamic modules, separate shared object files that can optionally be loaded at runtime. | |
Do You Believe in Programming Magic? | feb 10 |
Too magical makes more complex. | |
Making Error Alerts Less Noisy and More Useful | feb 10 |
The only thing that's worse is a real alarm sent to the wrong person. | |
Quick Tip: Master Closures by Reimplementing Them from Scratch | feb 10 |
In JavaScript, a function doesn’t create a closure; the function is the closure. | |
How to Build an SMS Appointment Reminder App with Twilio | feb 11 |
WUse Google Calendar to get appointments and then send the text message with Twilio. | |
The future of loading CSS | feb 11 |
Chrome is intending to change the behaviour of _link_ in _body_, which allows for better ways to load CSS. | |
How to Use ARIA Effectively with HTML5 | feb 11 |
Accessible Rich Internet Applications. Don't forget about it. | |
Google Challenges AWS Lambda with Cloud Functions | feb 11 |
Create hooks between functions to trigger in Gmail and other Google offerings. | |
So you want to write a package manager | feb 12 |
Very long article splitting in part the hard work of writing a package management system. | |
Open-sourcing Teletraan, a code deployment system | feb 12 |
Code deployment system built to deploy hundreds of services on thousands hosts. |
In the long road of my developer life I had the chance to experience a very wide variety of organizational models. The most pleasant was in the context of very large open source projects, where actions are not planned but still organized, and things fall in their place seemingly naturally. Of course there is nothing natural in that. There is a category of people, that can be called catalysts, working as gardeners and building the pathways to collaboration. But because there is no predefined hierarchy, I thought chaos had some virtues.
In other hierarchical models, there is so much waste following the rule rather than its essence. It's like there was an abstraction layer for efficiency and the staff follows the abstraction, paying no respect to the efficiency. Because after a time the set of rules is not making sense anymore. The environment moves fast and habits are hard to change. It's taking long time for an organization to change its own internal rules.
But I also have seen non-hierarchical model totally fail. When you try to apply an open-source kind of organization inside a company, it cannot be done half-way, but it cannot be done fully.
For example the volatility of contributors is an essential part of the open-source organization model. Things are working the way they do because people are free to leave and join at will, or stop working when they decide. This is totally different in a company, even if you can get some approximation, leaving and joining is a more complicated process, and has a different set of motivations. And let's not talk about the freedom to stop working at will.
This single factor leads the free-formed communities to get various incentives for contributors to feel good about their interaction in the community. The ones that don't play well along other people just end up either in a leadership position because they are geniuses, or just leave because they don't fit in. Or they stay and kill the project because everybody else leaves. But most likely they are the reason why forks exist.
But in a non-hierarchic company, those cowboys may end up hurting the whole process of collaboration by capturing some processes, getting very good at them, and give hell to everybody else for a time, under the privilege of the Power of the Bottleneck. It's very hard to get those people to share knowledge because their position depends on it. If nothing is done, the situation will become uneasy and awkward at best.
Certainly in that type of situation, if there is some power in place to mitigate this danger, all can be good and well. But from my experience such power is hard to come by. Especially if the non-hierarchic aspect of the organization depends on him/her/it. Maybe there is some way to have some kind of catalyst role, but where I have seen such role in a company, it was informal and not an official position.
That's too bad because I would love to experience again some real collective intelligence in the workplace the same way I have experienced it in some open source communities. I think maybe there are some companies out there that are doing that well, but most of the time it's not going to be structural. Most likely it will come from a specific set of people that do real good in collaboration. I still wait to see a company that includes in its genetic code, in its fundamental principle, the seeds that make it possible to be efficient and still instinctive.