Monday, October 27, 2014

DevOps is Necessary but not Sufficient

DevOps is Necessary but not Sufficient (my predictions for the future of DevOps)

I know I'm late posting this, but I did write it on the plane October 24. (I didn't watch any of Day 1 of DevOpsDays Ghent, so I, hopefully, am repeating what others have said) Here's a blog post brain dump after the awesome DevOps Enterprise Summit 2014 and thoughts leading into the DevOps 5 year anniversary in Ghent. After listening to so many Enterprise stories and having recently become "Enterprise" myself after my company was bought by IBM, some old thoughts are coming together.

Goldratt warned very much about local optimization and I see a progression of creating and "fixing" local optima. Agile came in to "fix" waterfall and created a local optimization in Dev that crushed Ops. DevOps came along to "fix" the problem by extending the scope of the fix to Product (the business) and Ops, now, in many companies this is sufficient; in the enterprise it is still a local omtimaztion. My rationale goes: A company that revolves around a fairly cohesive product (even if it is complex to implement) organizationally is tighter in its alignment to that product (Etsy is a fairly cohesive brand, product and organization). I think there may be some tie-in to Conway's law here. Once you scale beyond a certain size, an enterprise behaves like many small, coupled companies. New problems arise in managing those couplings at that scale/complexity.

Just as Agile has the Scaled Agile Framework to handle scale, many in the DevOps community are working on the DevOps Scaled framework. It's been mentioned before that the future of DevOps won't be called DevOps, so I respecfully submit the term Lean-Agile as the umbrella name. The reason I choose Lean-Agile and not just Lean is that "Lean" has some connotations in the enterprise because of Lean Six Sigma. I know Agile is a subset/implementation of Lean (and DevOps too, for that matter), but Agile has a very strong brand and a growing, strong, positive connotation in much of the industry. So, if I were to put some defintitions or distinctions, Agile means "Iterate all the things", DevOps means "Continuous all the things" and Lean is the foundation of Experimentation, Improvement and Respect needed to make it all work.

DevOps can move to an industry term that people can use for products and teams and "Lean-Agile" becomes the cultural and professional movement that can include sales, finance, marketing and all parts of the organization, not just those hands-on with the technology.

Tuesday, September 9, 2014

What College Degree for DevOps? -- The Feedback

A huge thank you to @lusis for retweeting my question and original post bringing in a ton of great responses from all over the DevOps community. This post will be updated as feedback comes in and as I start to draw conclusions.

A large part of this process is trying to figure out what is important and what isn't when choosing a major. Also, I'm purposely thinking in terms of how to get a job at DevOps-oriented companies versus classic organizations. I'm also trying to gather evidence that getting a job at a DevOps-oriented company really is different, and that certain traditional college routes may not be the best path.

One common theme from the Twitter feedback from today is that there are many paths to a good job. I have felt and seen this over my nearly 20 years in the tech industry. When your decisions are challenged by family, it's good to have some friends on your side.

@kevinbehr: "philosophy of science is my personal favorite right now. Followed by Cognitive Anthropology"
@puppetmasterd: "math or hard science"
@grubernaut:  "HS education, willingness, and work ethic. imho doesn’t really matter as long as it is a BS. CS, CINS, CINT, etc…"
@aphyr: "Judging by the engineers in our office, best calls are English, physics, archaeology, neuroscience, history, or philosophy. or math, psychology, biochem, CS, womens studies, etc. Any study, in school or out, that makes them write and think."
@ceejbot: "math, linguistics, physics, traditional EECS. Have also worked with great history majors. Very best were dropouts."
@sdboyer: "*write, think, and challenge"

From colleagues over email and in conversation at the office:

Get from college the things you can't get on your own: It's harder to just read a book and learn how to be a good programmer, but it's comparatively much easier to read a book  and learn how to configure a system or a switch. Especially if you understand the foundational principles.

Get from college the things that require some time and discipline to learn. You are paying money, get the most from the people who can coach you and encourage you through learning some difficult things.

Monday, September 8, 2014

What College Degree for DevOps?

My son is a senior in high school and we are in the thick of college visits and trying to figure out what degree he might pursue. He has a strong aptitude for leadership and organizational dynamics. (He just finished a year as Senior Patrol Leader in Boy Scouts and loved the challenge of figuring out how the organization worked and leading people in such a way that they want to actually work instead of just goof off all the time.) He is not interested in a degree with heavy math or science, but he is a good problem solver and likes to puzzle over problems and pull pieces together to make a solution. His verbal is better than is math scores. He took a Java class in school and enjoys programming but doesn't think he wants to be a career programmer. On his own he came to me and said he thinks he might like something like a career as a system administrator. As a dad who is a system administrator that made my heart proud. That got me thinking about what would be the best degree to foster a DevOps mindset. The degree should create a person with a well-rounded technical background (some programming and some systems) as well as knowledge of the business and the context around the product. In the vein of the original liberal arts degree, teach the student how to think and problem solve, how to navigate the context of their problem space, and let the job fill in the details. The following is what I have learned so far. I am inviting feedback to challenge or validate the assumptions I am making below. I would love to hear from people with experience with the degrees and from hiring managers if my thinking is correct.

First assumption: I am searching primarily in the Southeast US and primarily Georgia because the HOPE scholarship is so good. Feedback from other parts of the country will be useful to the discussion by may not help me specifically.

The MIS Degree

I started off with the only thing I knew that combined business and technology: the MIS degree in the business school. I looked, and the degree seems to be very strong in Business with a few technology classes. It looks to me geared toward large corporation back office technologies. One school's highlight is getting SAP certification. Other schools tout their job placement in consulting companies. As I looked at these the first sinking feeling came. They sure looked like their 100% job placement guaranteed you a job working on a large ERP project at some mega-corporation. My career has been at small-ish technology companies and on the dotcom side of the world, I didn't like the feel of the job prospects for an MIS degree. I would like for my son to get a degree that would help him get a job at a company with a DevOps culture.

First question to the community: How many companies with DevOps cultures are hiring college graduates with MIS degrees for Ops positions? Is that an appealing degree for you for a system administrator? Would you hire an MIS grad on the production side of the house (ops or dev/product)?

The IT Degree

Next, I discovered the degree called Information Technology. This degree is a Bachelor of Science, typically in the engineering school. It appears to me to be an "applied" computer science degree. I think it may be the closest thing to a degree for system administration. Georgia Southern describes IT as: "The IT program at Georgia Southern University prepares students to hit the ground running in specializations in information management, networking and datacenter management as well as web and multimedia."

Two schools (among many) in Georgia with this degree are: Georgia Southern and Southern Polytechnic (oddly not Georgia Tech or UGA) and there is even an ABET accreditation for that degree.

This looks like a great degree, but it is very technical and has little focus on business and leadership. Also, if you are looking for a degree from a big-name university, this program is not offered at many top-tier universities.

Question two: Would companies with a DevOps culture be drawn to a candidate with a BS in IT for an Ops position?

The CIS Degree

Then I found the degree called "Computer Information Systems". The content of the program varies between schools and it does not have any accreditation. The two that caught my eye were at University of South Carolina and Clemson. (The CIS programs in Georgia either resemble IT or are in the Business Department and are not a BS degree) As I read the description it seems to be an IT degree with a minor in business. From SC "The CIS major combines computing courses (software, databases, networks, and hardware) from the Computer Science and Engineering (CSE) department with a minor in Business Information Management". From Clemson "The B.S. in Computer Information Systems is a combination of cores computer science courses and courses selected from management, marketing, finance, economics, and accounting."

This sounds like the ideal degree for my son. It is a BS which should appeal to tech companies, but gives him a rounded education so that he can understand "The Business" and quickly move into a leadership position. The downside is the variation of programs from school to school so that when you say "I have a degree in CIS" no one really knows what you know.

Question three: Would companies with a DevOps culture be drawn to a candidate with a BS in CIS for an Ops position?


Added bonus. After I did all of the above research I found this site which sums up the degrees fairly well.

What I am going to try first is to see if the Information Technology degree at Georgia Southern can have all the electives tailored for business. That will give an accredited IT degree with a strong business background.

Feedback? Please.

Update: I've started collecting feedback in this new post.