About David Tanzer
Here's How I Can Help You...
Your company can save a lot of money if you can become more efficient in developing software. And it can earn more money if you can make better software - Software that better fits the needs of your customers.
I help my clients to…
Become Better at Software Design
Most of the code bases I have seen as a consultant in the past 10+ years had at least some problems with their designs and architectures. Some were actually quite good, with only minor problems. Others were at a point where developers could not do a good job anymore.
Join my Workshop: Clean Software Design & Clean Code to get better at software design.
Here are some articles I wrote about this topic:- Simple Design Passes It's Tests Why you need tests to have a good software design.
- Boilerplate vs. Magic Boilerplate code can be a problem when writing new code, and sometimes when changing code. Magic can be a problem when reading code. You should strive to eliminate both.
- Smaller Steps Why you should work in smaller steps. And have a save point you can revert to when something goes wrong.
- 6 Reasons Why You Should Avoid SingletonsThe "Singleton Pattern" has no place in a modern software design. Do not use this pattern when designing software.
- Changes and Simplicity You will only have a system that is easy to change if your design is really simple.
- Well Crafted Code, Quality, Speed and Budget Well crafted code will ship faster, and here I explain why. This is basically the reason why you should always pay attention to the design and architecture of your software.
Even small problems in the design and architecture of a system can cost a ridiculous amount of money. So you should try to keep your design and architecture as clean as possible. Find out more / Contact me so we can discuss your next steps...
Rescue Legacy Code
If you have been working on something significant with a large team for a while now, chances are that you have quite a bit of legacy code lying around now. Your legacy code is valuable to you - It works in production and provides value to your users. On the other hand, it impedes your progress. You need to rescue it... Here are some articles I wrote about this topic:
- Changes and Simplicity You will only have a system that is easy to change if your design is really simple.
- 6 Reasons Why You Should Avoid SingletonsThe "Singleton Pattern" has no place in a modern software design. Remove this pattern from your legacy code wherever you find it.
- Smaller Steps Why you should work in smaller steps. And have a save point you can revert to when something goes wrong.
- Simple Design Passes It's Tests Why you need tests to have a good software design.
- Well Crafted Code, Quality, Speed and Budget Well crafted code will ship faster, and here I explain why. This is basically the reason why you should work hard to improve your legacy code.
Create Higher-Quality Software
Is your quality really as high as you'd like it to be? Even small quality problems can be very expensive. Defects that escape to production cost an incredible amount of money and time. Especially if you factor in the time your users lose and your opportunity cost. Higher quality software is usually cheaper and faster. So you should continuously improve your quality...
Join my Workshop: Clean Software Design & Clean Code to learn how to write higher-quality software.
Here are some articles I wrote about this topic:- Integrated Tests - The Other Side Of The Scam You should not rely on integrated tests (i.e. tests that exercise a large part of your system) for developer testing.
- Mocks or Intermediate Results: What I Would Do How you can use mocks to test the business logic of a function that "seems" to do mostly I/O.
- Test-driven development in Ruby Somebody asked me how to get started with TDD in Ruby. I am by no means a ruby expert, but I tried to give some general tips and hints.
- Getting Rid of //FIXME Why you should not have any comments in your code that resemble a TODO list - And what you can do instead.
- Cheap plastic drills Give your team good tools (IDE, PC, Monitor, Desk, Chair, ...) to work with - Even if they are expensive!
- Well Crafted Code, Quality, Speed and Budget Well crafted code will ship faster, and here I explain why. This is basically the reason why investment in quality will pay for itself.
Improve the Effectiveness of Your Teams
Say you are working with a team of 10 software developers. Every hour lost due to the small inefficiencies in your team costs you between 500 and 1000 Euros. Or even more, if you are in a high-wage area with high office space prices. And there's always the risk of wasting a lot of time by not developing what your users want or by finding a high-impact defect. That's why we want to become more agile and more effective. And that's why you should work hard on removing and mitigating risk... Here are some articles I wrote about this topic:- We don't need a foreman Why I think that "Software teams should have a foreman" is fundamentally flawed. One of my most-shared and most-discussed articles.
- Competition, Bonuses, Wasted Resources and Cheating Bonuses and KPIs are toxic if you want to have teamwork, creativity and employees who act on their own initiative.
- Original Scope On Time On Budget - Whatever... If you want to become agile, you have to unlearn that "original scope, on time and on budget" means success.
- Agile Software Development Workshop A detailed report of a workshop about "Agile Software Development" I hosted for a client.
- Scrum... But? The term "Scrum-But" (i.e. companies that say they do Scrum but really don't) does more harm than good. See also ScrumBut... and the long run.
- A Spectrum Of Effort Estimates Different ways to estimate software development effort, with their pros and cons.
- Cheap plastic drills Give your team good tools (IDE, PC, Monitor, Desk, Chair, ...) to work with - Even if they are expensive!
Contact Me
David Tanzer Brunnenfeldstr. 6a 4030 Linz Austria +43-676-53 47 723 business@davidtanzer.net @dtanzer David Tanzer on Facebook