(the rest of this page is pretty out of date, will update some day…)
I help companies improve.
I am fascinated by the art of software development. How do you write great code? How do you create & lead great teams? How do you create great workplaces? How do you evolve great architectures? How do you design great products? How do you build scalable & robust systems? How do you build interfaces that users love?
I’ve found that this mostly boils down to leadership, motivation, and organizational structure. The most effective approaches I’ve found so far to improve companies is Systems Thinking, Theory of Constraints, Lean thinking, and concrete implementations of this such as Scrum, XP, and Kanban.
This is what I am continuously striving to learn & apply & teach.
“FANTASTIC! I know it’s going to make a big dent in the world of software development. It’s easily the most important book I have seen in the past year!” -Mary Poppendieck, Author of Lean Software Development Series
“I read the whole thing end to end. In a word, FANTASTIC! Grounded, real, funny,
easy to read, smooth flow, good balance between theory and practice.” -Kent Beck, creator of Extreme Programming and Test-driven Development
“Awesome. Kudos to you for documenting the everyday sort of decision making that has to happen for a big project to be successful. I hope it becomes a benchmark against which many more projects are judged.” -Ward Cunningham, inventor of the Wiki, pioneer of Agile software development
Improve your development process
Improving your development process is probably the best investment you can make. Most software projects fail, and the most common cause is process issues such as communication, customer involvement, and planning.
I can help you beat the odds. Succeeding with software development is not about having the biggest team, having the smartest people, or working the longest hours – it is about working smart. The difference is often dramatic.
My most common types of engagements at the moment are:
Coaching and mentoring, i.e. work directly with teams and managers to help them figure out how to improve their process. Check out my single-page coaching portfolio.
2 day Certified ScrumMaster classes, Kanban classes, and similar courses.
Company visits (1 – 2 hours), an informal visit where you show me what you are doing, your challenges, etc, and we bounce ideas together.
Inspirational talks (1 – 3 hours) on topics such as Agile, Lean, Kanban, Scrum and XP. Here are some typical topics.
Team workshops (half or full day), where I help teams address practical issues such as how to coordinate multiple teams, create a Kanban board, how to do agile release planning, how to write good user stories, etc.
Management workshops, to help managers or customers understand what Agile & Lean is all about and what it means to them.
Facilitate meetings such as Retrospectives and Sprint planning meetings
Tech practices workshops, where I use live coding and exercises to illustrate agile technical practices such as TDD (test-driven development), Pair Programming, Continuous Delivery, and provide an environment in which people can practice these techniques.
My 3 published books have over 500,000 readers, have been translated to 12 languages, and are used as the primary guide to Agile and Lean software development by hundreds of companies worldwide, as well as several universities.
Obtained 4 patents within software technology such as communication between mobile phones and PCs over the internet and distributed architectures for gaming systems.
Designed and implemented platforms for mobile services, payment and e-commerce systems, gaming systems, flight booking systems, and more. I’ve done server programming, client programming, database design, testing, and web design.
Early adopter and champion of agile techniques such as test-driven development and continuous integration.