End User Development

We’ve had a few (sometimes lively) discussions about ‘our profession’, roles and responsibilities, IS/IT departments etc.

I thought I would just state my point of view and how that drives many of my posts in these sorts of areas. ‘Our profession’ sits somewhere around the end user developers, perhaps slightly more technical and slightly less business focused. What do you think?

I firmly believe that End User Development (EUD) is vital. I also think it should be encouraged and supported, and I know from research and personal experience that in many orgs it is not. Lack of user involvement is the number one reason for development failures.

I also believe that Excel/VBA is one of the (if not _THE_) most important end user development tools. Technically it may not be the best I accept, but culturally, in many of the numerate business disciplines it is the most familiar.

I totally accept that much EUD is not the best quality, however I would argue that if the customer is satisfied then its good enough. As the customer is the developer this only becomes an issue if systems get deployed beyond their original design brief. (assuming the user/dev is a responsible professional)

Much as I like VSTO and .net and like developing in them personally, I don’t really see them as EUD tools.

A refresh of the VBAIDE on the other hand would be a massive boost to EUD, as would integrating all that VSTO/VSTA/.net goodness into the basic Office setup and Excel and Access and maybe Word.

Those techs that I’m a bit lukewarm about are those that I see as having limited use to the EUD world which I see as so important. As IS/IT depts see Office as EUD and wouldn’t lower themselves to touch it, I wonder what will change to make these techs more popular – more responsibility to end users? or massive cultural change to IS/IT to find the love for Office dev?

Do you think EUD is important?

Do you think it is widely encouraged in the organisations you know?

How do you think these inbetweenie techs like VSTO, Excel services will get adopted?

Other thoughts?

cheers

Simon

Advertisements

19 Responses to “End User Development”

  1. jonpeltier Says:

    EUD is important, because it fills a gap between “just spreadsheets” and monster ERP applications, and it’s relatively quick. And as you say, if it’s ugly, well, the users aren’t too concerned.

    I started out as an End User, then advanced to Power User, then to End User Developer, and now it seems I’ve become a Developer. But I still exist much closer to the end users than to the conventional definition of developer. Kind of an EUD for hire. I’m sure this career path is familiar to many of ‘us’ (Office developers).

  2. Biggus Dickus Says:

    Jon:

    “I started out as an End User, then advanced to Power User, then to End User Developer, and now it seems I’ve become a Developer. But I still exist much closer to the end users than to the conventional definition of developer. Kind of an EUD for hire. I’m sure this career path is familiar to many of ‘us’ (Office developers).”

    Yep – you described my “career path” exactly ……

    Dick

  3. Charles Says:

    I was first involved in End User Computing in the 1970s (dialup teletypes accessing a timesharing mainframe at 10 characters/second, programming in Basic). The applications were mainly characterised as Decision support/business intelligence. And even then as the apps became larger and more business-critical there was a need to migrate them to the IT department.
    The software we use today has (mostly) changed significantly, perhaps more than the attitudes and needs of IT and End users.

    So I dont see the need for EUD going away anytime soon.
    The technology used for EUD also moves slowly. I have seen dozens of programming languages and software packages hailed as the killer app for EUD: but very few have had any enduring success.

    Excel/Office works well as a development environment because it has:
    – a grid-based point and clickish information and calculation environment that end users can use to create useful things.
    – a rich library of useful objects that can easily be embedded in a variety of programming environments ranging from VBA to C and NET.
    – easy ways of accessing Corporate data via RDBs etc

    Some applications (currently a fairly small percentage?) do need more web/cloud services/platforms/environments, and if Excel/Office does not go along with these needs it will be excluded from some of these applications.

    But any serious replacement for Excel/Office will need to match its overall end-user friendliness, usefulness and power.

  4. Harlan Grove Says:

    Anyone else remember QuickBasic or the Quick* series of development systems? They were targetted at EUD. What’s the current equivalent? VS Express!? Microsoft either no longer understands EUD or no longer cares about it. Given the FOSS alternatives and potential users’ unwillingness to pay for low-end development systems, I’d guess the latter.

    After Microsoft abandoned the non-Office EUD market, how surprising should it seem that they’d let the Office EUD market stagnate? IOW, how many additional Office or Excel SKUs would they sell by updating the VBE? Would it be worth the cost?

  5. Simon Says:

    Harlan – how topical – today is the anniversary of the first basic program in 1964:
    http://www.wired.com/science/discoveries/news/2008/04/dayintech_0501

    And I think the IDE investment would repay (and it wouldn’t be that expensive, just a bit of cut and paste ;-))

  6. jonpeltier Says:

    @Simon …And I think the IDE investment would repay…

    I don’t think MS would agree, at least about the VBA-IDE. The current IDE is so old and creaky that nobody there wants to touch it.

    Where it might pay off is by taking a (slimmed down?) version of the newest VS IDE, and pack it with VBA, VB.Net, and C# as the new office programming environment. That would ease the transition of EUDs like myself to dot-net, preserve some measure of back-compatibility, while maintaining the self-reliance and deployability of EUD-type Office projects.

  7. Simon Says:

    Jon
    they have the VSTA .net editor in one of the new fangled johnny-come-lately apps, either OneNote or Infopath.

    I just checked its Infopath, I had a little mess with it, it looks good. They just need to connect that up to the Excel and Access OMs and make sure all the junk needed to run it is distributed as part of Office and I’d be happy. (oh and backwards compatibility (with VBA) would be nice!)

    Of course as InfoPath isn’t one of my target apps I couldn’t give it a proper test.

  8. Dennis Wallentin Says:

    As long as Excel is based on COM technology .NET can never be fully integrated with Excel.

    Given the significant huge investments MSFT is doing in the .NET development platform (including Office) I cannot see any logical reason why MSFT would (try to) implement .NET into Excel.

    A far better path is to let .NET & COM communicate as best as they can which every new version of .NET actually supports better and better.

    Again, it’s not a question within the foreseeable future to replace VBA with .NET. Instead, it’s a question of adding .NET into the development toolbox.

    Those of You who expect that someone else will help You out to learn .NET will be disappointed. There exist no shortcuts only hard work but in the long run it will be worth it on all levels.

    Kind regards,
    Dennis

  9. Stephen Bullen Says:

    There’s a school of though that any language can appeal to an EUD audience, just so long as the macro recorder can spit out in that language. There’s also a school of thought that exposing someone to .Net will somehow magically make them a better programmer. Hence it would seem that if MS could just get the macro recorder to spit out C# or VB.Net code, everything would be perfect.

    Obviously, that can’t be the case – bad code and bad structure (from an EUD domain expert that knows no better) is the same in any language, and C#/VB.Net is currently just Darwinian (weaker developers are effectively excluded by the barriers to entry) rather than naturally forcing everyone to write better code. And we know that recorder-spit is some of the worst code ever.

    In our organisation, yes, EUD is encouraged (it’s the development equivalent of parallel processing), but also ‘controlled’ when there’s a chance of the sheet being used widely. And by ‘controlled’, I mean my team providing guidance and advice, such that when/if it starts to get a wider audience, we could take it on board.

  10. Harlan Grove Says:

    Just for kicks, other than eyewash and built-in regular expressions, what would an EUD gain by spending time learning .Net?

    Yes, I know some of you may be rolling your eyes, but as someone who has written many special purpose numerical programs all of which using standard (text) I/O, several graphical applications in spreadsheets (not just Excel) and a few with Python or Perl using Tk, I haven’t spent much time figuring out what .Net is beyond something vaguely like Java VMs.

    Does it make accessing databases easier than using ADO? Does it speed arithmetic calculations? Does it eliminate memory allocation problems? Or does it just provide lots of controls I could easily live without?

  11. Doug Glancy Says:

    Harlan, As a modestly talented end user developer, the thing I like most about .Net is not having to work with API’s – .Net exposes so much more of them than VB/VBA. So, I’ve found creating a DLL addin much more enjoyable in .Net than in VB. (On the other hand, actually getting it installed on other computers is very difficult so far.)

  12. Mike Rosenblum Says:

    I agree with Doug here: the .NET Framework capabilities itself exceed the VBA language by a wide margin. Still, VBA certainly does the basics very well, so there might not be a lot compelling for most. But once you get used to .NET, it is hard to go back…

    The killer-feature about .NET though — in my opinion — is its strong-typing capabilities. In VB.NET it’s called ‘Option Strict’ and it’s every bit as important as using ‘Option Explicit’. If any programmer were to propose not using ‘Option Explicit’ they’d be drummed out of town… But proposing to do without ‘Option Strict’ is just as bad, honest. Once you have this, you will not want to go back.

    That said, Excel was developed in a pre-‘Option Explicit’ world, using a lot of Variant return types and the like. In VBA you lose IntelliSense when this happens; in .NET the compiler will complain and tell you to use an explicit cast. In this regard, .NET is safer, but is annoying until you get used to it.

    I’m guessing that Microsoft is working on this, but in my opinion, the keys to making .NET a platform with no drawbacks with respect to VBA would be:

    (1) Integrating .NET into Office as VBA is integrated today. I guess with InfoPath breaking the ice with VSTA, it’s probably on it’s way…

    (2) As Stephen Bullen said, I think it definitely needs a macro recording capability that can record in VB.NET and C#. But I actually think that this would actually be a huge step forward. Part of the reason I think this is that I think it could be done even better: no more use of Range(“…”).Select, Selection.DoThis(), Selection.DoThat(), but could instead use dim range1 As Rng = Application.Selection, range1.DoThis(), range1.DoThat(). I’m guessing wildly here, but this is how I would do it. Once you have this, it would feel very comfortable.

    (3) Excel needs a strong-typed object model. At one level it could simply be a wrapper for the existing object model, having strong typed results. For example, Applicaton.Worksheets(“…”) should have an ‘As Worksheet’ return type. Range.Cells(), and other methods also come to mind. Anywhere you lose IntelliSense in VBA is an even bigger hassle in .NET. (Esp. in VB.NET, which has a somewhat awkward casting syntax.)

    Anyway, I think that .NET is just superb. There’s a big learning curve when using Excel, but the strict-typing environment is very important for larger projects. I still kick around VBA code from time to time, but now that I’m used to .NET, it’s really hard to go back…

  13. Dennis Wallentin Says:

    Doug,

    “I’ve found creating a DLL addin much more enjoyable in .Net than in VB. (On the other hand, actually getting it installed on other computers is very difficult so far.)”

    Could You elaborate with it? Do You refer to VSTO?

    Kind regards,
    Dennis

  14. ross Says:

    “Does it make accessing databases easier than using ADO? Does it speed arithmetic calculations? Does it eliminate memory allocation problems? Or does it just provide lots of controls I could easily live without?”

    Yes, not really, yes, yes, with a clause, you could do with out them, but if there there you would want to use them.

    Here is the killer thing with .Net – it’s very easy and it’s very quick. Last week I wrote a little video app to look at my golf swing, it tock about 2 hours to down load the direct x SKD then about an hour to write the code, amazing!

    I love .Net!!!!!!

    >>Could You elaborate with it? Do You refer to VSTO?
    Dennis I tired to write a managed com addin, I used your guide, it was good, but I could not get it to install on any other PC, I think in is a issues the security access, I did find some code to help allow assess, but it’s fallen off the wagon at the mo – I’ll get back to it when I have the time!!

  15. Simon Says:

    Lots of interesting points about the tech. nobody seems to be discussing culture and accessibility.

    How good .net may or may not be is truly irrelevant to the legions of EUDs. They will never get access or support to use it .

    Or are you all saying that accountants and marketeers and other business pros get Visual Studio everywhere you go? Thats not what I see.

  16. Doug Glancy Says:

    Dennis, It’s a dll form called from an Excel addin. I installed it successfully on one other machine, when I used regasm /codebase /tlb on my dll and regasm /codebase on the VS-generated Interop.Office.dll. But when I tried it again on a virtual machine – Win XP, XL 03 Net 2.0 – I didn’t get all the way there. I got the reference to the dll to work, but I think there was a runtime error – I’ve forgotten now. I meant to look on your web site for help, but haven’t gotten back to it. Understand that I barely know how to do this type of thing in VB, so the extra layers (put it in the GAC? regasm, strong names, etc.) are confusing.

    Simon, working for a US nonprofit, we can get 6 very-low-cost MS products every 2 years, e.g, single licenses for server products or 50 licenses for Office, so I actually do have VS/MSDN at work. But as the sole part-time, on-site webmaster/user support guy/EUD, I don’t foresee having time to learn to use it for the kind of “somewhat quick and fairly clean” solutions I currently create with Excel/VBA.

  17. Dennis Wallentin Says:

    Doug,

    Please feel free to e-mail me about it. But I believe that it’s a good strategy to use Excel/VBA instead of .NET in Your position.

    Simon,
    I can only represent myself and no other. So my point of view is from a business / developer perspective and nothing else.

    Kind regards,
    Dennis

  18. Harlan Grove Says:

    I think we need some definitions for what constitutes professional and end-user developers along with gradations between them.

    Development isn’t mentioned in my job description, but I’ve written and maintain 5 applications with about 100 users in 12 field offices across the US. I’ve provided more written documentation for 3 of them than the company’s IT department has provided for most of the in-house systems currently widely used. These 5 applications are either entirely Excel-based or Excel as a front-end for character mode programs.

    Maybe seeing sample code would help me. The sample code I’ve seen from the Excel developers’ team blog has been uninspiring. Looks like 20 lines of C# code is needed to do what 1 line of well-considered perl or python could do. But I digress. Do any of you know of sites with sample code that could show how useful .Net is?

    On a different tangent, how many 3rd party applications (i.e., applications developed by ISVs and sold to any interested parties, not just to clients who’ve retained the developer’s services) are written using .Net? Or is .Net essentially for in-house and specifically contracted development only?

  19. Dick Kusleika Says:

    “a little video app to look at my golf swing”

    I’d like a copy of that please. dkusleika@gmail.com

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: