July 22, 2014 at 2:01 am
I have seen the like of this for a couple of decades and it certainly needs a movement, for the want of a better word, to formalise best practices for who is responsible for what. The best places I have worked there is a discussion where this is negotiated on the basis of experience, knowledge and requirements for ongoing support. The worst places have made it a case of responsibility pingpong. Obviously the best places assisted each other or, in the terms of the editorial, leant on and learned from each other.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
July 22, 2014 at 10:24 am
Steve Jones - SSC Editor (7/21/2014)
We just thought we were part of the same team.
That's so important and the path to successful projects. When communication and/or collaboration stops, problems arise.
July 22, 2014 at 2:50 pm
Jeff Knupp, "Python Developer", yeah thats all I need to read about that.
July 23, 2014 at 2:21 am
Well, I'm a developer and I do wear all of the hats discussed from time to time, though primarily the database side of development (my interaction with our sole DBA is somewhat limited and he is just not available for anything at all on my side basically). That doesn't stop me sorting out SSL certificates or whatever. We're not a start up, though in many ways small I guess (25 employees on site). I do like to write code most of all of course but at the end of the day we just have to get on and get the job done - so I still have a job. If no-one else will test a live roll out then so be it. My testing will not be great but it's better than none for sure.
July 23, 2014 at 2:54 am
It's all so very "big company".
In a smaller outfit like this with only half a dozen in the dev team covering DBA, design, development and day-to-day application support, you have to work with the business users who have to test and accept any software before it goes out. The ITIL framework is the basis for things, but we don't give it any fancy names, we just do it.
July 23, 2014 at 5:55 am
It's all so very "big company".
In a smaller outfit like this with only half a dozen in the dev team covering DBA, design, development and day-to-day application support, you have to work with the business users who have to test and accept any software before it goes out. The ITIL framework is the basis for things, but we don't give it any fancy names, we just do it.
Couldn't agree more!
I've almost always worked as a dev at small companys (nb. not "start ups") and I've always been happy stepping into all the roles from DBA, business anallyst, project manager etc. In fact I'm not just comfortable with it, I actively enjoy it. I don't fool myself that that I'm an expert in all those fields but I'm happy that I'm good enough to get the job done satisfactorily 99% of the time. For the other 1% I'll turn to the expert.
And while there are some roles (DBA's an obvious one) that can be comfortably pushed off into a silo without too much risk there are many (and I think the various analyst roles fall firmly in this bracket) that are much better done by the same individual who'll do the development because of the amount of crucial information that get's lost in communication. The thought of not being able to communicate directly with my end users fills me with dread.
Lord save us from devs (or anyone else) who want to sit in ivory towers.
edit>Also, as a Dev can I just say how heartily I endorse Jeff Knupps hierarchy of usefulness.;-)
July 23, 2014 at 6:36 am
Maybe it is me but I think that Jeff Knupps is missing the point of the "DevOps" movement. In the same paragraph that he states
"DevOps" is meant to denote a close collaboration and cross-pollination between what were previously purely development roles, purely operations roles, and purely QA roles
he goes on to say that
Developers must also take responsibility for the quality of the testing and release environments
.
I totally agree with the former but will vehemently disagree that it means the latter.
In my opinion the movement is there to stop things being thrown over the fence and deny all responsibility. Collaboration does not equate to "passing the buck" in the opposite direction to before. Again in my opinion, Jeff Knupps' rant is more likely due to experience of teams violating the principles of collaboration and just pushing back all responsibility to the source i.e. the people who created the software that it is all about (OK the real source is the business but NOONE would dare make them responsible).
As for his hierarchy, it is a gross simplification. Too many developers shouldn't be allowed out of bed in the morning and I have met operations support engineers who could do anything if they wanted to.
In fact the blog posting that this is all the fault of the Agile methodology or Startups is as naive as his views on chefs i.e. a head chef tends to create dishes for the other chefs under him to cook for the clientele.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
July 23, 2014 at 6:41 am
I got about three paragraphs into that article Steve linked and had a horrifying flashback to another article (I'll spare you the link) by a guy who believed SPROCs were destroying C# development. While I don't want to be a DBA and a systems administrator (I just escaped infrastructure after 20 years and am not having a LOST moment where "I have to go back!") and the guy who fixes the coffee pot, I do think it's almost negligent for a developer not to know something beyond the basics about the different stacks. App developers need to know why moving a DBA's position is about like pushing a mountain. DBAs need to understand that, no, the C# guys aren't making up queries to drive them insane. And QA needs to stop being an afterthought.
Enough silos. Silos stifled my career. I had to get laid off to get out of infrastructure. When I landed, I found myself not only writing an app from scratch, but I had to build its database, too. Which means I had to know something beyond "It's pronounced "sequel" and yes, you have to use brackets in your .Net or Java code."
Tom Hottle
Operations Support Developer
--- Remember, if you don't document your work, Apollo 13 doesn't come home.
July 23, 2014 at 7:58 am
I rather agree with Patrick's comment above - but I read the rubbish and got steadily more appalled as I went through it. A (Python) Programmer is apparently the highest form of life and people who do testing, quality assurance, deployment, or operations and of course DBA's too are all "lower" beings, clearly below him in the natural hierarchy - I just can't stomach that inflated view of a developer's place in the scheme of things. If I had ever had a developer like that working for me I would have fired him if I couldn't persuade him to change his attitude.
Oddly enough, I have lots of four letter words for developers who want to do no testing, or do no customer support, or do no deployment.
I'm happy with the idea that a developer does plenty of unit testing of his stuff, that the developers work together to do system testing, and that they don't take responsibility for quality assurance (although the QA team may ask them to develop some tests for them). I'm happy with the idea that software that is very difficult to deploy is pretty useless software, and that developers have to understand that and will have to assist in deployment if they haven't managed to produce software that is easy enough for the deployment and operations teams to deploy. I'm happy with the idea that when, despite all the unit testing and the QA the sofware still has faults and the customer support team can't provide an acceptable workaround for the customer a developer may have to understand the problem (which is likely to involve talking to the customer, maybe even visiting the customer) and finding either a quick fix or an acceptable workaround. I'm very unhappy with the idea that those things are no part of a developers job.
I think I expect developers to be a more concerned with testing, QA, deployment, and customer support than Steve appears to think is right, and Steve in turn thinks developers should be more involved with such things than that Python Programmer with the inflated ego appears to believe is proper.
Tom
July 23, 2014 at 8:07 am
TomThomson (7/23/2014)
I rather agree with Patrick's comment above - but I read the rubbish and got steadily more appalled as I went through it. A (Python) Programmer is apparently the highest form of life and people who do testing, quality assurance, deployment, or operations and of course DBA's too are all "lower" beings, clearly below him in the natural hierarchy - I just can't stomach that inflated view of a developer's place in the scheme of things. If I had ever had a developer like that working for me I would have fired him if I couldn't persuade him to change his attitude.Oddly enough, I have lots of four letter words for developers who want to do no testing, or do no customer support, or do no deployment.
I'm happy with the idea that a developer does plenty of unit testing of his stuff, that the developers work together to do system testing, and that they don't take responsibility for quality assurance (although the QA team may ask them to develop some tests for them). I'm happy with the idea that software that is very difficult to deploy is pretty useless software, and that developers have to understand that and will have to assist in deployment if they haven't managed to produce software that is easy enough for the deployment and operations teams to deploy. I'm happy with the idea that when, despite all the unit testing and the QA the sofware still has faults and the customer support team can't provide an acceptable workaround for the customer a developer may have to understand the problem (which is likely to involve talking to the customer, maybe even visiting the customer) and finding either a quick fix or an acceptable workaround. I'm very unhappy with the idea that those things are no part of a developers job.
I think I expect developers to be a more concerned with testing, QA, deployment, and customer support than Steve appears to think is right, and Steve in turn thinks developers should be more involved with such things than that Python Programmer with the inflated ego appears to believe is proper.
As a developer, I can honestly say that this "leave me to code" attitude stinks. It is all about the overall result which we all get judged on. And so we should.
[Paraphrasing Mr Python Developer] "Leave me alone. I am superior to you. I am more worthy."
Really? I agree with Tom. Get a grip and join the team.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
July 23, 2014 at 8:39 am
There's nothing new about DevOps..... it's simply an extension of the principles embodied in ITIL.
All roles in software development need to have Operations needs(security, performance, stability, support) as part of their goals.
When the entire team strives toward operational excellence, the end product is produced faster, cheaper and of higher quality because rework or additional tasks at the deployment milestone will be fewer. This will enable coders and DBAs to move on to other projects faster. I.e. they will not be doing less coding; in fact, they may be doing more.
Ken
July 23, 2014 at 11:48 am
Is DevOps related to the "engineering approach" that is being considered inside Microsoft right now?
This is from a news article about the upcoming layoffs, including a quote from Satya Nadella:
Engineering teams have traditionally been split between program managers, developers and testers. Yet with new cloud methods of building software, it often makes sense to have the developers test and fix bugs instead of a separate team of testers, Nadella said in the interview last week. Some of the cuts will be among software testers, said one of the people. (emphasis mine)
This quote really concerns me. While I agree that developers should unit test their own work, and not just throw crap over the fence, I also believe that system testing should be left to testers who are really good at it.
July 23, 2014 at 12:24 pm
ArmenStein (7/23/2014)
Is DevOps related to the "engineering approach" that is being considered inside Microsoft right now?This is from a news article about the upcoming layoffs, including a quote from Satya Nadella:
Engineering teams have traditionally been split between program managers, developers and testers. Yet with new cloud methods of building software, it often makes sense to have the developers test and fix bugs instead of a separate team of testers, Nadella said in the interview last week. Some of the cuts will be among software testers, said one of the people. (emphasis mine)
This quote really concerns me. While I agree that developers should unit test their own work, and not just throw crap over the fence, I also believe that system testing should be left to testers who are really good at it.
I agree. There is a whole heap of understanding of the different types of testing. This makes me think that it was said because one of the following:
a) MS testers were duplicating unit testing of the developers.
b) MS developers were allowed to reject defect maintenance to others.
c) Satya Nadella is making up improper justifications for the job cuts.
I suspect it is c.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
July 23, 2014 at 12:30 pm
From my knowledge of one product team at Microsoft, a) is definitely not true, and b) doesn't seem to be true either.
Viewing 15 posts - 1 through 15 (of 20 total)
You must be logged in to reply to this topic. Login to reply