On online collaboration and our obligations as makers of software An Essay by Baldur Bjarnason www.baldurbjarnason.com Is it the notetaking system that’s helping you think more clearly? Or is it the act of writing that forces you to clarify your thoughts? Is it the complex interlinked web of notes that helps you get new ideas? Or is it all the reading you’re doing to fill that notetaking app bucket? Is all of this notetaking work making you smarter? Or is it just indirectly forcing you into deliberate, goalless practice? Towards a crap decisionSo much knowledge not being applied notetakingbloggingsoftwarethinkingcommonplace
What do I need to read to be great at CSS? An Article by Baldur Bjarnason www.baldurbjarnason.com A rule of thumb is that the importance of a blog in your feed reader is inversely proportional to their posting cadence. Prioritise the blogs that post only once a month or every couple of weeks over those that post every day or multiple times a day...Building up a large library of sporadically updated blogs is much more useful and much easier to keep up with than trying to keep up with a handful of aggregation sites every day. bloggingcsscodelearningrss
136 things every web developer should know before they burn out and turn to landscape painting or nude modelling An Article by Baldur Bjarnason www.baldurbjarnason.com The best way to improve software UX is regular direct observation, by everybody on the team, of the work done. Have some personality. Minimalism is garbage. Metaphors are fantastic. Naming things is fantastic. Try to write HTML that would make sense and be usable without the CSS. The buyer is quite often wrong. That fact never changes their mind. Working on a functioning app’s codebase does more to increase its quality than adding features. A good manager will debate you, and that’s awesome. The term ‘project’ is a poor metaphor for the horticultural activity that is software development. Two Hundred Fifty Things an Architect Should Know wwwworkuxcollections
Nobody gives a hoot about groupthink An Article by Baldur Bjarnason www.baldurbjarnason.com Two relatively common ‘fashions’ today are real-time collaboration and shared data repositories of one kind or another. Both increase productivity in the naive sense. We work more; everybody is more active; the group feels more cohesive. The downside is that they also both tend to reduce the quality of the work and increase busywork. On that of the highest authorityPersonal Information Management (PIM) productivitycollaborationinformation
Deadlines are bullshit An Article contrariantruth.substack.com In software development deadlines are a necessary evil. It is important to understand when they are necessary, and it is important to understand why they are evil. External vs. internal deadlinesWhy are internal deadlines evil?Engineers who love their work Hofstadter's LawThe Thing-deadline calculusNever enough timeDriving engineers to an arbitrary date is a value destroying mistake bureaucracysoftwareprocesswork
External vs. internal deadlines When are deadlines necessary? Contractual obligations Technical liabilities (e.g., dependency EOL) Compliance, government, investors, and other external stakeholders What do all of these deadlines have in common? They are all important. They are all deadlines that cannot be missed. They are all external. When are deadlines evil? Your manager says you have a deadline Your software development methodology says you have deadlines What do all of these deadlines have in common? None of them are important. They are arbitrary. They are all internal. They are all bullshit.
Why are internal deadlines evil? Estimation: When estimating engineering work a substantial time investment is required by an engineer in order to get an accurate estimate. Misaligned Incentives: There is an incentive to lie and give estimates much longer than the feature is truly expected to take. Low Morale: Deadlines are likely to be missed often. Repeated failure has a cost to the morale of the team. Micromanagement: Deadlines are wielded by middle managers as a whip to harass and annoy engineers working on features. High Stress: When engineers feel the pressure of other stakeholders holding deadlines over their heads it creates an environment of high stress. High Turnover: On teams with high turnover rates the best engineers have an easy time finding new work and leave quickly, the worst engineers have a difficult time finding work and remain. This selects for a lower quality team over time.
Engineers who love their work The resolution is simple. Never have internal deadlines. Operate on a prioritized and ordered list of features. Estimate only when necessary to prioritize and do so in a t-shirt sizing way. Trust your engineers and they will begin to love their work. Engineers who love their work are happy and productive. Building is never a straight line