Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Businesses Technology

On Taking a Configuration Management Position? 28

Bravo_Two_Zero asks: "I've recently been offered a Configuration Management position as a lateral (with a slight incline) move. I'm darn happy as an admin, and my heart really lies with system engineering rather than the more mundane operational concerns. But, the position is new, so I would have a chance to define many parameters. Also, it could lead to a management opportunity (if I'm interested) much faster than my current admin slot. It's a hideously complex environment, but I already live through that as an admin. Mileage will vary widely, I know, but I was hoping there might be a school of thought or two from some devoted Slashdot readers who perform or have performed the position. What did you do, and what would you change? And, to the broader audience, is this something you think of as a growth field, or is this just another layer of administrivia foisted on us by an unrealistic development model? Is there a book or other resource that professional Configuration Managers consider a must-read?"
This discussion has been archived. No new comments can be posted.

On Taking a Configuration Management Position?

Comments Filter:
  • by jfdawes ( 254678 ) on Wednesday May 12, 2004 @09:54PM (#9135076)
    There's so many different development environments, servers, languages, libraries, protocols and file formats out there (and more every day) that any project is likely to run into several new ones.

    A huge problem with most of the newer ones is that they are half baked. When you run into a problem you can take days to sort it out: There's little documentation and what there is does not go into any depth, no-one is talking about it and if they are they most likely saying "I've got this problem no-one knows anything about, help"

    In this sort of environment, a good configuration manager could be priceless.

    (Come to think of it, I keep running into this Java configuration problem with WebSphere: log4j and struts want to use different, incompatible versions of commons-logging. Any ideas?)
    • I'll properly cite this to our Java dev guys:

      We aren't using Websphere, but we are using struts, commons-logging and log4j together in production without issue. In our case, struts is version 1.1.

      As a possibility, one dev guy offers:

      "So in Struts 1.0, I can see this as a potential problem if Struts wanted one version of log4j and commons-logging wanted another, but as of Struts 1.1, this really shouldn't be an issue."

      YMMV, because we aren't using Websphere, so i can't speak to all that package may lump
  • "But, the position is new, so I would have a chance to define many parameters."

    is that a politically correct way of saying it has scope creep?
    • by SpaceLifeForm ( 228190 ) on Wednesday May 12, 2004 @10:20PM (#9135233)
      More likely, it's a huge mess that needs to be straightened out. Having been there, if it truly is a mess, you are talking potentially years to get the CM functioning properly. In this day and age, management does not have the patience to do things right, they want instant results. So, before you take the position, you need to find out how screwed up the situation is already, and then tread lightly.
      • If that's the case, then another important question is how long you plan to stay in this position & how much is the job going to change over the next year or two.

        I'm currently in a similiar position that primarily involves cleaning up a relatively unmanaged collection of webservers. While your in the process of defining your position, you need to remember that once you've been around a year or two and have the mess cleaned up, the job & will probably change quite a bit.
        • Well, hopefully that is true. I'm lazy or don't have time, I want automated software to handle the brunt of the work. Once you have your CM set up to manage the users semi-automagically, you can then really manage the quality of your time that you apply to your CM on a higher level. A properly functioning, quality CM system is truly a very useful tool.
        • It's definitely not a politically correct phrasing. The situation is a horrific mess, with 10 years of past learning that production systems are really just powerful development systems. The stuff I'll get to define is, to a degree, where the boundaries lie, what's acceptable, who needs to pony resources to fix project X. There's no one doing that now, so there would be a lot of flex to define how it will happen.
  • by Kevin Stevens ( 227724 ) <kevstev&gmail,com> on Wednesday May 12, 2004 @10:26PM (#9135284)
    About a year ago I struggled with this same question, but my question was to move from a "real" development position at a small company with an uncertain future, to taking a configuration management type position at a large firm (lots more money, lots more opportunities, but in my eyes a demotion).

    I am happy I took it. My hours are normal now, im no longer held to killer unreasonable deadlines. I have my foot in the door to management as I manage and "own" many resources and get to make (and enforce) real policy decisions that affect a group of about 50 developers. Im still involved in development, but am generally not neck deep in the coding trenches. If I see a build failed for a reason I can fix, I just fix it. I also get to do those projects that as a developer you were just dying to do if only you had the time- essentially refactoring code on a mass scale- ripping libraries out and putting them in a central organized repository, and things of that nature.

    Must Reads:
    Configuration Management Principles and Practice (addison wesley)- Do everything in this book. EVERYTHING. Absolute must read.
    Software Configuration Management - Wayne Babich
    A bit dated, but short and worth a read.
    Mythical Man Month - Fred Brooks
    A good conf. mgr. needs to understand project management issues on software projects. This book is a classic.

    Other advice (if you take the job):
    Like any manager, you can be the developer's best friend or their worst nightmare. Processes are indeed important, but you must not make them burdensome. Red tape sucks for everyone, as well as unneeded, redundant and conflicting procedures.

    I am very happy with my decision. The only downside I really have is that even people in the tech industry do not know what configuration management is, and often picture you writing ini files or admining. I often just describe myself as a developer, which is somewhat annoying since its not entirely accurate. Organizations that employ configuration managers are recognizing that they cant just rely on developers pulling workflows out of their ass or software solutions to ensure that their builds remain consistent. I would think that as Software Engineering processes evolve, you will see more Configuration Managers in the future.
    • In my case, I had some admin experience and some development experience, when I tackled a job as a Conf. Mgr. My official title was "software engineer," but I was administering their Revision Control system, StarTeam [borland.com].

      Yes, I did get to influence a lot of policies, and I quickly learned that Conf. Mgmt is NOT a bunch of useless administravia. There are very real benefits to such systems, if they are used properly.

      Given the chance, go for it. It's a real eye-opener, and your development practices will nev
  • by inepom01 ( 525367 ) <inepom01.hotmail@com> on Wednesday May 12, 2004 @10:52PM (#9135475)
    As we outsource more and more, it is these types of positions that have to remain in house- make cheap offshore developers write all the code for some separate pieces of software and a few on-shore configuration management people make them all work together peacefully.
  • Depends (Score:4, Interesting)

    by duffbeer703 ( 177751 ) * on Wednesday May 12, 2004 @11:38PM (#9135741)
    I received a similar "promotion" in an environment where the level of fucked-upness is extreme... everybody is accustomed to doing whatever and sees me as a pain in the ass (at best). It really sucks.

    I was a system manager at an older company, which translates to a sysadmin who also was in charge of the datacenter and people in it. So I had to deal with HVAC and shit like that. That job was great, I had a team of 15 people of novice-intermediate skill levels who were highly motivated to learn and not get paged at 1AM. I left for more money, and it was the biggest mistake that I ever made.

    YMMV.
  • Follow procedures (Score:3, Informative)

    by $exyNerdie ( 683214 ) on Wednesday May 12, 2004 @11:39PM (#9135751) Homepage Journal
    I believe that in this position, you have to lay down procedures and make sure everyone adheres to them. Keep all documentation up to date and if possible, have checklists that people have to sign off...

  • Temperment (Score:3, Informative)

    by StarWynd ( 751816 ) on Thursday May 13, 2004 @12:34AM (#9136017)
    The biggest factor for how you'll do in such a position is not the technical aspect, but rather your personality and temperment. In order to have an efficient and well running system, you must lay down the ground rules and ensure that everyone follows them. This may require you to step on a few toes here and there. And there will be those who get pissed off at you for enforcing YOUR rules on THEIR project. At least that's how they see it. There will be those who think that CM is a waste of time and will put forth the minimal effort to conform. There will be those who ask you for unreasonable services time and time again. If you're okay dealing with the few oddballs and it doesn't bother you to say "No, you insensitive clod!" then you'll probably be just fine. Of course the majority of programmers under you will be reasonable and try to work with you.

    The most important thing is to make a decision and not budge from it. If you try to please everyone all the time, you will have a very unhappy existence.
  • Should be OK (Score:2, Informative)

    by Anonymous Coward
    CM and quality positions can end up being in conflict with developers, but there's no reason it has to be that way. Try and keep the developers onside as you implement new tools and processes. We sorted out CM here many years ago and while the initial phases were hard on people, the rewards became obvious pretty quickly.

    And don't be overly bureaucratic. You're adding red tape to everyone's lives. Do it slowly and be prepared to remove any of it that's not got an obvious benefit. I've worked on project
  • by doug ( 926 ) on Thursday May 13, 2004 @09:42AM (#9138662)
    Over the years I've migrated from embedded development to configuration management. I'm more of the geek who handles packaging, versioning, and so on, and not a manager. The biggest problem with this role is that short sighted management doesn't care about these details. While they understand that this stuff has to work right, it doesn't involve any of the features that are on slides used by marketing and sales. The money side of the shop use admin services, so they have a better understanding of system administration than configuration management. Often times I end up being the odd man out. But it also means that as long as everything works right, I'm pretty much free to do things how I like.

    When I was laid off a few years ago, I'm convinced that what put me on the list was that nothing I did was on the short term "must get done" list. But to the plus side, I was able to find a job in late 2001 in under 3 weeks. Just because it isn't highly regarded, doesn't mean no one finds it useful.

    Another issue with CM is that the packaging issues get interesting at release time. This means you will have to work around schedule slips because this is the last thing done before pushing the software out the door. And there are the endless "could you make a special release before 8am tomorrow" type requests. As an admin you're used to odd hours, but I hope you're not expecting this to be a 9-5 type position.

    I'm not going to say if you should or should not make the jump. That is a personal choice and only you can answer that. But I will say that if they want you to do CM with Visual Source Safe, forget it. Life is too short for VSS.

    - doug
  • There's another kind of "Configuration Management" in the context of the ITIL framework (IT Infrastructure Library, a very interesting collection of books about best practice in and around IT operations): There, configuration management is more related to infrastructure items (client PCs, servers, printers...) than to software development. You may want to google for "ITIL" or look at OGC (http://www.ogc.gov.uk/index.asp) and itSMF (http://www.itil-itsm-world.com).

    Take a look at ITIL - especially if you're
  • by ebh ( 116526 ) * <ed.horch@org> on Thursday May 13, 2004 @11:48AM (#9140202) Journal
    I've been a CM engineer for a bit over 10 years.

    CM is not synonymous with version control (and version control is not synonymous with CVS). Testers need to be able to verify that they're getting exactly what they're supposed to test, no more, no less. Release engineers (the folks that prepare the final distribution media) have to be sure that all the right parts are in all the right place before they start burning CDs. System engineers need to be able to verify that developers haven't given in to feature creep.

    But developers naturally don't want to have to deal with any of that. They want to write their code then move on to the next thing. Checkins, checkouts, bug tracking, requirements tracing, 100% reproducibility forever, these are things that developers tend to see as impediments. This can be especially true if your development staff, while good coders, are not conversant in the accepted practices of software engineering (as you'll often find with new graduates).

    Ideally, for your first CM job, you shouldn't have to fight these battles. Go into an organization that already accepts that CM is a necessary part of software development. Even better, try to join an existing CM team that already has a good process in place. Then, you can learn what CM really is, how to do it right and keep the most people happy in the process. After that you'll be better prepared to establish good CM in a company with an immature process and headstrong developer-kings.
  • Suggestions (Score:3, Informative)

    by metamatic ( 202216 ) on Thursday May 13, 2004 @12:31PM (#9140688) Homepage Journal
    In my view, the basic goals of CM are: (a) know what you shipped, (b) know when you shipped it, (c) deliver releases on time as predicted, (d) have product functionality decisions actually under the control of product management, and (e) drive product functionality from actual customer requirements.

    Set out like that, it seems blatantly obvious that that's the way things should be, but when you start trying to make things work that way you'll find that the required changes to working practices are controversial.

    Lots of developers will hate you. Developers like to be able to go fix any problem they happen to notice without telling anyone, and they hate documenting things. They don't test adequately enough to even ensure that their fixes work, far less prevent regressions. (Yes, that's gross generalizing and unfair to many, but I'm also a developer.)

    The QA and documentation teams will love you, for exactly the same reasons.

    If the current situation is a mess, which it probably is if they're desperate enough to offer the job to someone with no experience, it'll take at least a year to straighten it out.

    In fact, before accepting the position, make sure it isn't a Poison Chalice Project.

    Expect massive political battles, flamewars, perhaps even sabotage by primadonna developers.

    Make friends with other clueful people who've worked on CM and process improvements. Run ideas past them, discuss problems with them, and so on. They don't necessarily have to be people at the same company.

    Reading suggestions I haven't seen anyone else mention yet: "AntiPatterns [antipatterns.com]",
    "The Rational Unified Process [amazon.com]".

    Also, bear in mind that if you manage to fix things, and development suddenly start shipping reasonably bug-free releases on time, you are unlikely to get any of the credit. The prima donna programmers and project managers will get the glory.
  • I'm now at my 3rd CM position. I feel that my non-technical background actually provides me which a great ability to think big-picture and long term.

    - You are entering the world of the arcane. Many engineers and sysadmins keep the CM system at arms length, and don't really have a good concept on how it works. Most Managers have trouble understanding what CM Engineering is ('I double-click setup.exe and the product just installs. Can you do that?').

    - Because of the arcane nature of your position, promote your accomplishments. Make sure that people know what you do and that you are appreciated.

    - Your coworkers probably have alot of great ideas. Talk to them and see how they can help you to help them :)

    - Clean stuff up and keep it organized. Many developers, sysadmins and managers probably don't even realize that disorganization really interferes with getting even the basic stuff done more efficiently.

    - Work smarter not harder. Focus on creating procedures that are understandable by your coworkers and which can be easily replicated for other tasks. Write scripts and programs to use those procedures.

    - Document your procedures (and scripts) really well. You might want to put some of the debate and your reasoning for doing things the way you did them so that people will understand why you did things that way.

    - If the system is very complex, then something is probably wrong. Super complex systems are usually unnecessary, even if you have many products. If you have many products, chances are they have alot in common with one another. If you utilize those common features, organize the overall systems and keep the long term goals in mind, you can probably simplify things by a great amount.

    - You will end up loving or hating the person who came before you. Either way, you will probably need to get inside their head, even if they documented the systems well.

    - Likewise, the engineers will probably end up loving or hating you. If the engineers want want to get inside your head to know what the hell you were thinking, something is probably wrong.

    - Personality matters. Your coworkers will defer to you for many tasks, and you will probably end up managing people in some way.

    - The CM world can be very academic and uses too much industry jargon. Learn how to explain the system in normal human terms. Also, you will probably be at the center of alot of spirited interdepartmental debate, so will really help if you can explain your position in words that everyone can understand. Around here, many people have remodeled their house, have a garden or build things. "Pretend we're building a house. The foundation comes first, then the walls, plumbing and electrical systems. After those are in place, the interior decorators can do their thing." "Weed in the winter, then mulch, then plant. Oh yeah, and you need to water and weed once in a while."

    Oh, at my last CM position, I cleaned stuff up and automated so many tasks that I ended up scripting myself out of a position when the layoffs came (There was still a ton of OTHER work to do, but well... go figure). Be careful about that :)
  • 1) Get as many clues as to the nature of configuration management as quickly as possible.

    2) Try to determine what your bosses' understanding about CM. (Ask them.) Its generally going to be viewed as an obstacle and a "cost center". If they're not on-board in terms of its importance, my guess is that it will be likely to be a detrimental move.

    3) If they give you the time, get an idea of what changes you would need to make and then give them a gameplan before taking the job. If they're not onboard with
  • Random thoughts:

    Just one rule, get the highest person available to sign off on your rights and responsabilities. If no one higher that your direct boss will do it, forget it. (Minor variations: when you're part of a small team, but if you're big enough to nead CM, that's generally not a problem).

    As a guideline: Who, what, why, where, when. Answer those and you'll have a pretty good idea if you're being set up for a fall. As I said, get signed.

    CM is part of the so-called quality control. Who owns the qual
  • how is a management job not already management? And isn't an administrator a type of manager?

    Sheesh.

    I read the whole article on "What is Configuration Management?" and all I got out of it was that it "is both a management discipline and a process" -- which means that you're not a manager, and there is no process. In short, it's a buzzword role designed to sell you something. I mean sell you nothing.

"Look! There! Evil!.. pure and simple, total evil from the Eighth Dimension!" -- Buckaroo Banzai

Working...