Great code doesn’t save you, but bad code will kill you #HoskWisdom
I’m not saying developers are losers but most software developers are not beating software development, software development is beating them.
The reason developers struggle is because they don’t know what game they are playing or the best tactics to use.
You need to know what game of software development, so you can play effectively.
In the creative process of writing code, it’s not if the code will be wrong, it’s when the code will be wrong and fixing it in the easiest way possible.
In the essay Loser’s…
One of my most productive days was throwing away 1,000 lines of code. Ken Thompson
Developers are more comfortable adding code than removing it but this bias adds more bugs and increases complexity, so why?
This article Adding is favoured over subtracting in problem solving gave people puzzles to solve and found there was a bias to adding components to solve problems than removing components to solve the puzzle.
People would add a component, even when the end solution would be simpler and more efficient if they removed a component.
“Adams et al. demonstrated that the reason their participants offered…
“Tyranny of small decisions. Where a series of small, individually rational decisions ultimately leads to a system wide negative consequences, or tyranny.” Gabriel Weinberg and Lauren McCann — Super Thinking
How do you turn a code base into legacy code? one update at a time.
There is term called the Tyranny of small decisions where a series of small decisions that alone do not make much difference can collectively cause big problems.
“My working habits are simple: long periods of thinking, short periods of writing.” Earnest Hemmingway
When we think of developers, we think of writing code but the code is the end product of thinking, designing, understanding requirements, deploying, maintaining, documenting and testing.
Creating software is the start not the end, writing code is possible when the requirement and problems are clearly understand.
This article Majority of developers spending half, or less, of their day coding, the survey found that 61.5% of developers spent less than 4 hours a day writing code. …
“When…new businesses come in, there are huge advantages for the early birds. And when you’re an early bird, there’s a model that I call ‘surfing’ — when a surfer gets up and catches the wave and just stays there, he can go a long, long time. But if he gets off the wave, he becomes mired in shallows…But people get long runs when they’re right on the edge of the wave — whether it’s Microsoft or Intel or all kinds of people, including National Cash Register in the early days.” Charlie Munger
You can ride new technology changes like a…
Development does not move forward with purpose like a marching band. It weaves, stumbles and staggers like a drunk heading towards the kebab shop #HoskWisdom
Software development is full of surprises, new requirements and changes no one ever predicts. It’s only the simplest projects with a clear scope and less than 5 people involved that go to plan. They are as a common as a 5 leaf clover.
Recipe for success: under-promise and over-deliver. Kevin kelly
Projects do the opposite, they over promise and under deliver because the project/work is underestimated and the team’s ability to deliver is overestimated
Earnings are a means to an end, and the means should not be mistaken for the end — Burr Williams
You create code/customisations are a way to build software, it’s the means to an end, creating software should not be mistaken for the end.
It depends on the scale and complexity of the code base. Many best practices cost in the short term and give benefits in the long term (e.g. code reviews, standards, unit testing, ALM, etc)
OO and design patterns give long term benefits because they make the code readable, easy to understand and reduce complexity. This makes a big codeset easier to maintain.
Designing code takes knowledge, time and practice. Like any skill it takes to get better at it, most developers don't put in the time.
This is needed when you have multiple developers working on a code base at…
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler
A key component of creating readable code is having well structured code that’s easy to understand by all people who read it. This reduces the time and effort to maintain/extend the code.
Simple code is easy to read, maintain and understand
Complex code is hard to read, difficult to maintain and takes effort to understand. Complex code consumes more time and it compounds, the more complex code you have, the greater the effort to look after it.
Software development is a creative process which needs to control complexity. The time, skill and knowledge needed are underestimated and the majority of software projects are delivered late.
The quotes below help explain the intricacies of the software development and it’s the uninitiative approach needed.
On the surface software development seems to be just about writing code but like high level requirements, as you delve down deeper, it's about reducing bugs, reducing complexity and simplifying everything.
In software development the obvious isn’t obvious to the people involved
Have been working with Dynamics 365 since version 4 and enjoy reading and delivering enterprise projects. Books learn from the past to navigate the future