Software Craftsman, The: Professionalism, Pragmatism, Pride (Robert C. Martin Series)
Rate it:
7%
Flag icon
“How it is done is as important as getting it done,”
9%
Flag icon
That’s how seniority was measured back then. If you couldn’t understand a piece of code, normally it was because you were not senior enough. And writing code that no one else could understand would make you a senior developer straightaway.
10%
Flag icon
There is a huge difference between having ten years of experience and having one year of experience repeated ten times.
12%
Flag icon
Agile does not solve any problems; it exposes them.
12%
Flag icon
Individuals and interactions over process and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
13%
Flag icon
Many Agile projects are now, steadily and iteratively, producing crap code.
13%
Flag icon
The number of colorful Post-Its on a whiteboard became their true measure of Agility.
15%
Flag icon
Some companies thought that the important things for a successful software project were a business expert writing requirements, a technical leader (who doesn’t code) drawing diagrams and writing documents, and a manager to supervise (micro-manage) the project. With all these important roles in place, they were ready to hire a few cheap developers—normally delegating the task of hiring to an agency or to HR.
15%
Flag icon
Every software process, including Agile processes, will assume technical excellence. Without technical excellence, every software project will be a painful, frustrating, and expensive experience.
15%
Flag icon
A quick feedback loop is key for any company aspiring to be agile. Reacting to the feedback they get quickly is what makes them truly agile.
15%
Flag icon
It is never too late to make things better—it just becomes far more painful when you delay it.
15%
Flag icon
right.
Arda ÖZTÜRK
Agile allows compnies to do right things, SC allows developers to do things right
16%
Flag icon
Software Craftsmanship is about professionalism in software development.
17%
Flag icon
Although Jack W. Reeves suggested that software development is more a craft than an engineering practice in 1992, I believe that Software Craftsmanship really begins with the book The Pragmatic Programmer: From Journeyman to Master by Andy Hunt
17%
Flag icon
Clean Code: A Handbook of Agile Software Craftsmanship and later in May 2011, The Clean Coder: A Code of Conduct for Professional Programmers,
17%
Flag icon
Guidance for the Aspiring Software Craftsman, by Dave Hoover and Adewale Oshineye,
19%
Flag icon
When we talk about steadily adding value, we are not just talking about adding new features and fixing bugs. This is also about constantly improving the structure of the code, keeping it clean, extendable, testable, and easy to maintain.
20%
Flag icon
A paraphrase of a Boy Scout rule (first applied to software by Uncle Bob) states that we should always leave the code cleaner than we found it.
20%
Flag icon
Sharing and mentoring are at the heart of Software Craftsmanship.
20%
Flag icon
Software craftsmen are not factory workers.
21%
Flag icon
Software craftsmen understand that being a good professional means having a good reputation, and for that they need to constantly delight their clients by delivering successful projects.
22%
Flag icon
Developers who rely only on their companies to provide them knowledge are not professional software developers. They are just factory workers in disguise.
24%
Flag icon
We may discover that many of the things we talk about today go back a few decades.
24%
Flag icon
How it is done is as important as getting it done.
28%
Flag icon
1. Decide on the task to be done. 2. Set the Pomodoro (timer) to 25 minutes. 3. Work on the task until the timer rings. 4. Take a short break (normally 5 minutes). 5. Every four “Pomodoros,” take a longer break (15–30 minutes).
28%
Flag icon
We all have time. In fact, we all have exactly the same amount of time. The difference is how we choose to spend our time.
29%
Flag icon
We made loads of mistakes during those long hours, including wiping out the entire production database at 3 a.m. We created things that were totally unnecessary. We had a very poor understanding of the real issues and did not create situations where we could provide better solutions. We allowed ourselves to be deprived of a personal life and even ended up discriminating against those who decided not to sleep in the car park or just work 12 hours a day. We were not acting professionally because we never said NO.
30%
Flag icon
The second version of the application was scheduled to be released in three months’ time but, from what I’ve heard, it took almost nine months to be released.
31%
Flag icon
Well, we can say whatever we want, but saying anything after that epic failure was of no use.
31%
Flag icon
Professionalism means being honest with ourselves, with our teammates, and with our managers and customers.
31%
Flag icon
As long as we do it in an honest and transparent way, there is a big chance that no one will get hurt and the whole team and the company will win.
31%
Flag icon
Always saying no is also not a professional attitude. Every no, ideally, should be followed by a list of alternatives.
32%
Flag icon
even when we say no, we should always be striving to say yes.
33%
Flag icon
If we manage to deliver what we promised when we said yes, managers will be far more inclined to trust us when we say no.
33%
Flag icon
Being professional and satisfying our clients does not mean doing everything they ask us to do. Our job is to help our clients to figure out what their real needs are and also advise them on the best way to approach them.
33%
Flag icon
This is the same thing we would expect from a good lawyer, accountant, or doctor. We don’t tell these professionals what to do or how to do their jobs.
34%
Flag icon
Rather than construction, programming is more like gardening. —The Pragmatic Programmer Code is organic, not mechanical. Like a garden, code needs constant maintenance.
35%
Flag icon
The biggest problem here is that bad code is invisible to everyone besides the developers.
38%
Flag icon
It is easy to say that a piece of code is badly written. It is easy to complain or even laugh. But the question is: are you good enough to make it better?
39%
Flag icon
Bad code is like a cancer, difficult to identify in the beginning, and hard to treat when it is finally discovered. And depending on when it was discovered, life can be prolonged but death is unavoidable.
40%
Flag icon
With the adoption of XP practices, management noticed a one-third reduction in production bugs. With a decline in production bugs, a growing suite of unit tests, and debugging time reduced to zero, productivity reached a factor of ten times.
40%
Flag icon
Since the Agile summit in 2001, XP has been considered an Agile methodology. However, very rarely do companies adopt XP practices during their Agile transformation.
40%
Flag icon
Focus the discussion on the benefit they bring and how they compare to the practices they currently have. A smaller feedback loop; a better understanding of requirements and cost; knowledge sharing; reduction of bugs; and quick and totally automated releases to production are examples of values added by technical practices.
40%
Flag icon
Source: From www.xprogramming.com/what-is-extreme-programming/; used with permission.
45%
Flag icon
Developers choose jobs according to what they want to learn, and they leave their jobs either when they are not learning anymore or when whatever is left to learn is not aligned with their career aspirations.
45%
Flag icon
knowledge workers are motivated by three things: autonomy, mastery, and purpose.
45%
Flag icon
Software craftsmen always choose jobs where they have autonomy, mastery, and purpose.
46%
Flag icon
Our careers will always be more important than any specific job or company. Pursuing a career inside a company is not the same thing as pursuing our own careers.
46%
Flag icon
This is called “the Peter Principle,” and its effect could be stated as “employees tend to be given more authority until they cannot work competently.”
51%
Flag icon
“For you it’s more than a job.”