Codetown ::: a software developer's community
Cornbread and contracting. They have a lot in common. What do I mean?
Well, you never go in empty handed. That's for starters. How did this come up? I'm headed to my favorite bike and coffee shop this morning to do some fancy computin'. I'll be sure to bring something with me to the show. Whats my fav? Cornbread!
I looked in my cupboard to see what I got. I got some cornmeal. Yeah! I got some baking power. Bingo. Salt. Check. Eggs? Yup. Milk/Soy milk? Uh huh. What else? Well, I got some notes. Lessee.
My trusty cornbread box has a faithful recipe. I don't commit it to memory because I forget a lot. But, I try. So, that was it. What did I forget. Flour. Uh oh....
What am I gonna do? Substitute. So, I turn on the oven to pre-heat because time is an issue. Time. Yes, time is something I think about all day long. Every day. No days off. Not until I'm done. Even then, I'm thinking about the next project. In this case, it's a decision to go to the bike shop and do some work (read: visit). It takes time to go there. I have to pack up my stuff, which includes the laptop and whatever else I won't have when I'm there. Like going onsite, yes?
Time is an issue. So are expenses. It costs me to drive there. I use up gas. I use up an element hard to capture. Call it wear and tear. On my car. On me, because I have to take my mind off my project to focus on the road. And, there are risks in this diversion. I may have an accident. I may get a traffic ticket. I may break down. But, I have AAA! Insurance. American Automobile Association. Right.
Back to cornbread. What'd I forget? Flour. This is where experience comes in. I've made cornbread before. And, I have a recipe. So, I know how it's supposed to be done, fundamentally. Well, I could run to the store and get some flour. More time spent. More money. More risk. Forget that. I have something just as good. 7-grain breakfast cereal. Will it work?
It's a numbers game. I don't want to go to the show, I mean the bike shop, empty handed. But, I also weigh the relative importance of all this. Is it gonna kill me if I screw up the cornbread? What are the chances? I call that "P sub s"; probability of success. So, I weigh the odds and toss in that seven grain stuff and pop it all in the oven. I give myself time to write this article. 20-25 minutes to cook. Then, shower, let it cool at the same time, yes, time sharing.
You see, I am a contractor. I work on a project to project basis. I get paid for what I know. I have some experience and tools. I have my judgement. And, I know one thing more than anything: time is an issue. And, time is not on my side. Unless I make it that way. I try to get more than one thing going at a time. That doesn't mean thinking about a lot of stuff at once, because that doesn't work for me. But, I can get some parallel processes in place. Notice that bowl of oatmeal on the counter next to the mixing bowl? That's breakfast, Homefry! Gotta stay healthy.
I am not paid as a contractor to get an education. That is a side effect. I bring my experience to the table. I am not paid as a contractor to get a pep talk. I take care of that myself. Do I need some OTJ training? I think not. Tell me what I need to do and show me how it works, maybe give me a workflow and I will figure the rest out myself. I'll talk to everyone. I'll keep good notes. I'll make damn sure I understand what you're saying. And, I won't worry about looking stupid when I ask questions because I am going to get the job done and be out of here before you know it!
Is there a middle ground? You bet. Do you want a nurturing environment where you get training, vacations, sick leave and parties thrown and still get to go out and do job work? Take a employee position with a contracting firm. Notice I haven't used the word "consulting" yet. That's a whole 'nother thing. But, you can work your way into contracting. The pay won't be as good. But, you'll be an honest bloke. You'll get that hand holding you need. You'll get paid bench time. See how long that "perm position" as an employee lasts on the bench. You'll learn it's all just different billing situations with compensation adjusted according to how much hand holding you want. You'll have your very own cubicle to come home to and play Angry Birds. Always remember who's throwing the party. And, at some point, you'll ask yourself: "What do I want? Would I rather be invited to the party or throw it myself!"
There's another middle ground. It's called the boutique consulting firm. Not that everyone's a consultant. But, you don't have to go it alone. The magic sometimes happens when you find a company that does job work, not a "body shop" mind you, but a group of reputable people who know what they're doing and do project work. Because you might not want to be the Lone Ranger. Economies of scale, you know? One legal, one accounting, one marketing and sales, a few principles, a few good people. There are those. You'll rarely see ads from them looking for help. They know their guild. When the time's right, if you're lucky and looking, you may get the nod and wind up in that dreamlike situation where the line between work and play is blurred, and you're getting paid for it.
Now, I talked about risks. We work in a dynamic field. People are constantly writing tools and components that are the magic wand. They automate repetitive tasks. Remember that? Yeah, that's computing. But, remember the SDLC? Software Development Lifecycle is what SDLC stands for. In case you never heard that acronym. And, remember workflow. Two important concepts. So, SDLC means analysis/design, coding, testing, deployment, fixing, iteration and maintenance. More or less. And, workflow is that process that we plug all of this stuff into combined with our concept of "P sub s" giving us the highest probability it's all gonna work. Different tools and components have different levels of maturity. Some are tested and work better than others. So, you gotta factor that in. I mean, just because they say it works, doesn't guarantee it's gonna work for you.
Now, that cornbread timer just went off. Here's what I'm left with! Is it right? I don't know, but I'm gonna stick a fork in it and see if it's done.
What do you notice about this photo of me and the cornbread? What am I talking about here: me or the cornbread? And, what's standing out bigger than life in the photo? Me. Wrong. Cut the "me" out of your freelancing equation. You go home with you. You leave your project and all the glory behind. Leave the glory to the people who hired you. So, it's about the work. It's about the project. The cornbread is the result of my work. So, I'm gonna crop that photo and show you what it's really all about.
Now, see! It's OK, in general. It may need a little cooking because I used some ingredients I've never used before. But, I can fix that. Why? Because it's not the first time I've done this.
Imagine this: imagine I had this grand plan and I was going to go to the bike shop, not empty handed. Imagine I grabbed the best guy or gal I could find at the time, because that's all that matters. Time. Remember? That's crucial. I'm only as good as what I can do right now.
Now, imagine I decided that, with all my vast experience making cornbread, I was gonna do something else while my "podnuh(s) in crime" made that cornbread. I handed them the box with the ingredients on it. I told them the plan. I said, "Go for it". And, I checked back with them regularly to see what's up. Uh, oh. There was something missing! Flour. Now, how the heck you gonna make cornbread without flour? That's a biggie. Tick-tock. Time's a ticking.
There are some decisions being made there. The project (cornbread) depends on everything working together. Risk vs return. P sub s. Substitution of ingredients that haven't been tested yet. The recipe says 20-25 minutes at 400F, but we're using 7 grain cereal. Will that take longer? Who knows. So, we go for it. We check out our result. We keep in touch regularly. We let each other know what's up. We adjust the timeline to account for the unknown. Then, TIME's UP! So, we stick a fork in it. Done. Happy? We'll see. Stay tuned...
Tags:
Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.
Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.
Check out the Codetown Jobs group.
Lorenzo Sciandra unveils the use of React Native across Microsoft's diverse ecosystem, emphasizing the strategic and technological reasons for its continued selection.
By Lorenzo SciandraBy focusing on the users, platform development teams can ensure that they build a platform that tackles the true needs of developers, Ana Petkovska said at QCon London. In her talk, Delight Your Developers with User-Centric Platforms & Practices, she shared what their Developer Experience (DevEx) group looks like and what products and services they provide.
By Ben LindersExplore the power of reactive programming for building scalable real-time notification systems. Using Spring Boot Reactive and Spring WebFlux, leverage non-blocking operations to handle high-volume, asynchronous data flows efficiently. Discover how Redis Pub/Sub enables event-driven messaging and how the SSE protocol provides persistent connections for instant client updates without polling.
By Matteo RossiMicrosoft has released .NET 9, which contains features regarding ASP.NET Core 9. This latest release focuses on optimizing static asset handling, refining Blazor's component interaction, enhancing SignalR's observability and performance, and streamlining API documentation through built-in OpenAPI support.
By Robert KrzaczyńskiMandy Gu spoke at QCon SF 2024 about how Wealthsimple, a Canadian fintech company, uses Generative AI to improve productivity. Her talk focused on the development and evolution of their GenAI tool suite and how Wealthsimple crossed the "Trough of Disillusionment" to achieve productivity.
By Anthony Alford© 2024 Created by Michael Levin. Powered by