This thread is Kirsten's Upon occasion Dan has mentioned the secret sauce of programming school. I've even caught a whiff of it here and there—something about keeping roll back points, and then there’s that bit about avoiding snake oil. I'm intrigued by what it will be when it's finished. But, in the meantime, storyteller that I am, my mind wanders and wants answers before they are ready. Is there really such a thing as secret sauce? Can the secret sauce really help me program computers? Today I have a bit of an insight, and I'd like to offer my own take on the secret sauce here at programming school… ****My car wouldn't start this morning. It's Monday. I know the feeling. I didn't want to start this morning either. But, because I need the money, and because my job is disinclined to pay me if I don't show up for work, my husband pulled out the jumper cables and we brought my '97 Saturn back to life. It didn't complain much. It's a good little car and I intend to keep it running as long as I can. I don't spend a lot of money on cars. Instead, I spend it on gear like my new iPad mini with a retina screen and touch id. What can I say? It came in gold, my new favorite color. As I drove my car to the mechanic, hoping he might find the reason behind my car's discontent, I had to wonder. Week after week I go to work, and I stack my paychecks like cord wood, hoping that somehow they will set me free, even while I fork large chunks of them over to institutions and corporations who promise that if I give them enough money I will never have to worry about anything ever again. And I'm still worried. What is the point of it all? Is this really what I’m meant for? Then I thought about my writing, and about the programming school that my writing led me to. Is this the way out of this labyrinth? This is the thing I have that they don't. I can live in my own head. I can make things with my own mind and my own hands. Will others want what I am learning to make? Will I be able to make my own way in the world between my words and this new skill? My belief in this possibility is still fragile, but as I look around this forum and see the scaffolding of the school rising around me, built upon the foundation laid at Holly’s writing school, my faith grows stronger. Can I jump start my own life? Can Monday morning find me excited to get to work? Can I find a way to my dream of doing work I love, on my own terms, with people that I admire and enjoy working with? That leap of faith might be an ingredient in my own secret sauce. The thread that runs through everything I do here is my hope that there is something better for every single person willing to work hard and put their dreams on the line. It's the foundation of Holly's school, and I love that we've carried that torch to this new arena. I need to believe that it can happen for me too. Did you know you can get your new iPad engraved if you order from Apple?! Oscar Wilde said it better than I can, so this is what I put on mine: View attachment 41
Rollback points: programmers always have them. It's an instinct. Necessary, but not in the secret sauce. There is no secret to the secret sauce. I have told you most of it, but I didn't explain it right. The Secret Sauce - What It Is and How It Works Possibly the most striking ingredient is, "you'd never believe it, unless you saw it." It is stuff you would never think of. People think our work is technical. That is incorrect. It is personal. That's why if as a group, we spend 25% of our time programming, that will be a lot. Our job is to get inside the skin of our clients/customers/people we help, figure out what they are doing and their way of going about it, and what's stopping them from getting what they want from their computers. The answer always is the same. They'd already have what they need from computers if computers did not suck 1,000 times moreWe are hired always as last resort. If someone can get the computer do what we do, they will never hire us. They don't want to hire us. They just want the fucking computer to do what they thought it would do in the first place. Our customers always are 100% right in every criticism of their computers and every problem they have is a result of the fact that computers are dumb as rocks and the people who set them up and program them suck at their jobs, and that includes us. By taking that stance, people tend to be relieved that we are not being as boneheaded or cruel as all the other computer people they me before us. We don't hire programmers, because they are not available. Programmers are always busy with more work than they can do. Their family and friends have no end of favors for them to do. They cannot keep up with client demands. To hire one, we need to outbid all their other options. If we do that, we'd have to charge a fortune to do anything for any client, and clients hate that. The secret is, don't do that.So what we do instead, is educate people in how to be programmers. A small percentage will stay with us, because they and we will find that working together is better than not. The people we admit to our school/hire to work for us as beginners have to be selected right, or success is impossible. It is never possible to know which hires are going to perform and we have to boot them if they don't. The way we boot is we counsel them out. The qualities are know are necessary are: Good at math. We don't do math, but what we do comes naturally to people who are good at math and everybody cannot it. You don't have to be math wiz, it just has to be an obvious aptitude. Sometimes, math aptitiude is present but unrecognized, as result of personality conflicts a person has with their math teachers in school, or their bosses int he work place. Proof: David Jackson. He was reported to me to be the one deadbeat among the 14 that worked for me at the insurance company run by liars. Dave was a bad lair, so he was misunderstood. I met 1x1 with every person on that crew what I was hired. After 10 minutes with Dave, he seemed ok to me, so I asked him, "Dave, why would Boss Phil and Boss Paul tell me you suck?" He was shocked. It shocked me that he was shocked. How could not know that is where he stood? I really didn't know what to think, so I just said, "Dave, as far as I am concerned, your slate is clean. That was about it. Six months later, Dave was the acknowledge go to guy on our crew almost everything. He did 90% of the work on task I had been assured "could not be one." The day came with the CEO came to our office, and was not lying, when he handed Dave and me gift certificates for free milkshakes, but on those gift certificates, in the CEO's handwriting, it said, "It couldn't be done." I could tell with a few questions, Dave was plenty good at math and he seemed to have a great attitude. He worked his ass off. Everybody loved him. I'd have to say, my part in that might be the best thing I ever did. But it was him who did it. All I did was hold the lying masses at bay long enough for him to stretch his arms and legs, acknowledge what I saw, that the miracle happened. They don't ask for job descriptions. They help in any way they can. I have been asked for job descriptions by a lot of people, but not people that would be good for our operation Must be driven, some might say obsessed, with making shit work, especially software. When I was a kid, I always loved any TV or movie that showed a working factory, filling coke bottles, making cars, whatever. The clips were always too short, not allowing enough time really take a look to see it worked. It is the same interest I have today in making things that work correctly, over and over. I love it. Computers are the epitomy of that Must be excellent at communicating with clients. Heavy accents do not support this requirement. Can never be late. Must have a reason for wanting to work their ass off for us. Honest. Our work is hard enough without our teammates pitching false information purpose. If someone on our team lies to any of us about anything, they are seriously threatening our livelihoods, giving us the right to kill them in self defense. Legalities being what they are, and other practicalities being what they are, that is not what we do. That doesn't mean we don't have the right. It means they won't be working with us anymore, and that will be about the full extent of the time have for that person till we see them in Hell, where we all are going, except Holly, Michelle and Kirsten. In addition to being honest, our people need to be straight shooters. This is where snake oil becomes what we don't do. Snake oil is what people who are bad at math use to trick into not kn0wing. Snake oil peddlers won't like us and we won't like them. It is instinctive and we won't have any problem in this area. Engender trust. Clients put a lot into our hands, usually without any fuss at all. They practically heap their must sensitive information upon us, way before they have any way to know that we are trust worthy. Good thing for, everyone of is trustworthy in our handling of client property an information. Good thing for us, we appear trust worthy and easily engender others's trust, otherwise, we would have no clients. We don't gossip. We talk about one another, but we don't gossip. People who tell the difference and be trust with our personal info.... We don't educate people in all aspects of programming. We train them how to work on the system we work on, especially the ones we have built. Extending that into being broad based, deeply experienced programmers in a wide of variety of settings and technologies is something no one can do until they have started somewhere. We provide a place to start. We use the same process to run every project. It almost doesn't matter what it is. We are not tight asses about it, because adapting/changing the process is even more important that using the same one every time. The balancing act between rigorous standards and the way people actually do things is very difficult to pull off, but without it, our sauce sucks. We do everything on time. We're never late. If it looks like there is chance of us being late on anything, that is a crisis that must be resolved before anything else can happen. We use engineering-grade presentation graphics for analysis and design. Engineering-grade means they are right, and lives can be trusted to what they say. If it is too complicated for presentation graphics, that is hooks and tags and we don't bother with hooks and tags, because they waste time. The ratio of hard core programmers on all projects is about 10 to 1. That means ten programmers are 100% busy programming, because one programmer has paved their road, and is available to answer their questions and fix stuff when needed. This is how we are going get a team together that gets all of Holly's system work done. It's going to be me paving the road for 10 others. If that is not enough, it will be me and another paving the road for 20. 20 programmers working like this can meet all of Holly's needs. Doing this for Holly is how we are going to initialize our team. The programming crew is not self-sufficient. They need support by Account People. Tony is lined up to be our account guy, starting next summer. I recommend you call Tony and discuss this with him. I know we need him same as I know we need air. All programmers suck at what Tony does. Once initialized, a crew of programmers working like that can collect about $10,000/day. The team always will have more work, paying that rate, than they can do. That is the secret sauce. The Secret Sauce - In Essence Morally sound at depth Analytic Clarity plus good math aptitude. Our work is mostly working with people. The computer stuff is the easy part. We educate our programmers to work on paved programming roads. We need one paver per ten programmers. The paver has to know how to make it easy for 10 programmers to build a system together. Before building together the 10 programmers have to be trained in the specific programming they will be doing. We want to know all the belly aches in the process, so we can show the belly aches the door. We have Account people to suck clients' dicks all day and all night, so we can stay focused on our work. The account people deliver the bills and verify the money has been deposited to our bank account. I never and going to say all this to anyone except our cofounders.
I'm way behind on responding to this, although I've been thinking about all of it quite a bit. There is much I want to agree with and am awed by. Starting at the top. It is interesting that only a quarter of the time is allocated for programming! I didn't expect it to be that small a proportion, even though I know how vital it is to communicate with the client on what they are looking for. Along that line, I also had a thought about how this communication involves helping the client come back from the position of 'one down' (process consulting) because not only are they in a bad spot with their computer issues, but now they have to rely on someone who is more competent in that area than they are. It is a tough situation to negotiate. (And if we want to generalize about genders, I've found men to be particularly reluctant to concede that their computers got the better of them.) I've watched you manage it, Dan, and am very impressed. You are great at pointing out where the problems with the computer are, and that the client is in no way at fault for the situation. That's an interesting way to put it. You know those patterns they give you on college entrance exams, where you have to look at each one and decide which three belong together and which one is not like the others? I had no idea that people hate those. I love them! Each one is a little puzzle with only one correct solution. And I love that there is only one correct solution. What I want to know is, how did you figure out that I would like this stuff? How do you notice it on someone, like say, Holly? That's how you knew Michelle was perfect. She wanted to help, and didn't limit her help to just one or two things. She's going to help me organize our notes, by the way. Yes, I get this. I'm not so much about the factory, but when I get an idea in my head about how something is supposed to look, I don't want to stop until I make it so. I'm that way with words too. Which is probably why with the blog posts on my WP blog, I remember spending hours going over everything to make it perfect before I finally posted it. I still do that with my posts on Holly's boot camp blog. Everything has to be just right, even if no one ever sees it. It is my way of imposing some sense of order on my world. I don't know if you ever went into a Krispy Kreme donut store, but they had the coolest donut conveyor belt in the main stores. The uncooked dough loops would bump along on the belt, probably so the dough could rise for a specified amount of time, until they were tipped into the cooking oil, and then once they were cooked, they spent another interval cooling on the belt again, and then were doused in a curtain of glaze before being dispensed into our waiting hands. I did love watching that, but I figured it was just the donuts. Communication. We have writers. I think we're good there. Honesty is harder than it looks. It takes a lot of guts to own up to exactly what happened, or what went wrong. But it is essential. I agree with you on everything related to that point. That is amazing, isn't it? But I also remember that I trusted you too, and ... well you were working with Holly so it wasn't a stretch. But still, it was weird because no matter what sites or links you shot my way, I stopped worrying about where I might end up. I was along for the ride and it was important that I be all in that way. I hope I can do the same for other clients someday. I'm glad that you are emphasizing this, because even if the rest of us are completely trustworthy, it only takes one bad apple to ruin it for everyone. And gossip. Ick. That is one thing that I appreciate about working with mostly men (at my day job, and it appears it will be that way in the programming world as well) because men aren't prone to speculate and scrutinize other people's business. Maybe men, and less gossipy women, are more secure about themselves and don't need to tear others down that way. I need to find out what those are. Ten programmers working for Holly? Awesome! I will be happy to speak with Tony whenever you think it would be appropriate. I totally agree that the account person should not be the programming person. The person collecting the money may have an adversarial relationship with the client, when the programmer is striving for a collaborative approach. I'm glad you're bringing someone like Tony on board. It is mind boggling that you claim all that work is out there for programmers. And yet, I believe you. Everywhere I turn someone is complaining about their website, or their email, or is having trouble running their company's database. But then Holly was in a situation too, and I know she did everything possible to make the site work on her own before reaching out for help. I shudder to think where she would be if you hadn't been there to help her. Thank you for laying this all out so clearly. You're right, I had an idea of it--that there would be one of you for every half dozen or so apprentices, and that there were standards in terms of honest communication with each other and with clients-- but now I can see all the parts at once. I feel honored to be among the first to see this come together.