More on this book
Kindle Notes & Highlights
by
Joel Beasley
Read between
March 17 - March 30, 2021
Move people across teams to find the right combination if needed. Make sure you’re constantly scanning for personality conflicts because they often delay progress. Think about it.
most common solution I have seen: “Let’s hire an expert, and they will tell us exactly what to do, and it will work the first time.” Wrong. Nothing ever works the first time.
So, when presented with a problem, identify and solve it by trial, error, selection, and a variation of different probable solutions. Process simplified: Identify the problem. Develop two to three solutions Test the solutions and select the best performing ones. Create variations and repeat.
The top 10-20% of developers have setups that include three essential elements: GitHub Code Climate Continuous Integration If you or your team are not fluent in these tools and services, then you’re not keeping pace with the industry leaders. So get up to speed! Know
If testing is not part of the process, it’s a warning sign of poor quality.
If a developer tells you testing will slow the project down, they’re probably covering up the fact that they don’t know how to test.
Can you train someone to learn about testing? Yes, but the learning curve is quite steep. While you should educate yourself on the basics, the most practical solution would be to get a testing expert on board sooner than later.
Two sets of code may sound redundant but in the lifecycle of a project you save time. Plus, the tests are always there and serve as documentation of what the code is supposed to do. You always know the code is working, and passing testing, which increases the intrinsic value of the program.
When using GitHub, you should see frequent “commits” (changes), say every two hours or so. Google’s engineers make about 45,000 commits to their repository each day. This record of changes to a file should also be specific. If you see one word commit messages like “update” or something ambiguous there’s a problem. Instead, you want something much more detailed like “move exhibits and transitions as inner route switch” or “feat(Global): install ZenDesk widget.”
Code Climate allows you to monitor code quality, style, and test coverage for a codebase. The quality of your code, making sure tests are being written, and managing technical debt are items you absolutely need to be aware of. Another vital tool is Circle CI (Continuous Integration) which determines if your tests are running before being deployed.
Remember the user experience (UX) is not just about design. It’s about business.
Modern CTOs know all about programming, if they don’t, they surround themselves with those who do. As the CTO, you must have a business focus.
It’s essentially the concept of making the human-machine interface as friendly as possible.
I make my apps so easy to use that even during the pee dance, users can make them work.
I tell them we’ll split test it. I validate that both views have value, and testing will help us decide, but guess what? Ninety-nine-point-nine percent of the time I never do the split testing, and the issue never comes up again. Why does this happen? People want to be heard. It’s not always about power or ego. We, as human beings, need to be heard. Deep down, they really don’t care about the button at all.
The Hallway Test works like this: I test my software on the first random person I encounter that has no vested interest in the project. You want an answer like, “Yeah, whatever. That one’s the best.” The reason this works is that their response is free of bias and purely practical.
That’s why I always ask what they like about something, but I’m very much looking for what they say they don’t like.
I don’t even bother to ask what they “think” about an app. When I ask them to think they get tangled up in a mind game trying to be fair, balanced, or maybe even inoffensive.
The point to remember is this—everyone’s distracted these days, so I design my applications to deliver the lowest common denominator to fit snugly in the user’s world.
I like to collaborate with developers early, so they feel like a part of the process from the get go.
Architects that build buildings have huge amounts of stress and variables swirling around them. They almost always work in very small teams. This structure enables them to deal with new iterations in the most agile manner possible. They’ve been doing it that way for centuries because it works. That’s the kind focus I want to emulate.
always return to your core goals. Your core goals are a list of three to five things your project or product is trying to accomplish. I make sure each core goal has a clearly defined “why?” behind it, this way if I ever get lost, I go back to my “why.”
What’s creep? It’s the trap of trying to be everything to everyone. In the business world this means branching out into niches where you can’t be successful.
It’s the Law of Diminishing Returns: if you love chocolate ice cream, you’ll love it a lot less if you eat it three times a day. Enthusiasm wanes, so we look for something new, even if it’s not useful. We end up developing it to death. I’ve witnessed people become addicted to building technology and the high of the new idea. The way I avoid this trap is to shift my reward focus. This means I look at milestones that go beyond development. I get my serotonin fix from business milestones instead.
Loud, smart people are the exception and not the rule. Usually loud people are dumb and quiet people are smart.
I discovered that it’s okay to take a risk and sound dumb. And you know what? Usually, the only one that thinks you sound dumb is yourself.
Growing up you think all the leaders in this world are really smart and know what they’re doing, meanwhile your life is chaotic. When you get to the top though, you realize that everybody’s human. Everyone is just a person.
Make friends with people. Help them, even if they’re the leaders of your company. Stick next to them, provide them value and they’ll pull you up.