I have just received a new book: “Apprenticeship Patterns“: Skimming through the first pages I noticed the words in the 3rd column extending from the points in the 2nd column and thought, ‘Hmm, I have heard about these 2nd column points’…
The following table popped up in my mind, which I would like to share with you:
Software development practices:
|processes and tools
||Individuals and interactions
||but also a community of professionals
||but also well-crafted software
||but also productive partnerships
|following a plan
||Responding to change
||but also steadily adding value
Any ideas for a 4th column? Looking forward to actually reading the book…
I have just finished the book ‘Managing Humans: Biting and Humorous Tales of a Software Engineering Manager’ by Michael Lopp and I would like to recap the idea behind the 2 identified types of ploblem solvers on a development team. These are their characteristics:
- Incrementalist: They are driven by constantly making small forward increments. They are aware of available resources and the landscape in which they operate at any time. Since they know that there is no final solution, they are good brainstormers to come up with quick solutions. They love discussions and drive progress.
- Completionist: They need time to figure out the plan to analyse and solve a problem before they start moving in a direction. They apply a strategic vision to integrate their solution into the greater picture. If a Completionist is quiet, is does not mean he has nothing to say. It is just unlikely for him to talk about something without a fully formed plan. After having thought all through, the Completionist knows exactly what to do. It is the architect type of guy striving for a perfect longtime solution.
In the end both types like to get stuff done. The difference is just how they get there and that is exactly the point around which both regularly argue with one another.
If you think about your team and who shows tendencies towards one of the two types, how can this insight make your team communication and problem solving habits more effective? As a team lead you definitely need both types and it is your responsibility to engage both in a healthy discussion.
“37signals used the unconventional Getting Real process to launch five successful web-based applications (Basecamp, Campfire, Backpack, Writeboard, Ta-da List), and Ruby on Rails, an open-source web application framework, in just two years with no funding, no debt, and only 7 people.”
From the book you learn how they are working. Make also sure to check out their great web-applications.
Good site for agile practices: http://www.infoq.com
Become member and download this book on Scrum: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
I came accross a nice blog with lots of cool links to layout related things. Start at
and also visit links like ’50 Beautiful CSS-Based Web-Designs’ etc. in the category section.
To research for layouts, there is also a very good book series: The ‘Web Design Index’ comes out once a year. It is essentially website-designs ordered by color. Very interesting to see the evolution over the years.
I have often wondered why it is so difficult for non-developers (management, sales people, customers, inexperienced developers etc.) to understand the mechanics of software development, its life-cycle and the related elements like for example the importance of
- code-base quality,
- unit testing,
- agile development practices,
- requirements management,
- project-wide standards,
- creating a productive, open and creative atmosphere around development,
- permanent curiosity for new tech-stuff and the freedom to play with it,
- and many more…
Some individuals of those groups don’t even at least try to find out more about it. Obviously they have not realized yet that when building complex websites, maintaining and extending them for many years they are already developing software – and that this is different from building a toaster once and selling it. So, I decided to post some related articles, books, podcasts etc. whenever I get across them which convey the nature of software development in understandable words.
I hope this selection motivates people to read/listen an maybe even understand one day and thus reduces unnecessary friction.
Here are the first links:
Linux Shell Scripting Tutorial – A Beginner’s handbook