- You should try to write as few tests as needed (and focus on getting as much value as possible out of each test case).
- Only write unit tests for logic that is either: 1. Too complex to reason about or 2. Very old and hasn't changed in a very long time (like 1 year or more) and you want to lock it down.
- For TDD; integration tests are the best.
Also, I have unpopular views about statically typed languages; I'm not a big fan of them. I spent many years working with statically typed languages in a professional setting (in fact, my first language was statically typed) so I have a deep understanding of the pros and cons of each one so I feel very strongly that dynamically typed is better in terms of productivity (both for initial development and also refactoring).
Basically I'm against the corporate approach of software development. I'm particularly against all software development approaches which aim to treat engineers as disposable and untrustworthy entities.
It's obvious why executives don't like this type of thinking but it's surprising to me why engineers themselves also often disagree with it.
I have worked with both types and untyped languages and I really don't like untyped languages. But I have seen plenty of smart people who love untyped languages and do great work so I have concluded that people just are different and have different needs. And ideally the workplace should accommodate these differences.
Same for open space. Some love it, some hate it. So ideally people should have a choice.
There are a lot of statically typed languages, many with completely different paradigms, so I admit to considerable scepticism of your claim.
A statically typed language - even a relatively weakly typed one would seem superior for refactoring.
The reason why typed languages are slower to refactor is simply because they just take more time to think about. For example, it takes time to discuss and agree on types with your team members; what they should be called and whether or not we should combine some interfaces into a single interface...
It's also not too different to what old books like Fowler's refactoring or the Working With Legacy Code book say, or what modern books like Philosophy of Software Design say.
A fun mental exercise is to classify sleep as brain training and then compare the results of sleep to a brain training game (or practically any other activity).
As a result, I generally don't value productivity very highly.
That says something important about productivity. You'll only be happy with productivity meets up with a level of challenge that puts you in a flow state. Productively doing easy tasks is boring.
I'm extremely happy at my past productivity. And, at the time, I was also aware I was building something, so I generally felt happy, or at least with purpose. (There was a lot of stress then too)
If you're just productive at....whatever and it isn't really driving towards something valued, I'm sure it feels very different.
Moving fast is not always the most productive way to do things.
Workplace environment can have a huge negative impact on productivity. Noise and distraction can kill productivity.
I've never worked in an environment was happy to see highly paid engineers sit idly in a meeting.
No one has ever said "Yes sure we have the time and money to spend to have you be bored instead of productive".
Obviously, YMMV - I simply want to express how I can in no way relate to the "bad guys" (management) in this scenario.
Being a parent of small kids, not once have my kids complained about "not having the big picture" or "having a say in whatever, etc."
I'm struggling to find the useful, productive substance part of your comment.
Same with open space. Most people agree they suck but somehow it's still the safe choice.
"Nobody ever got fired for holding meetings"
"Nobody ever got fired for creating an open space office"
1. The people who most vigorously argue things like "this meeting could be replaced with an E-mail"... tend to not read their E-mail.
2. The people who complain that they're always out of the loop are the ones that don't go to the meetings or read their E-mail.
3. The least productive/reliable people tend to be the ones that flake out on meetings and/or have 13,591 unread messages in their inbox.
4. I hate to interrupt people while they're "in the zone" but I'll do it after 2-3 un-answered E-mails/IMs over the course of a few days. A lot of times they'll get irritated and say something like "Why can't you just E-mail this to me instead of interrupting me?"
I agree with you with non-remote meetings though, they are highly improductive to me.
This is why I practice “Inbox who gives a fk”. I scan the subject lines of the messages in my inbox, and only open the ones that I think have relevant information that I can’t get some other way. (I currently have greater than 7700 unread emails in a relatively low traffic account.) Any time taken to touch/manage/sort/categorize/unsubscribe is a waste.
Coupled with "wtf is this, unsubscribe", I have been experiencing steadily increasing levels inner peace.
I like that. Inbox Zero Fs Given.
I've found too many managers believe as long as their employees are happy then they're doing a good job managing. It is totally possible to have happy unproductive employees, and sometimes the only way to help them improve is to make them unhappy. Set difficult expectations, alert them to their failings, and establish a transparent plan for improvement. If necessary, take away the damn ping pong table.
I want to employees to be happy insofar as it improves their output, retention likelihood, and company morale. If their happiness kills their and others productivity then difficult conversations must be had.
If you spend most of your time working at a desk, why are you hobbling yourself with inferior kit which exists to be portable, not productive?
Yes, I'm relatively old... Get off of my lawn!
I'm struggling to find a larger size mouse that:
- doesn't have a million buttons (e.g. gaming)
- lasts more than a year
I am a bit worried that it looks really similar to the Logitech M500 -- which I've had and only lasted a few months.
But if you say you're already past the year mark, that sounds good.
Do you know if there's a succesor or am I just not looking in the right place?
* Doesn't need to move on your desk.
* Wireless, so if you want to have it away from your pc (standing desk for instance) that's no problem
* trackball, and two angle to position it: no more pain in my arm
Has yours been better?
> Reason: Access from your area has been temporarily limited for security reasons.
Get at least 8 hours of sleep, a physical at least once a year and see a dentist at least once a year. Cook your own food, or marry someone who will do it for or with you. If you drink any beverages routinely, invest in the equipment to do it yourself.
I don’t care what tools you hack in, you know what you need better than I do, the only thing I will say on this topic is that for any task I use a computer for, I make sure that of my equipment, there is one canonical way to do it. If I want to set a timer, I use Siri. If I want to invoke a podcast, I use Siri. If I want to know the time, I look at my watch on my wrist, not on my phone. If I want to read something, it is either in Instapaper or iBooks, unless it is Wikipedia. Anything overtly mundane, I probably already automated.
It’s not what you use, it’s how you use it, and I like things to be boring and predictable. I don’t ever want to be surprised.
And, how do things get in instapaper in the first place? That sounds like a system worth trying, but for me the browsing is the hard part.
To be productive: start vi, code, run the code. No source control. No planning. Just do until you reach your objective.
My way is to iterate and improve. I get in one day what a team gets in a month if they are lucky
And when I don't feel like working, I don't. I wait until I feel the need.
I would normally never ask this but since this is such a radical suggestion I’d love to see some of your work. I’m guessing no open source without source control. Would you mind sharing some of your public projects so we can see the kind of results to expect from this mindset?
I work in small team because I like productivity.
Why no source control? Same for why not updating the operating system or tweaking the keyboard shortcuts on your editor. Extra things take extra brain power. Remove everything extra to concentrate on the core.
No planning is important to concentrate even more on important features: the right moment dictates what you should do right now.
git makes this trivial, and doesn't get in the way of anything
Then work on program-v4 with test deploy until you are happy. Then when ready, change your production deploy scripts to use program-v4, and the "emergency-revert" scripts to use program-v3
Editing 2 scripts is not more complicated that running git commands.
That said, I like git. git is nice. But unless you are writing the new linux kernel with tens or hundreds of people you may not need it.
I try to remove everything I do not absolutely need and use the simplest hardware I can get away with. Complexity for complexity sake is not productivity.
Once again, my hopes of finding out some interesting new way of working, that I couldn't even imagine: dashed!
As you wisely said, this differs from source control in no meaningful fashion.
I do not understand, why not speak the truth? We all have some unpopular opinions! It is not a beauty contest! Let's be honest with eachother!!
Ok, before I go to bed, another unpopular opinion just for you: shell scripts beat more advanced tools.
Because with a simple syntax and limited set of tools, there is less room for error.
Now time for me to sleep.
Exciting productivity occurs when you are doing or learning something new. The excitement motivates you to keep taking another step forward. For this type, I have learned it is best to take baby steps to avoid burnout and to create a steady flow of productive days.
Busy productivity is boring. It is standard routines that you just need to do. For this type, I have found that my mood greatly affects how much I can do. There is no strong motivation other than "it has to be done." That being said, I add additional motivation by keeping in mind that it will make my future self's life easier.
Last thing I want to add is that productivity stems from self love, and the simplest way to love yourself is to take care of yourself: eat well, exercise, and sleep well. Having that basis will motivate you in all other aspects of life.
The general problem here is a combination of estimating the time it will take to finish a project, and a problem of knowing what key problems dominate the final product... themselves two of the hardest things to do.
Instead, I'm at the client's site for 6 hours. I set my monitor so people can see it and then I crank. I go home and turn off the devices and enjoy the time with my family - without worry.
Context: I have pomodoro timer, Asian Efficiency, 7 Habits, Personal Productivity self help books galore and still get nothing done.
B) The productivity industry is a total sham and a net drain on productivity. It's mostly social manipulation. The industry takes attention away from the things productivity is a side effect of, such as level of control, overall health, and level of insight into oneself. This is partially due to -
C) All texts/advice/systems put minor spins on a couple of templates, and most of the good ones steal from Marcus Aurelius. Whichever flavour of system fits the fashion of the day the best becomes 'the best' because reasons.
D) The definition of 'productive' is so absurdly narrow and restricted in the late-capitalist hegemony as to render most of humanity utterly useless. Clearly, they're not . It's more about raising members of a certain class with a certain personality profile  up to the status of a golden cow.
 for example, parenting is a fairly productive activity.
 that is, two things we're lucky to be able to change a lot about.
A while ago I tried to count the number of overt "productivity" messaging I came across in a day and I stopped after 17 or so - probably because it wasn't a "productive" use of my time. Who knows how many subconscious or covert productivity messaging I was getting.
Your walk seems like suboptimal time allocation and a loss of potential productivity gains. Have you considered the productivity opportunity costs of your decision?
While you are on a walk, have you considered listening to an audio book? Perhaps a self-help audio book on having more productive walks? Why walk when you can walk and listen?
Or think of how many emails you could respond to in your 10 minute walk? Not only is your walk more productive, you will gain more muscle carrying around your smartphone and increase hand eye coordination by typing on a smartphone. A more productive you, is a healthier and happier you.
That is exhausting. People think that dystopia is a future waiting for us. I think it's here.
Maybe we need a site that’s HN minus this sort of thing.