Article

Articles

16 articles Spacer1 | 2 | NextSpacer

Craftsmanship over Heroics by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with heroics customers.

I'm still thinking about Uncle Bob's talk at Agile 2008 after returning to Obtiva's Software Studio after a few weeks away.  One of the things he talked about was valuing "Craftsmanship over Crap".  After I spoke briefly with him afterward, it didn't seem like there was much more to his statement than simply promoting craftsmanship.  And that's fine by me, but I tend to be someone who picks up ideas like this and play with them for a while.  In my last post, I reworked "Craftsmanship over Crap" into "Craftsmanship over Heroics", and I'd like to say a bit more about why I chose heroics.  But first, I'll need to rewind the clock a bit.

In 2002, I read Pete McBreen's Software Craftsmanship.  I read a ton of great books that year.  Pete's book ranked near the top because of the ideals and structure that it described.  Similar to Kent Beck's Extreme Programming Explained, as I was reading the book I kept telling myself "this is how I want to work".  One of the themes of Pete's book is that "Software craftsmanship is built on top of long-term relationships that are grounded in a reputation for delivery."  One of the most satisfying aspects of pioneering Obtiva's Software Studio has been building the foundations of long-term relationships with our customers.  It's incredible how much ceremony and waste can be thrown out the window once a customer and development team can trust each other.  Watching some of Pete's ideals unfold in front of my eyes has solidified these ideals into hard won experience.

Unfortunately, like most developers who find a technique and use it successfully, it can be overused.  And by this I mean, letting all process fall away and simply execute your customer's every whim at maximum speed.  For me, this inevitably devolves into heroic programming.  There are times when you need a bit of heroism on a project, but this shouldn't happen more than a few times a year.  I recently found myself in a feedback loop of doing heroic programming at 2AM (and injecting bugs in the process), seeing some benefits, receiving praise from customer, fixing bugs the following night at 2AM (and injecting bugs in the process), seeing some benefits, receiving praise from customer, and on and on.  This is why the term "heroic" came to mind so quickly for me when I heard Uncle Bob. I've seen first-hand how a relationship with a customer can be taken too far and produce crap.  The obvious superior alternative is to stay disciplined, to maintain a healthy relationship with your customer, protect your sleep habits so that you're at your best, and to uphold your standards of craftsmanship.


Uncle Bob on Craftsmanship at Agile 2008 by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with agile values heroics clean.

I had the pleasure of listening to "Uncle" Bob Martin last night at Agile 2008 while we were eating dinner.  Bob is hands down the most entertaining speaker I've ever heard at a conference, and I've had the pleasure of listening to him at several of the Agile conferences.  The beautiful part is that while he entertains, he always has an important message, and his message this year was right on the money.  Never one to shy away from big ideas, Bob proposed to add a 5th value to the Agile Manifesto: Craftsmanship over Crap.  It was great to hear Bob continue to beat the craftsmanship drum, and Bob's slant on craftsmanship is all about professionalism.  He drew a wonderful comparison to the history of medicine when some hospital administrator discovered that having his doctors wash their hands lowered the hospital's mortality rate.  The critical tie-in for me was Bob's final words that "doctors don't have time to wash their hands," drawing a parallel with how often developers rush through our work without writing tests and keeping our code clean.

The problem with Bob's proposal is that it doesn't quite fit with the other agile values. There is no value in the item on the right!  I suggest we reword it to "Craftsmanship over Heroics".  While there are times that we need to be heroic for our customers, making a habit of heroic coding ends up producing crap and burns people out.


A tidbit of wisdom from Pixar by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with movie quotes unconventional origins.

I just returned from a visit to my parents with my family.  My siblings and I are in kid-mode right now, with 7 cousins between ages 1 and 9, so we had some DVDs playing periodically as the cousins wore each other out.  One of the movies was Ratatouille.  The theme of that movie is near and dear to my heart because it shares the same grassroots, bootstrapping quality as the craftsmanship model and the way that apprentices are found and developed.  The movie is all about cooking and the theme is "Anyone can cook".

I believe that the Internet and Open Source have made this true for software developers.  Anyone with an Internet connection can learn some basic skills.  That's how I got my start, by reading an HTML tutorial online.  Just like most people have food and some tools for preparing it, many people have access to all the information they need to become a novice programmer.

A food critic at the end of the movie built on top of the "Anyone can cook" theme with "Not everyone can become a great artist, but a great artist can come from anywhere."  This quote hit home, particularly after giving my OSCON talk last week, which was fairly heavy-handed about Obtiva's success with people lacking a computer science education.


Apprenticeships on Open Source at OSCON by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Not tagged.

In one of the final sessions at OSCON today, Brian Tatnall and I spoke about our experiences with apprenticeship at Obtiva's Software Studio.  The slides are available for viewing from 280 Slides.


Comparing Apprenticeship Programs by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with apprenticeship.

I attended my local Ruby Brigade on Monday and listened to Chris Hicks talk about sneaking Ruby into a Fortune 500 company. It was an interesting talk and I was impressed by Chris's ability to learn Ruby (his first programming language) over the course of a few months, and then present his experiences to a bunch of experienced Rubyists.  Afterward, a bunch of us grabbed some beers at a local pub and I had the pleasure of talking to Paul Pagel of 8th Light about apprenticeship.  Paul recently started mentoring an apprentice, so we had a lot to talk about.

I've thought about our conversation ever since and the different approaches that Obtiva and 8th Light are taking with their apprenticeship programs.

Obtiva hires apprentices into our Software Studio where apprentices are somewhat insulated from our clients and therefore have a relatively safe environment for learning.  The apprentices aren't assigned to a specific mentor, it's the Software Studio team's responsibility to ensure that apprentices are making progress and getting enough mentoring.  Sometimes we've failed to ensure that this happens as we balance client needs and team growth and the correct ratio of apprentices to more senior developers.

8th Light hires apprentices and attaches that apprentice to a mentor.  The apprentice shadows that mentor every day.  The mentor is responsible for finding and hiring the apprentice.  It's a more traditional approach to apprenticeship, and I assume that it's done in the context of on-site consulting work rather than in a remote environment like Obtiva's Software Studio.

It occurred to me this morning that while there are some business reasons for our different approaches, there is also some biographical reasons: my apprenticeship was less traditional than Paul's.  When I first met Paul, he was an intern at Object Mentor, a company led by Bob Martin, a long-time proponent of software craftsmanship.  Paul went on to work for Object Mentor and then moved onto 8th Light.  I, on the other hand, had a much bumpier (and perhaps typical) journey through several different companies, none of which emphasized apprenticeship.  I had to create my own apprenticeship in less than ideal circumstances (which is really what this book is all about).  My hope for Obtiva's apprentices is that they find themselves in much more ideal circumstances: within a culture of learning, a place to be mentored, and a place to stretch your skills.  Yet Obtiva's approach is closer to my own apprenticeship experience than Paul's.  At Obtiva, the quality of one's apprenticeship is largely in the hands of the apprentice, who will hopefully apply the Apprenticeship Patterns to maximize their experience.  Perhaps that's true of apprentices at 8th Light as well, though with a more traditional apprenticeship it would be easier to put the responsibility on the mentor.

I'll be interested to watch both Obtiva's and 8th Light's apprenticeship programs evolve in the coming years.  I'd like to see Obtiva's program take some steps toward becoming more traditional.


Interested in Collaborating? Speak up. by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with basecamp collaboration.

Michael Hunger asked whether we were including non-authors in our Basecamp collaboration.  I say: "yes!"  Please comment on this thread and let me know if you are interested in collaborating via Basecamp.  We would be looking for some help with reviewing and possibly offering some of your own stories to support the patterns.


Arrow_down Hide comments
  1. Ian Dees said  

    I'd be interested.  I'm undees at gmail.


    --Ian

Rhythm and Recovery by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with rhythm organized effectiveness.

One of the lessons I'm learning as I read through The Art of Learning is the importance and power of a peaceful state, and how periodic relaxation helps with this. One of my most thoughtful co-workers is Renzo Borgatti, who introduced my team to the concept of the Pomodoro technique.  When Renzo introduced it, I wasn't open to it.  I believed I could power through the intensity of my days without any breaks.  But coming back from a week off while reading The Art of Learning, I have an inner peace that is incredibly helpful to the sort of conceptual work that software developers do.  Yesterday was a typically hectic day for me, with many clients and co-workers vying for my attention, followed by an evening full of the same sort of thing, watching the kids while working through a long to-do list (fix sink, email uncle, plan anniversary).  Throughout the day I could feel my inner peace being challenged and sapped.  I could see the opportunities to step back and take a 5 minute break, though I didn't take them.  But unlike 6 months ago, I'm now open to the practice of the Pomodoro, just as I'm also beginning to research Tai Chi.

As I rode my bike to the train this morning, I was in a peaceful state. (I actually left early enough that I didn't have to rush.)  And I was thinking about next steps for the Apprenticeship Patterns and ways I could shift or jiggle my approach in order to jump-start the process.  I needed to get back to Mary about next steps.  And then a simple thought occurred to me.  Just use Basecamp.  For simple, small-team projects, Basecamp is a fine tool. We've used it effectively in developing Mad Mimi, so why not use it to manage the project of writing a patterns book, along with organizing the slides for my upcoming OSCON talk on Apprenticeship and Open Source?  I believe a tool like this, combined with periodic recovery periods should help create the rhythm and sustainable peace that I need to wear my many hats effectively.

And as a meta-example, this blog post is the second in as many days. Hopefully a rhythm is developing in my time of public reflection as well.  Stay tuned.


Arrow_down Hide comments
  1. 87699_32x32_thumb Michael Hunger said  

    Hi Dave,


    welcome back. As being a father of three as well as a freelance software developer, consultant and enthusiastic evangelist about better software development (and some more stuff), I really share your feelings and problems. There are so many things to do, so many demands and interests. But somehow not enough time. How do we try to solve it? Powering through the days and most of the nights. And in the end getting nothing really done? What helped me (at least partially) was a suggestion from my wife to take a blue hour each day before getting to work at the client. Just getting to some café having a big milk coffee and taking one hour for reading or thinking or writing helps a lot. Another think is reducing the workhours. I'm now down to 5-6 official hours at the clients. Thats enough for them, enough for me to feed the family and I still have enough time for children, wife and chores. And fortunately I don't need that much sleep so I have most of the night for all the other spare time activities - reading, writing (open) source, discussing etc.

    We'll see how long I can sustain that pace. Wishing you and us all the best for the book and your improved life.


    Do you want to use basecamp just for yourself or for the whole book teams as well as "reviewers"?


    Michael

  2. 66561_32x32_thumb Dave Hoover said  

    Michael, you can contact me at dave.hoover AT gmail.com and I will invite you to Basecamp

Writer's Block and Introspection by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with block learning congruence.

I've officially declared myself "blocked" as a writer. Declaring this will hopefully help pull me out of writer's-block-denial-land and help me get back on the path to developing these patterns into a publishable form.  I should say that my editor, Mary O'Brien, has been patient, understanding, and supportive through this process, particularly when I've been slow to respond (or unresponsive) to her inquiries.

I just spent a week offline and on holiday with my wife and children. It was an important and well-timed retreat and an opportunity to reflect on why I'm out of flow. Just before I left, Kevin Taylor, my business partner, handed me The Art of Learning (by Josh Waitzkin) just after he finished reading it. It's full of deep insights on learning and performance. It's also full of compelling auto-biographical stories from the chess champion who was the subject of the book and subsequent movie "Searching for Bobby Fischer", who went on to become a Tai Chi Push Hands world champion. The book is all about mastery, but digs deeper into the mechanics of elite performance and what separates the good from the great from the elite.


Two thoughts keep coming back to me as I read the book.


First, Josh has a lot of time on his hands. To be fair, he has exactly the same amount of time that I do.  He has 24 hours per day, in fact he has less time than I do since I'm older than he is. But when I read about him spending several hours a day refining his forms and literally taking hours to move his arms six inches, I realize that his days have very different structure than mine. I am a husband and father of three who tries to spend quality time with his wife and children every day. I am a software developer, team leader, mentor, and business owner who has projects, customers, teammates, and apprentices who need my time and attention. When I was describing Josh to my wife, I told her to imagine my focus on excellence and multiply it by 10. Despite the demands on my time, I have always carved out time to learn about and improve upon what I am currently focused on. For a long time that was American football, and then it was family systems and narrative therapy, and now it is software craftsmanship. I've also taken diversions into the martial art of Kenpo and explored Texas Hold'em poker. Like Josh, I love to learn, and I agree that it's an art. I appreciate that Josh has been able to structure his life in such a way that he can throw himself so fully into the art of learning and then benefit his readers with what he has discovered. But we all must strike a balance in our lives, and when we sacrifice our responsibilities for the sake of learning and mastery, we have slid into obsession.  That said, if I was neither a husband nor father nor business owner, it would be unlikely that I would be as disciplined as Josh to focus so much of my time on learning.  It's too easy to say, "well, he's a genius" or "he only has to worry about himself", but in reality, there are thousands of Josh's out there who lack the discipline to do what he does.

A second thought keeps coming back to me as Josh touches on the importance of allowing your personality to express itself in your craft. For Josh, this meant he played best when he could create chaos on the chessboard and then thrive in that chaos, just as he did in his normal life. When I read this, it was immediately obvious that over the last few years there has been an aspect of my life that is not congruent with who I am.  This incongruence between the various aspects of my life has caused various problems for me. I'm obviously not going into detail about what the incongruence is, but I feel comfortable writing about the effects of it in my professional life. The effects are simple but powerful: I'm off my game and out of flow. When you wear a lot of hats (father, team leader, consultant, husband, etc.) being out of flow feels exponential, as mistakes in one arena spill over into another, and another, and cascade into a mountain of disappointment. These mistakes can be technical, such as rushing through a software feature and choosing not to write tests for your code, or these mistakes can be relational, such as ignoring a customer's needs and missing out on an opportunity to innovate. Recognizing this incongruence was the first step toward correcting it. It is too easy to focus on the symptoms and problems caused by the incongruence, rather than dig down to the root cause and solve the fundamental problem. For example, if an alcoholic wants to overcome their addiction, they generally can't just focus on drinking less alcohol, they need to address the underlying issues that drove them toward alcohol abuse. Likewise I am in the process of digging deep to address my incongruence and turn things around.

This blog will get back on topic shortly! Please forgive my digression into self-improvement and introspection but it's an important step for me to overcome this blockage.


Catching up, Fighting distractions, Polyglotting by Dave Hoover. 66561_32x32_thumb

Posted in 1. Wearing the White Belt. Tagged with polyglot languages.

Over the last month I got into the nasty habit of not blogging. One of the toughest aspects of writing on the topic of apprenticeship is how easy it is to get distracted.  When a software developer writes about reading and learning, it's tough not to find yourself doing more reading and learning than writing.  It's not fair that there is always some new conversation, meme, API, or technology to learn about!  This problem of mine is what I love about this field, but makes focused writing difficult.  The reason this book stalled in 2005 was due to Ajax and then Ruby on Rails.  I simply could not ignore the opportunity they presented.  I was writing about the importance of one's ability to learn new technologies and there were two revolutionary technologies staring me in the face.  And now I find myself fighting off an endless barrage of distractions (aka opportunities) that slow down my book writing and blogging.  Thankfully (for the writing) I haven't recognized anything revolutionary enough to stall me for more than a few weeks.

One of my latest distractions is the polyglot meme. One of the apprenticeship patterns is Your First Language, which is a fundamental (if not obvious) pattern that covers the ins, outs, do's and don'ts of that first deep dive.  Neal Ford is one of the instigators of the polyglot meme and recently had some words of wisdom for learning a new language:


Anytime you learn a new language, you have 2 battles: first, learn the syntax (which is the easiest part -- it's just details of how familiar concepts are expressed in the new syntax). The second battle is the more important one: how to become an idiomatic programmer in that language.


My first language was Perl and I fell in love with it.  I thought it was the only language I would ever use.  And then I learned Java and Ruby.  One made me feel smart and one made me feel good.  These days I'm focusing more and more on JavaScript and with the help and guidance of Fred Polgardy, I am fighting the second battle that Neal was referring to. It's fun to know several languages, it's very freeing.  I still have many more languages to explore (Lisp, Scala, Haskell, Erlang, Python) and that's one of the self-serving reasons that I started The Polyglot Programmers User Groups recently.  I was actually leading a Perl Mongers group near my home but I was having trouble finding Perl speakers, so my colleagues and I morphed it into Polyglot Programmers SIG of Uniforum Chicago.  And this week is the first meeting of our downtown group, the Polyglot Programmers of Chicago.

I would enjoy hearing about your experiences learning your first and subsequent languages.



New Title! by Dave Hoover. 66561_32x32_thumb

Posted in Public. Tagged with title.

I mentioned in my previous post that we were considering changing the title of this book.  We have landed on Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman.  It was tough for me to let go of "Apprentice to Journeyman" because that very much describes the transition this book is focused on, but we believe this title is more distinctive and descriptive of the content.

We will soon be doing a new release of the content of this site and the new title will be reflected at that point.


Considering a Title change by Dave Hoover. 66561_32x32_thumb

Posted in Public. Tagged with title.

PragDave posted a criticism of this book's title 9 days ago.  I'm not going to go into details, but I will say he took the post down a day later and posted a public aplogy two days after that.  I will also say that it was quite an ordeal for me and that Dave's apology was unexpected and actually unecessary at that point since we had basically resolved things privately (no small feat via email).  So it was an incredible blessing to read the apology, and freeing.  I generally don't have any problem with hearing feedback about the title of this book, but the tone of Dave's criticism and my reaction to it took the whole conversation off-topic and completely closed my mind to critiquing the title myself.

Once Dave apologized I felt free to reconsider the title.  I wish I could have had the wherewithall to objectively look at the title before the apology, but I had taken the whole thing very personally and I was very much in you-can-pry-this-title-from-my-cold-dead-hands mode.  Thankfully my co-author Adewale was more objective and has been ruminating and suggesting better alternatives.  At the same time, I received a supportive email from my faraway friend Alan Francis who prompted me to consider changing the title.  I also spent some time with my team in Obtiva's Craftsmanship Studio brainstorming a new title.  And so Mary, our editor, and Adewale and I are considering a title change.  More information will be coming shortly.  I will say for now that the main title is most likely going to remain unchanged.


Arrow_down Hide comments
  1. 87699_32x32_thumb Michael Hunger said  

    When I first heard your title I instantly thought of the other books that share parts of it. But when thinking further about the title, I think that's a quite good title. I puts the book into a category and gives a scope of where it is applicable as well as a goal (journeyman).

    With other topics you also have several books that form ecosystems. Be it Design Patterns, Refactoring, Language books, Head First etc. So why not having an ecosystem of Software Craftsmanship books.

    Thinking of another title was actually not that easy. On the one hand you want to distinguish your book from the others (not being confused with them, or being referred to as "the other book"). On the other hand you want your readers (and potential buyers) identify your book as part of the topic they are looking for. So a too fancy title (like "My Job went to India") is not helpful either. You also don't want to be confused with those tons of recipies for life improvement books (so be careful about the wording).

    Changes I could imagine would be:

    Software Craftsmanship: The Apprentice Years. (missing the goal)

    Software Craftsmanship: The Long Road. (negative tone)

    Craft your journeyman's piece: yourself.

    Although I'd rather keep it, I also offer you my personal title:

    Creating Passionate Developers: The beginning. / How to spark excitement.


    Hope it helps


    Michael



  2. Kelly Robinson said  

    I first of all joined this group because I was intrigued by the title.  Digging a little deeper, I quickly realized that the book is speaking to my exact station as a software developer.  As a young developer, I have a lot of energy and new ideas, as well as a lot to learn.  "Wearing the White Belt" and "Perpetual Learning" both seemed to be speaking directly to my personal situation.  I have developed strong skills in one language, and am tasked with branching out into others, etc..

    I've been following along each week, although until now, I haven't contributed any sort of feedback.  This is mostly because I feel that at this stage I have more to learn from the book than to contribute to it.  The question over the title of the book seems to be one where my input is more relevant, because I'm definitely the target audience, and I'll definitely be enjoying a personal copy.

    So for what it's worth, I think the title is great.  I love the idea of Software Craftsmanship.  One of my favorite books, however recent, is "Beautiful Code."  I look up to the authors of that title as masters of the craft, and they represent what I'm working to become.  I've only been developing professionally for a few years, but I have already seen that there is a great need within the industry for people to understand software development more in terms of old world craftsmanship, just as you've labeled it.  I'd rather think of myself as a journeyman than as an engineer, and I'm thankful to be in a position at work where my manager and co-workers share the values that the title expresses.  I think that's too often not the case.

    Whatever the title, I've enjoyed reading along so far, and look forward to more developments.  But I think the title speaks volumes, and I encourage you to keep it.

    Best,

    -kpr

  3. 66561_32x32_thumb Dave Hoover said  

Thinking Small like Paul by Dave Hoover. 66561_32x32_thumb

Posted in Uncategorized. Tagged with paul_graham, small_companies.

Paul Graham's essays inspire me.  I suppose this is because I already agree with most of them and he's just showing me how to construct arguments for the ideas that I unknowingly held.  One of Paul's common themes is the "great hacker" which resonates strongly with me because I aspire to become one of those people (referred to in this book as "master craftsman").  The theme that has a stronger influence on me is Paul's take on wealth and risk.  Paul points to the special powers and leverage that programmers can wield to generate wealth under the right conditions.  His arguments on wealth and risk helped steer me toward a local, three-man consultancy rather than an enormous multi-national bank when I left ThoughtWorks in 2006.  Choosing Obtiva was one of the better decisions I have ever made.

Paul's most recent essay is not about wealth or great hackers, but the related topic of company size.  Again, it resonated with me because I generally despise working in large organizations.  As someone who loves to create things, the constraints and layers of most large companies kill my soul.  And even if the large(ish) company (thinking of ThoughtWorks) has a hacker-friendly culture, there is nothing so thrilling to me as working in a very small company, simultaneously creating a culture and software systems of my own design.  Paul's experiences running his startup incubator has shaped his ideas about how inexperienced yet talented programmers should start their careers.  He advises people to err on the side of joining or founding a small company rather than joining a Google or a Microsoft for a few years to "learn the ropes".  As long as you can pay your bills without going into debt, I think Paul is right on target.  For programmers, learning is our fundamental activity, and there is no better way to learn than in the context of a small group of people working together to create something.  Spending a few years at a Google or a Microsoft will certainly teach you a lot, but some of it will be non-technical and company-specific and therefore useless once you move on.  I agree with Paul that those years would generally be better spent in a small company or your own startup where you have the leverage and leanness to optimize your learning experience and help you reach the next level of software craftsmanship.


Arrow_down Hide comments
  1. 87699_32x32_thumb Michael Hunger said  

    "... but some of it will be non-technical and company-specific and therefore useless once you move on. "

    This is valid for all companies and domains (and especially universities). But while learning this specific stuff we also discover a lot about the abstractions that lie behind it and the methods of learning.

    I don't know if you have the leverage to optimize your learning at a startup where slack is not that abundant as you try to get things done. A company that provides the means and time to practise and learn during worktime is certainly quite helpful and can cope much better with the different skills available.


    Michael

  2. 87699_32x32_thumb Michael Hunger said  

    Just reading Pauls essay. The section that seems a bit problematic in regard of this book is the following: "Which means it's doubly important to hire the best people. Mediocre hires hurt you twice: they get less done, but they also make you big, because you need more of them to solve a given problem." So you just hire the best, i.e. master craftsmen? Or how does an apprentice fit into this? Or should the apprentice just start his own start up, hire the best people and learn from them? :)) Michael
  3. sl805e said  

    As someone who has worked for a company during their start-up phase and on into their operational phase I have the following comments:

    The 2 phases were very different, with very good reason. Initially that "hacker-friendy culture" exisited but once we had paying customers on the books we needed the process and control to ensure that service was not interruped.

    I manged to deal with both scenarios and learnt a huge amount from each.

    So when I hear someone say that they are the type "who loves to create things, the constraints and layers of most large companies kill my soul" I get a bit concerned. It is possible to learn a huge amount at a large organisation even taking into account the processes and procedures that will be in place. I accept that there are times when these processes and procedures can seem to be overly restrictive and indeed this has been a contributing factor in me leaving a previous position. This however doesn't mean that working for large organisation can not worthwhile.

    I suspect many of us have met people with this attitude. My experience is that, even in a small organisation, this attitude can cause issues. It very often translates to "I know better than you". In most cases this turns out not to be true.

    When you say that you like to build "software systems of my own design" what I hear is someone saying that they are not open to ideas from others, not willing to work as part of a team, not aware of the impact that their work has on other people.

    People with this attitude are absolutely more suited to a small organisation but by turning your back on large organisations you are not turning yourself into a well rounded software professional.

  4. 66561_32x32_thumb Dave Hoover said  

    sl805e, these are very good points.  If I have an achilles heel, it is my disdain for large organizations.  I wholeheartedly agree that learning opportunities can be found in every situation, even in situations I would rather avoid.

    I understand your concern for my "soul-killing" comment and how that often coincides with the trait of "I know better than you".  I'm hoping that's not the case for me, though I'm sure I've been guilty of that tendency at times.  I should have stuck with the positive side of the statement:  I love to create things, and in my experience, working for small companies on small teams facilitates this.  I also understand why you could take my "software systems of my own design" comment as sounding like a prima dona, someone who can't possibly be bothered with the contributions of the pitiful mortals who stumble around in ignorance.  But consider the context of this blog, please read some of the patterns to get a sense of where I'm coming from.  I have left you with the wrong impression of me if you think I am not open to ideas from others or not interested in teamwork.

  5. 66823_32x32_thumb eno said  

    As another person who has worked in several startups as a contractor (and now works full-time for a company owned by a large corporation), I would also have to say that it doesn't automatically follow that startups have great examples of good teamwork, super creativity or informed management. In fact, in my experience, it has often turned out to be the opposite (or at best, a mixed bag). True, an individual in a startup often has an opportunity to learn many things (wearing many hats) and maybe even shine, BUT if any component of the startup (be it technical, managerial, etc) is dysfunctional then it can be a pretty bad place to be.

    Are big corporations bad?

    Short answer: Sometimes. Maybe. Depends.

    Long answer: I would say that while its true large corporations often do have the mind-numbing soul-destroying conventions attributed to them, they are sometimes great places to learn good responsible practices that will make you a better craftsman. It depends on the company. Having spent 7 months carefully looking (including interviewing at some very well known companies), I now work for a "regular" small company but the management and technical team here are excellent. We dont have cubicles. People are respected. Communications are good. It can be fun. Im working on a project that is a "startup" idea but inside an existing business. I feel Im in a good creative place where our ideas are encouraged and heard.

    So, part of a craftman's journey should include stints in all types of companies large and small, and in all types of positions and then deciding which part to focus on for a rewarding career.

  6. 66561_32x32_thumb Dave Hoover said  

    eno, right on. +1
  Spacer1 | 2 | NextSpacer

Copyright O'Reilly Media

Powered by Near-TimeTerms of Services | Privacy Policy | Security Policy |