Comments on: What’s really different about “Enterprise” https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/ Open information and technology. Tue, 22 Oct 2013 22:11:17 +0000 hourly 1 http://wordpress.com/ By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-5016 Tue, 22 Oct 2013 22:11:17 +0000 http://quoderat.megginson.com/?p=534#comment-5016 In reply to Zoe.

Nicely put.

]]>
By: Zoe https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-5014 Tue, 22 Oct 2013 18:38:51 +0000 http://quoderat.megginson.com/?p=534#comment-5014 One huge difference is simply age. Web developers tend to be in their mid-to-late 20s. Enterprise tends to be at least ten years older. There’s a lot of past-tech-experience there, people who’ve lived through many good and awful trends and been burned by fast changes. They also have a different lifestyle and goals that are simply the result of growing up and wanting to step back, slow down, and appreciate the bigger picture. As we get more experience, we tend to think more of systems rather than atomic parts, and start to realize how important things like change management really are.*

Enterprise selects for older, more staid individuals who have that specific perspective. Web definitely does not; there’s no consequences in web for becoming obsolete — except winning a new contract to build something new that isn’t. Websites and apps have an average turnaround of about three years (for agency work, anyway.) People who are looking to break barriers and find the newest thing are rewarded in web. They are anathema to enterprise.

* I’m an early-30s web developer in an old enterprise environment. I consult outside to keep up on the trendzz. I often chafe at the pace of the work inside, but am starting to understand why it’s so. Sometimes it’s for dumb reasons; but sometimes it’s very necessary, and it’s as much about people as it is about technology. Which isn’t a bad goal for technology.

]]>
By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4373 Fri, 24 May 2013 11:57:53 +0000 http://quoderat.megginson.com/?p=534#comment-4373 In reply to Gavin.

Thanks again, Gavin. I’ve only just started reading the IBM series on evolutionary architecture and emergent design. One challenge for evolutionary architecture in the enterprise — and especially the public sector — can be long hiring and procurement cycles. It’s tough to discover pain indicating the need for a new component and dev team during iteration 3, then wait 3-6 months for a new hire or for an RFP to go out (with luck, you’ll have them by iteration 30).

I’m sure that’s a problem that can be solved — needs to be solved, in fact — but again, it’s very different from the startup/web world, and I think it’s one reason that the Big Design Up Front has such staying power in the enterprise, even though it’s almost always wrong: the BDUF at least ensures that you start out with a lot of resources, which you can later reshuffle as the architecture evolves.

]]>
By: Gavin https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4368 Thu, 23 May 2013 22:42:33 +0000 http://quoderat.megginson.com/?p=534#comment-4368 In reply to David Megginson.

My responsibility was the architecture, and it was my first exposure to enterprise level concerns. You had to understand the domain very thoroughly to be effective and it was more about functionality and “maximizing global investment” than pushing out edicts encapsulated in TOGAF diagrams. I was working at a regional location so most of our build involved connecting to the various “utilities”, and helping the Ops guys do their stuff more efficiently through automation.

My mandate was basically to avoid building anything locally if you can, but if you did then the guidance from the high priests was a bit or miss. In one case they insisted using an Model Driven Development approach complete with ESB for a simple ETL problem. That turned out to be a bit of a train wreck (drawing software instead of writing it has never turned out well for me) and it ended up being a franken-architecture that will live on as my legacy unfortunately (sorry guys!). On other occasions we were able to do things really well because of the organisations ability to focus investment (they have a great reporting solution used across multiple lines of business).

To answer your question, yes I agree this is a difficult thing to get your head around as an enterprise and I am surprised how well it works sometimes to be honest. In terms of a practical approach I like what Neal Ford has been saying about evolutionary architecture (http://www.ibm.com/developerworks/library/j-eaed1/), but I think the tricky part is spotting the accidental complexity when you are flying at low oxygen levels.

]]>
By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4361 Thu, 23 May 2013 15:49:40 +0000 http://quoderat.megginson.com/?p=534#comment-4361 Joshua: here’s my (very harsh) criticism of web developers from the original posting:

“The benefit of all this mess, though, is that an enterprise application designer is always thinking about distributed data, something that web developers talk about don’t always really get. It’s hard to imagine a CMS like Drupal or WordPress — that naively assumes it can keep all the information that it presents in its own (preferably MySQL) database — coming out of the enterprise.”

So basically, I’m saying (again, overgeneralizing) that web developers are completely clueless about data and integration.

]]>
By: Joshua Drake https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4360 Thu, 23 May 2013 15:32:07 +0000 http://quoderat.megginson.com/?p=534#comment-4360 Why didn’t you do the same thing for the web developers? The good and the bad.

Good: Up to date on the latest tech. Passionate about technology.

Bad: Get bored if things don’t work in the first 30 minutes. Have no idea what would happen to their business if all their clients’ credit card numbers were pilfered by a SQL Injection attack. Or don’t have a business because they’d rather make it look cool than provide actual value.

The above doesn’t apply to everyone of course, but the article appears biased, especially as it starts off with claims to have straddled the fence and therefore bring a balanced viewpoint.

]]>
By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4356 Thu, 23 May 2013 12:03:44 +0000 http://quoderat.megginson.com/?p=534#comment-4356 Gavin: excellent point about portfolio management — if you don’t mind, I’m going to steal that term to make me sound smarter than I really am.

In principle, the portfolio of apps is the responsibility of the Enterprise Architect, but I fear that the enterprise-architecture field isn’t really getting a practical grip on it yet (other than drawing diagrams and trademarking new process names). What have you observed?

]]>
By: Gavin https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4349 Thu, 23 May 2013 05:01:57 +0000 http://quoderat.megginson.com/?p=534#comment-4349 Well, I’m just finishing up a stint at a large bank firmly in the Enterprise camp and before that I was with startup (software vendor). I think you’ve nailed it in terms of characterizing the main concerns of the Enterprise dev. A lot of it is about integration. “No surprises” is key because it needs to be robust and battle hardened.

One thing I would add is that while there is a lot of focus on getting maximum efficiencies out of the devs, there isn’t as strong portfolio management. We are good at building stuff predictably, but is it the right thing to be building? It is exacerbated with the project funding process which starts mid-year. You effectively are asking $x for a project that won’t start until 15 months away. Can you really quantify the value and effort for something that far out?

One idea I’ve heard of that I’d love to experiment with, is to have cross functional teams lobby for funding much as a start-up would pitch to an Angel investor. Projects would be funded based on a business case, but only enough to get to MVP and you have to be able to demonstrate value in 3 months max. Kind of a lean intrapreneur model.

Unfortunately, I’ll never get the chance to experiment because I have resigned to go back to a startup…

]]>
By: John Croft https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4348 Thu, 23 May 2013 01:58:12 +0000 http://quoderat.megginson.com/?p=534#comment-4348 In reply to Greg Fish.

As I can’t directly reply to your reply, I will put this here. First, statistical information about the quality of students is publicly available, and you can go check it out just like I did this past year as my son applied to college. Second, nothing is more self-selecting than employment, and that’s the point; do you really think the “average” Google employee represents the “average” enterprise IT employee?

]]>
By: madexperiments https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4347 Wed, 22 May 2013 23:51:13 +0000 http://quoderat.megginson.com/?p=534#comment-4347 In reply to jniehus.

I think “dedicated and passionate” has been confused with scoring high in the ass-in-the-chair metric…

]]>
By: Greg Fish https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4346 Wed, 22 May 2013 23:47:45 +0000 http://quoderat.megginson.com/?p=534#comment-4346 In reply to John Croft.

I don’t think you can unilaterally make the evaluation of how good the average UF student is compared to the average MIT student without hard metrics. Likewise, you’re comparing who attends what college (a matter of prestige and often self-selection) to a job or a contract. This is comparing apples to tangerines.

]]>
By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4336 Wed, 22 May 2013 14:49:31 +0000 http://quoderat.megginson.com/?p=534#comment-4336 chrishhr wrote: “As it reads, its simply passing blanket judgement on an entire tier of developers”

Actually, it passes blanket judgement on two entire tiers of developers. It’s just as harsh on web devs as it is on enterprise devs, though the web devs haven’t been the ones reacting in comments (probably because they haven’t discovered the posting).

Perhaps some more perspective would be helpful. I’m writing this from the POV of an architect designing systems. While I deal with individual developers, I can’t design for them individually, because developers change jobs; instead, I have to design for the organisation. That means that I have to have a mental model of the kinds of people who will be building, maintaining, and operating the system.

With that in mind, I have to design for a hypothetical average developer in both camps. Of course, averages are unfair to individuals — someone (I’m too lazy to look it up) once wrote that the “average” person has one breast and one testicle — but over and over again, I’ve found that I have to adjust my designs for the two worlds to avoid disaster:

  • Web developers work faster, know lots of tech, and take a lot of initiative. For a specific coding task, I typically assume an “average” web dev will work about 10 times as fast as an “average” enterprise dev, produce better code, and have a much-larger IT skill set. They can change a system quickly if it’s not working, and they’re happy working with incomplete requirements, so the initial release can go up faster — for a web dev, every release is just a step towards the next one.
  • Enterprise developers are better team players, consult more, and communicate better. I typically assume that the “average” enterprise dev knows how to coordinate with other teams, understands the importance of shared artefacts (whether requirements docs, UML diagrams or Agile stories), and gets that there’s more to software development than just coding (product management, documentation, sustainability, etc.). They need a more-stable product to work with, but once they have it, they’ll keep it running, and will make sure that it works with everyone else’s systems, too.

Two different kinds of audiences == two different kinds of design. Of course, there are many individual web devs who are good communicators, and many individual enterprise devs who are hotshot coders, but when I’m designing a system that might be in use for 10+ years, I can’t design for the outliers.

]]>
By: chrishhr https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4335 Wed, 22 May 2013 14:26:45 +0000 http://quoderat.megginson.com/?p=534#comment-4335 Yet you insist on continuing to over generalize….

“Of course, there are people like that in enterprise, too, but it’s hard for them to last, because the enterprise can really wear down your soul and make you hate coding.”

This may be your experience but that doesn’t make it everyone’s experience. Are you saying that non-enterprise devs never get worn down? Really? At best you can say this is a more common occurrence for developers in any large scale organization. That would be reasonable.

This article was clearly posted before being well thought out, and you’re paying the price in the comments section. You get kudos for encouraging the discussion.

Would be fantastic if this post took the occasion to look at the different focuses of the two camps and what each can learn from the other. As it reads, its simply passing blanket judgement on an entire tier of developers, which is patently unfair. If you’re going to back down from the generalizations, then stop making more of them. If you find yourself in a hole, stop digging.

]]>
By: John Croft https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4334 Wed, 22 May 2013 14:06:20 +0000 http://quoderat.megginson.com/?p=534#comment-4334 In reply to Greg Fish.

Ok, you don’t grok statistics. Both MIT and University of Florida, one of the top party schools int the country, have students that belong to bell curves, but they are independent bell curves. The %80 of “average” MIT students are all ahead of the %80 “average” UF students. The better point, but one which the author already conceded, is that with ten’s of thousands of students UF does have some brilliant students on campus doing very good work.

]]>
By: David Megginson https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4332 Wed, 22 May 2013 13:43:24 +0000 http://quoderat.megginson.com/?p=534#comment-4332 A lot of the comments are unwittingly duplicating the same point that I made in the first half of the post (about web developers not getting integration and complex environments). I’ll take the fact that people are repeating what I wrote (in different words) as a complement. 🙂

The work-life balance issue that a few comments have brought up is also similar to what I wrote in the second half (though perhaps with too much condescension). The difference between a typical enterprise dev and a typical web dev is that the (stereotypical, overgeneralized) enterprise dev sees coding itself as work, while the (stereotypical, overgeneralized) does not. When this archetypal web dev gets home from “work”, she curls up with a new book on NodeJS instead of a spy novel, because that’s what she’s been looking forward to all day — that’s not work for her; it’s relaxation. Think of the airline pilot who rushes home on non-duty days to fly his Piper Cub instead of heading for the golf course — it’s the same idea.

Of course, there are people like that in enterprise, too, but it’s hard for them to last, because the enterprise can really wear down your soul and make you hate coding (simply because big organizations, public or private, have such a high transaction overhead). I’m at the end of deep involvement in a complex, high-visibility, 3+-year enterprise project right now, and it’s going to take a couple of months before I actually like coding again. At this moment, I more resemble the enterprise developer in my posting than I do the web developer.

]]>
By: chrishhr https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4330 Wed, 22 May 2013 13:20:53 +0000 http://quoderat.megginson.com/?p=534#comment-4330 I would also add that some of the problems enterprise developers are solving are fantastically complex and would blow your mind. I cannot possibly explain some of the complex work flows that I’ve seen translated into reliable and clever applications by A players at my institution. Enterprise is about more than shopping carts and css3, you are solving unique problems that don’t have established design patterns. You don’t get a lot of credit either, since most enterprise developers either cannot (confidentiality) or prefer not to bear their developer souls on a blog or some such.

]]>
By: Chris https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4329 Wed, 22 May 2013 13:16:29 +0000 http://quoderat.megginson.com/?p=534#comment-4329 As an enterprise developer I take offense at some of the generalizations made in this article. I work at a large academic institution with dozens of decentralized development groups in addition to a few large centralized IT and data groups. The bit about consumer-oriented developers not understanding data integration as practiced in enterprise rings true, but not for the right reasons. The system I developed/maintained accesses data from at least 6 different sources, mostly relational, some non, and others through web services. This isn’t legacy data at all, its real data being generated by other systems that I must interact with.

Like jniehus said above, I choose to not work after hours or on into the night because I have a wife and two small kids and my life is not solely about being a developer. I am highly productive and get a lot done and don’t feel compelled to work until midnight jacked up on mountain dew hacking out the most awesomest code.

The bit about there not being any good developers in enterprise is an absurd generalization. There are A players here, but there are a lot of B and C players too. I find enterprise is slow to adopt bleeding edge technologies (we are only now getting away from IE7) and so the speed at which things move forward is slow. As a consequence enterprise developers are often not as interested in learning and self-educating in their craft. The B and C players more often come with a certain set of skills and never evolve. But you are mistaken if you don’t think there are A players in enterprise that are churning out great code and even better ideas.

Bottom line is the set of problems enterprise developers are solving are quite different, and it requires different focus. Some of us prefer the security of employment in a large, stable organization rather than the unsure nature of indie start ups and consumer oriented/social/e-commerce work.

Some day when i ride off into the sunset with my retirement account fully funded, I may develop independently, but that’s after the kids are through college and I have other arrangements for health care, etc. etc. Until then I am making good money being an A player in enterprise.

]]>
By: jniehus https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4323 Wed, 22 May 2013 05:58:48 +0000 http://quoderat.megginson.com/?p=534#comment-4323 “…but on balance, coding for most enterprise employees (as opposed to outside contractors) is a 9–5 drudge job that they’re happy to leave at the end of the day…”

Way to keep the stereotype going…

Im only happy to leave at 5 because I have better things to do with my life, like play with the kids, read books, and complain on blogs.

Henry Ford figured out over 80 years ago that working more than 40 hours a week is a waste of time for the average person. Personally, its been my experience that I’ll figure out solutions to problems more often during “off hours” while doing something completely different then sitting around staring at a screen full of code.

If a “dedicated” and “passionate” engineer has to spend 12+ hours a day and work weekends to accomplish anything, that just tells me they fuck up a lot.

]]>
By: Kyle https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4322 Wed, 22 May 2013 04:09:44 +0000 http://quoderat.megginson.com/?p=534#comment-4322 In reply to David Megginson.

This would be very interesting to see. I like to imagine that some newer ‘enterprise’ operations such as Google are like this on the inside. A sparse set of services with well defined API’s for interaction.

I think the challenge is the mind set in the enterprise which I’ve found to be more about synchronisation of duplicated data rather than querying over duplication.

Also cost. I guess a lot of companies are focused on their business, and will put into IT resources based on the short term gain in efficiencies, not that extra cost for a gain in long term scalability or maintainability.

]]>
By: Greg Fish https://quoderat.megginson.com/2013/05/20/whats-really-different-about-enterprise/#comment-4320 Wed, 22 May 2013 02:21:13 +0000 http://quoderat.megginson.com/?p=534#comment-4320 Wow, the condescending pats on the head about all those passionless, unenthusiastic developers in enterprise just doing the best they can in their 9-to-5, waiting to dash for the exits could not be more insulting if you tried.

I hate to tell you this but simply by the laws of statistics, most developers will be mediocre, no matter the company. They’re about 80% of the bell curve, so the idea that as an independent or as a start-up, you’re going to have all this unbridled passion and expertise that’s heads above enterprise development is going to be wrong 8 times out of ten.

Why doesn’t enterprise have many rock stars? What field is littered with rock stars? If there was an organization of nothing but rock stars, I haven’t seen it, and most likely it would be torn apart by big egos of hotshots who all think they know better. Again, that 80% of the bell curve is working against you…

One of the biggest things that enterprise offers is breadth. You may be working with everything from integrating with a mainframe, to writing RESTful services with JSON APIs means to manage data in a cloud you just built. And if you follow Agile and XP, odds are, you’ll get exposure to all of this in one form or another. Projects in which you get to rule your little fiefdom and write everything from scratch will not teach you this, so lets not bash the skill set of an enterprise consultant or full time dev because of the size of the teams.

PS: I often find that people who say that a certain group in the profession doesn’t get something, proceed to dismiss certain tools for integration (though you really dismissed communication protocols/formats, a design pattern, and a data warehousing process in the same breath with no differentiation) with no detail as to why they’re bad, rarely inspire confidence in their abilities. It’s one thing to have a different opinion about a complex topic, but here you didn’t even try.

]]>