RSS

Category Archives: Books

Web API Design Part Two: The Origins of REST

Episode 87

What is REST, or what does it mean to be RESTful? It seems to mean something a bit different for everyone, when looking at various API implementations and their documentation. When examining different materials on the art of web API design, one eventually stumbles upon one particular name. Roy Fielding, a computer scientist who was member of the team behind HTTP 1.1 and URI specifications. During this undertaking he created a set of principles around HTTP object model that culminated in his PhD dissertation “Architectural Styles and the Design of Network-based Software Architectures” published in 2000. Probably not too many people in software development industry read PhD dissertations, but I’ve decided to do that, and extract the essence in this article.

old-sage.jpg

First part of the thesis introduces various preliminary notions relevant in consequent parts. We learn the definition of Software Architecture and its elements including components, connectors and data. Then we proceed to Read the rest of this entry »

 
4 Comments

Posted by on January 14, 2018 in API, Books, Technology

 

Tags: , , , ,

The Charisma Myth

Episode 54

It’s time for another book review! Since, it’s still January, the month of recaps, let’s recap what I’ve reviewed so far. There were four books:

  • Episode 40: Building Microservices
  • Episode 25: Software Craftsman: Professionalism, Pragmatism, Pride
  • Episode 23: Software Craftsmanship: The New Imperative
  • Episode 17: Secrets of the Rock Star Programmers

What they all have in common? Well, they are about software development. Today, we are going to do something seemingly different. I will present you a book written by Olivia Fox Cabane, a person who has pretty much nothing to do with our industry. The book is called The Charisma Myth: How Anyone Can Master the Art and Science of Personal Magnetism. It’s a good book. And damn useful in software development.

What if charisma can be taught?

the-charisma-mythThere are people with magnetic presence, who are influential, inspiring, persuasive, charming and able to harvest the undivided attention of crowds. The common understanding is, that it’s a gift, a talent or an innate ability. You just either have it or not.

The common understanding is wrong. In the book, Olivia explains that charisma is simply a skill. Of course, different people have different degrees of talents toward learning particular skills, but nevertheless – it can be trained. Perhaps not everyone can be a master, but hey, being an expert or even decent at it can make great deal of difference in your life, both private and professional. Maybe you are not a politician, show host or CEO, but you usually deal with people to some degree (please get out of the cave…). And when being development team member or leader, scrum master, manager, product owner, administrator or whoever in IT, you benefit from charisma. If you help new people around, conduct a programming training, give a speech on tech conference or go talk with your boss about pay rise, you benefit from charisma. Let’s see how Read the rest of this entry »

 
Leave a comment

Posted by on January 26, 2017 in Books

 

Tags: , , ,

Building Microservices

Episode 40

I haven’t written anything in Books category this year, so it’s time to fix this. I have found Building Microservices by Sam Newman when browsing shelf of mini library next to the kitchen in our office, while waiting for my coffee. What caught my attention was a new and shiny book among bunch of uhm… mature ones. Besides, amongst all that noise regarding microservices in the industry, I thought it’s good to read some damn book instead of watching random talks from people shouting, “hey we did microservices in our company too, we are so cool and trendy!”. I like books, I’m old school.

Premise

lrgQuoting the book cover itself:

“Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures”

Yes, we can hear that everywhere now. You might have an idea that everyone has migrated to microservices or is in the process of it, but it’s bullshit. Most systems I’ve seen recently are nowhere near that, and it doesn’t seem to change anytime soon.  So perhaps it’s good to rant about this on and on, but also investigate the topic a bit further that “hey we have to do this, everyone is doing it, let’s do this!”. There are pros, there are cons and there are Read the rest of this entry »

 
3 Comments

Posted by on October 20, 2016 in Books, Technology

 

Tags: , , ,

Software Craftsman: Professionalism, Pragmatism, Pride

Episode 25

Not only working software, but also well-crafted software
Not only responding to change, but also steadily adding value
Not only individuals and interactions, but also a community of professionals
Not only customer collaboration, but also productive partnerships

Software Craftsman:  Professionalism, Pragmatism, Pride by Sandro Mancuso is the second book about the subject I’ve read recently. Thanks to Safari, even before the paperback edition is available on Amazon. Actually I had an occasion to attend the author’s talk on software craftsmanship at last Jax conference, but I’ve chosen in memory data grid which was probably mistake. Or maybe not, since we have everything on You Tube anyway.

softwarecraftmancuso

The book came thirteen years after the one I’ve talked about earlier. It gives you a bit of history of the whole idea of software craftsmanship, books, articles, conferences, events and things like that. The basic ideas are described in similar way, to give you a good basic understanding, but there is much more.

A lot has happened in past thirteen years. We had an explosion of the whole Agile and Scrum thing popularity. Simultaneously almost no one does Scrum the way it should be done. Some people are at least aware they have ScrumBut (“you know, we have Scrum, but…”), some don’t. Anyway there is quite a lot of material in the book about issues with Agile transformations and what to do with it. There are several archetypes of problematic personalities like The Sceptic, The Evangelist, The Ivory Tower Architect and so on, and tips on how to talk to them to make things better.

A lot of attention is paid to the topic of management and recruitment of software craftsmen. I especially liked examples of good and bad job descriptions and the elaborate logic behind it. Sadly, most recruitment processes are far from being able to attract good programmers. They are done by people who just think in years and acronyms.

Also, importance of technical excellence is discussed. Some people tends to believe, that if they employ Scrum to their project, things will magically fix themselves and everything will be great. Bullshit. If you had mediocre programmers who produced crap, Scrum meeting, roles and artifacts won’t change that. You need to change the way software is written and thought about. Continues integration, tests, refactoring, striving for technical excellence and constant learning. Nothing comes for free, except coffee. If your company does not provide free coffee, leave it immediately.

Important message is, that craftsmen are not paid to work 9 to 5, do what is told them to do and go home. True craftsmen care. They are far more than just coders. They are there to help client achieve their goals. Through coding, motivating, organizing, sharing their knowledge and most importantly striving to make things better and transforming their organizations. They need to talk to their client, and try to understand what is really to be done. Unfortunately many organizations are stuck in previous era and not ready for this. There was a story about project that had a sole goal of bringing code coverage of code debase to 70%. It was off shored to different company, no one explained them any business logic and all the original programmers were to busy to talk. As it turns out, the reason for that is because some manager had a yearly goal, and fulfilling it gets him a bonus. So he fulfilled it blindly. Well, some people just need a high five. In a face. With a chair.

noidea

I enjoyed the personal feel of the book. Author presents his American dream story (or British, in that case) of poor kid from Brazil who wanted to be software developer in London. Now he is the founder of London Software Craftsmanship Community. There are a lot of true stories from the trenches, which are lively, convincing and I had a feeling “hey, I had this one too… just like that”. For me it was much more enjoyable than Pete McBreen’s book.

Finally, do not expect that your employer will train you, educate you, buy you books or anything. If he does, that’s great, but this is your responsibility to learn, invest time, money, energy and passion to be good. You own your career. You shouldn’t pursue “career in an organisation”. You should pursue your own career. That’s your life, isn’t it? If organisation’s career map is not aligned to what you want, they way you want, simply quit. Don’t be afraid. Each job is just a step on the long staircase to mastery. Some are longer, some are shorter, lower or higher. Some will lead you down, not up. But it’s everything about the beauty of the journey. It’s not about catching the rabbit, but chasing the rabbit. Have fun!

How-to-Train-Your-Dragon-II-05

 
4 Comments

Posted by on December 7, 2014 in Agile, Books

 

Tags: ,

Software Craftsmanship: The New Imperative

Episode 23

The book by Pete McBreen is one of the early books on the topic. The analogy of software development and medieval craft were suggested before in The Pragmatic Programmer and earlier articles.

software craftmanship

When I got the book my first thought was “I expected this to be bigger” It has only 180 pages. And font is quite large. And a lot of almost empty pages. But okay, never mind maybe author is very concise.

Classical view on software development comes from software engineering applied to large scientific or government project in sixties and seventies. Those methods are in turn rooted in old school management where knowledge on how to do job well lies in managers heads while workers are not paid to think but to follow an optimal way of doing things. Reality is very different though. It’s the programmers who know how to do their jobs well. And in order to succeed in software project, the key things is to find excellent programmers with reputation and get out of their way when they start doing their job.

Author emphasizes importance of programmers strive for mastery and ability to stand behind their creation and support it. Because ability to deliver well crafted software builds their reputation. In such scenario, developers choose their project carefully as wrong client is recipe for disaster.

Also there is a lot about managing craftsmen. Junior programmers are overpaid while Senior programmers are much underpaid usually. Author states, that it’s much better to have a team of 5 masters and pay them as much as 25 or even 50 juniors, because overhead of coordinating the work is dramatically lower and if each of them delivered successfully many applications before, there is a good chance it will happen again. The product will have much higher quality, will be easier (= cheaper) to maintain.

So what about those poor juniors? Well it’s okay to have few of them, but not majority of them. They should learn not only from seniors but mainly from intermediate developers. And whey the gain some experience, they should pass it along to new joiners.

Managers should get accustomed to deal with subordinates who earns much more than they do, and the dumbest thing you can do to a master programmer is to move him to management because this is the only way to ramp up his grade and payment. If your organization has such a model, it’s probably time to say god bye and find someone smarter.

In general, the book presents a strong parallel to medieval craftsmanship model. There are apprentices, who study for few years to become journeymen. The wander from master to master to learn the craft in humility, gaining reputation and crafting better and better software. Andy finally they become masters if they persist.

It’s not silly to be developer your entire career. That’s what I thought five years ago, but now I see that it may be a good path for entire life. Did you know that an average developer has now only five years of experience? Industry is in deep need of people who are doing it for ten or more years, have vast experience and are willing to share it. Yeah, new frameworks and technologies are sprouting on a daily basis, but a lot of core skills haven’t changed much. If you are ambitious and plan to be developer for longer, this book will make you feel good, that’s for sure. Even though author tends to repeat himself and charges 30 bucks for not that much of a content, I think it’s worth reading. And then dropping on your managers desk.

Currently I’m reading another, much newer book on Software Craftsmanship by Sandro Mancuso, and Pragmatic Programmer is in the queue. I guess I will share some thoughts on them in the future.

Hiccup sharpening sword

 
6 Comments

Posted by on November 16, 2014 in Agile, Books

 

Tags: ,

Secrets of the Rock Star Programmers

Episode 17

First book review is here. There will be a lot of bullet points ;)

I’d like to share some thoughts on the book I’ve read recently. Secrets of the Rock Star Programmers by Ed Burns.  I read quite a lot IT – connected books, but usually those are about particular technologies, topics (like coding interviews riddles), people (like Iwoz) or how to be a good programmer in general (like the Clean Coder).

rockstar

This one, however is a bit different. It is actually a set of detailed interviews with, so called, A-list programmers. Here is the Read the rest of this entry »

 
1 Comment

Posted by on October 5, 2014 in Books

 

Tags: , ,