levelup.gitconnected.com levelup.gitconnected.com

Do’s and Don’ts for Performance Teams

Approximately correct and hopefully helpfulThis article is about setting up your performance team for success. It’s about goals and practices and management, not about technical problems. If you’re looking for an article about the importance of locality on modern processors you should stop reading now.Working on a performance team can be like running a marathon. I think everyone remembers the times when awesome stuff happened....

@ricomariani

Performance Personae

Twelve years ago I gave a talk on “performance signatures” and submitted a paper on the subject. This paper was about various approaches to help give tactical performance guidance to people without having done a lot of measurement. The idea was that there are often common patterns worth considering. I also wrote some notes about design and metrics considerations at the same time that never saw the light of day (except those few...

@ricomariani

Working with Unit Tests

Here’s two quick thoughts on how you can/should work effectively in an environment that already has a lot of unit tests.When you find something missing, add testsThe thing about unit tests is that the best you can hope for, even with 100% coverage, is that the code is doing everything you could think of correctly. Which leaves everything you didn’t think of. The code might actually be totally wrong and your tests are simply...

@ricomariani

The Essence of an Ally

No matter your cause you will face some of the same tough situations to various degrees. The word “ally” has evolved some but its essence is ancient.Sometimes you must not act when you wish you couldIt is far easier to get angry on behalf or your ally, solve a problem on behalf of your ally, or otherwise “do” something. But so often the right thing for you to do is nothing.Many times you are told things in confidence, your...

@ricomariani

Avoiding Coding Pitfalls with Performance Signatures

[Originally posted 12/11/2006… this came up again and I thought it would be good to reprint this pearl on Medium. Some notes added.]On Friday of last week [2006] I gave this presentation at the Computer Measurements Group CMG2006 conference(http://www.cmg.org). I had previously alluded to it in this posting and I have been waiting to write about it until after the conference.So for the benefit of those of you who couldn’t be...

@ricomariani

How to Performance Lab

I think I end up having this discussion at least quarterly.If you have “serious software” with “serious problems” you need a performance lab. I don’t think that’s very contentious, it’s just too darn important to have predictable performance to avoid that investment. You can start small and grow up as you need. You can follow good advice like making sure to measure consumption metrics and not just elapsed time. You can...

@ricomariani

A very simple mocking strategy for straight C

In keeping with my “you really can unit test anything” here’s a simple strategy for injecting mocks into straight C code. It’s ultra dumb. I’m sure you could come up with it yourself but here it is for you. If you don’t like the context bit (so you can mock the method in just one file) then get rid of it. But I found it to be helpful.---------- mocks.h#ifndef NDEBUG// trigger this if not debug (could use any criteria you...

@ricomariani

Notes on Unit Testing and Other Things

People often ask me what constitutes a good amount of unit testing. I think the answer is usually a very high level of coverage but it’s fair to say that there are smart people that disagree. The truth is probably that there is not one answer to this question. Notwithstanding this, I have been able to give some pretty consistent guidance with regard to unit testing which I’d like to share. And not surprisingly it doesn’t...

@ricomariani

Working the Performance Review System as a Senior [Software] Engineer

I’m genuinely surprised by how often I hear very senior people lament the fact that they are evaluated yearly or half-yearly and that just isn’t enough time to get anything really important done to showcase their awesomeness.I think this really is totally a problem for more senior engineers because the more junior people generally feel like if they just “produce” enough then they have no issues. Heads down, code, code some...

@ricomariani

Pit of Success for Organizations

[also reposted by request, from 12/16/2015]Many years ago I coined the phrase “Pit of Success” for software. People had used that turn of phrase before to mean landing in a situation where their own success was awful, but that’s not how I meant it. What I meant was that that state-of-the art software frameworks were too hard to use, too many potential problems, and it was like having to walk some horribly difficult path to...

@ricomariani

Properties of Great [Software] Engineers

There is no one recipe for turning yourself into a “great” software engineer, but I’m very confident that if you look around in your own organization and examine the people you think are “great”, then you will discover that they tend to have these properties. This article is a bit proscriptive and also a bit myth-busting. As far as your own organization goes, well, your mileage may vary.If you are doing all these things, you...

@ricomariani

Sequoia: The IDE before Visual Studio

Or… more cancelled projects I worked on in the early 90s…IntroductionI wrote a bit about C#88 last week and I teased that this project, and more importantly its members, went on to do some pretty cool things. I want to write today a bit about “Sequoia” an IDE that never shipped, based on some of the notions that came out the C# project, or, more importantly, its death.When C# was cancelled, some of its members (like myself)...

@ricomariani

C#88: The Original C#

A few notes for posterityIntroductionEvery once in a while the topic of the original C# (vintage 1988) comes up. This is the project for which I was recruited to Microsoft and it was a very interesting beast, with even more interesting colleagues. I thought I would write a few notes about this system while I still remembered the basics of how it worked. Obviously a much longer article would be necessary to get everything down but you...