You’re my colleague, or my boss. I wish you would do something, and we both can agree that it’s a good thing to do. What does it take you to actually start doing it?
Well, 1) you need to know about it, 2) you need to be able to do it, 3) you have to want to do it, and 4) you need to get started.
I used to think 1) and 2) and 4) are problematic. Luckily, there’s a lot that can be done about them: teaching, spreading information, giving freedom and responsibility, helping you focus. But as I grow older, I keep learning that I vastly underestimated 3). Whether you want something is your personal decision, your own will, and there’s not much I can do about it.
Now why would you agree something is the right thing to do, but still not want to do it? It turns out there are a lot of reasons: You don’t have the time – which means you don’t think it’s that important, you have other priorities. Or you’d rather have someone else do it. It’s also probably risky or uncomfortable or hard work, and you want to avoid that.
People rarely change. If my dreams or future rely on other people changing their will, I have a serious problem. That’s why you often read that hiring the right people, or choosing the right co-founders, is the most important success factor. (Unless you’re a magician like Steve Jobs who was great at influencing people – Guy Kawasaki remembers having learned from him: “The starting point of changing the world is changing a few minds. This is the greatest lesson of all that I learned from Steve.”)
Scott Adams – The Management-free Organization:
“Our decision-making so far seems to follow a rational model that goes like this:
1. We discuss the question (by email or Skype).
2. Everyone gives an opinion or adds information.
3. The smartest choice becomes obvious to all.
4. The end.
That decision-making model might not work in your company if some of your coworkers are worthless. There's always the one person in every meeting who keeps changing the topic, or doesn't understand the issue, or insists he knows more than he does, or is bluffing to cover his ass, or is jockeying for a promotion, and so on. To put it in clearer terms: Management exists to minimize the problems created by its own hiring mistakes.”
(I don’t think anyone is “worthless”. But I sure agree that mistakes in hiring, training, growing and empowering and motivating people poison companies. Let’s not just track and fix the bugs we developers put into our software, but these management failures as well.)
James Whittaker – The Anti Meeting Culture:
“Vote with your feet by walking away from the more useless meetings. Just don't go to those meetings where the organizer holds court. Anyone who likes the sound of their own voice that much doesn't deserve your attendance.
Build disdain for meetings into your DNA so that every meeting is useless until proven otherwise. […] Meeting organizers need to be put on notice: make this meeting meaningful, its your damn job.”
Jon Udell – Networks of first-class peers:
“It is possible for various of our avatars — our websites, our blogs, our calendars — to represent us as first-class peers. That means:
- They use domain names that we own
- They converse with other peers in ways that we enable and can control
- They store data in systems that we authorize and can manage
Your Twitter and Facebook avatars are not first-class peers on the network in these ways.”
David Diamond on CMSWire – God Help Me, I'm a DAM Geek:
“After two or three minutes of ample introspection, I realized that my passion was not actually about DAM (thank God). My passion is about quality content and the good things people do with the content they manage via their DAMs.
[…] I once asked Picturepark founder (and my employer), Bruno Jehle, about the origin of the product’s name. He explained to me that parks are where we go to enjoy the world’s beautiful things — the trees and landscapes, the water and fresh air, children playing and, of course, infinite blue sky. He envisioned his software being a place people could go to enjoy their own beautiful things.”
Ralph Windsor: Why Small Vendors Build Better DAM Software – The Implications For The DAM Value Chain
Ralph Windsor at DAM News – Why Small Vendors Build Better DAM Software – The Implications For The DAM Value Chain:
“If you are the boss of a DAM vendor, you are going to be intimately aware exactly what is happening with a good number (possibly all) of your clients – certainly all the key accounts. Despite not mentioning it to customers or press people, you are probably painfully conscious of all the limitations of your product also and have big plans to address them as well as develop ever more sophisticated capabilities. […] Probably significant proportions of your life to date has been devoted to your solution already and a multitude of personal, professional and financial sacrifices made along the way.”
Dave Winer – Goodbye Google Reader:
“I won't miss it. Never used the damn thing. Didn't trust the idea of a big company like Google's interests being so aligned with mine that I could trust them to get all my news.”
Totally agree. Doesn’t hurt me. I’m using NetNewsWire without its Google Reader sync functionality; all my subscriptions are on my local disk. Sync would have been nice but since the demise of Bloglines (which I used for a long time) I don’t trust any free Web service with this. Turns out I was right.
To paraphrase a popular song: “How many times must a man be surprised by 'spring cleaning' before he can see that he can’t rely on Google? The answer, my friend…”
I’m sorry, but if you have a slight understanding of the tech world you’re stupid to think any free service cares about your content, your URLs, your identity, your e-mail address, or your feed subscriptions. Google Mail, Google+, Facebook, Twitter will all cease to exist or do bad things to your data at some point in the future. If you’re in this for the long term, host your stuff yourselves, or pay someone for it. And keep local backups in an open format.
(NetNewsWire is also free, but since I’m running it locally I can migrate away from it on my own terms if necessary.)
Build components, not pages.
Components can consist of other components.
Components communicate exclusively through events (fully decoupled, as in Twitter Flight).
Make sure multiple instances of the same component can live independently on the same page (think two list views).
Don’t make assumptions about the HTML structure. Leave it up to the individual component to use data attributes, IDs or CSS classes for identification.
There will be components with no corresponding HTML (think an auto-refresh timer) and components that affect HTML in multiple places.
Send Ajax calls to a clean and powerful JSON API (I’m looking into JSON-LD), and offer that same API to external developers.
Dr. John Bordeaux – People, Organization, Technology?:
“The right question is: “Why do we work in organizations where natural interactions and instincts are discouraged?” […] We want to help where help is needed. We solve business problems over lunch. We sketch out innovative ideas on bar napkins. This is how we live – but not how most of us work.”
“Koken is a free system designed for photographers, designers, and creative DIYs to publish independent websites of their work.
Exceptional media management: Koken manages your uploaded images and videos through a dedicated, desktop-like interface.
[…] Koken is free and may be installed on your own web server.”
Written in PHP. My test installation was up and running within minutes.
I think Digital Asset Management and Publishing belong together; their approach (combine a photo library with a simple CMS) is brilliant.
Henrik de Gyor – How do people talk about DAM within an organization?:
“Break down the silos, egos and misconceptions. Stop throwing work over a real/virtual wall. Stop ignoring what happens before, during and after someone works on something. […] Leave your comfort zone and get a fresh look at what the other groups do to make things happen. Speak up.”
Being what they call a “senior developer”, I should have invested some time helping younger colleagues learn. (I may have shied away from teaching them because they usually have real Computer Science degrees, while I’m just an Information Scientist-turned-programmer with lots of self-education and training on the job. But not all real-world wisdom seems to be taught in Comp Sci courses.)
The best advice I could give: Don’t take my advice, learn from the masters instead. There’s so much more to the craft of programming than just getting your code to run. No matter what language you will be programming in, read these three books:
Then make sure you know these phrases, you might need them from time to time:
- Worse is better.
- You aren’t gonna need it (YAGNI).
- Keep it simple stupid (KISS).
- Do the simplest thing that could possibly work.
- Complexity kills.
- A complex system that works is invariably found to have evolved from a simple system that worked.
- Premature optimization is the root of all evil.
- All non-trivial abstractions, to some degree, are leaky.
- Eat your own dog food.
- Don’t repeat yourself (DRY).
- There’s no silver bullet.
- Don’t make me think.
Have fun and good luck!