Category Archives: ibm

On this page:

Thinking about a developer setup template

Development on one of my projects has gone in fits and starts. It’s been particularly challenging because the information about server configuration has been incomplete and scattered, trickling in as the IT architects sort out what’s going on and find people who can answer questions. The other developer and I are both new to this software stack (Websphere Portal, Websphere Application Server, FileNet, Enterprise Content Manager, DB2, Rational Software Architect). This means that we run into all the things that experienced developers take for granted: where to find documentation at the right level of detail, which ports and URLs to use (or even how to go about finding them), how to deploy our code, and how to diagnose and troubleshoot problems.

Stoic philosophy to the rescue. It’s no use whinging about not having all the bits and pieces up front. =) Besides, the people who set up the virtual images are people too, doing the best job they can while probably being pulled in a million directions or afflicted with the curse of expertise, forgetting the kind of knowledge they take for granted. It’s okay. It is what it is.

We’ve managed to figure most of the pieces out with a lot of poking around and experimentation. I’ve successfully deployed a web service, found sample code that can post a file to our Filenet object store, and written a web service client. We’ve previously been able to connect to DB2, so we should have all the major pieces now. The next step is to wire it all up with application-specific code.

I’m thinking of organizing all the bits and pieces of information we needed into a template that I can share with server administrators and developers next time we’re on a project like this. It would make work a lot faster and easier.

So, what do developers need? We typically need to:

Set up our development environment
software, licensing, config, source code control information, bugtracking, etc.
Orient ourselves on different environments
login/access/VPN details for integration, testing, and production environments; deployment procedure
Confirm that the service is running correctly
the full URL to the web-based administration console and to other web interfaces we can use, any hosts entries needed (for name-based virtual hosts, for example)
Log on the server and look around
VPN details, boundary firewalls, IP addresses, usernames, passwords, connection software (Remote Desktop? VNC?), file paths, location of log files
Write code
API documentation, software versions, ports, paths, usernames, passwords
Deploy and run code
file paths or upload interface, instructions on starting or restarting services
Test that things are working
web interfaces, ports, URLs, etc.

This could be a lot of information, and it might not be worth doing if you’ve got a couple of developers who can pick things up quickly. On the other hand, if you’re preparing a demo image that could be used dozens or hundreds of times for development, or if you gradually build this document over time, that could be pretty handy.

What’s in your developer setup template?

Photo (c) 2009 Mecookie – Creative Commons Attribution License

2011-03-15 Tue 20:03

Leveling up as a developer!

It’s satisfying adding a bunch of IBM acronyms to my “marketable skills.” They’re not that intimidating after all!

I spent the morning and part of the afternoon pair-programming with Bharat Boddu on a time-sensitive project involving an IBM software stack. It was a struggle in the beginning. Both of us were new to all of this, and the sheer volume of information available for Rational Software Architect, Websphere Application Server, DB2, and other parts of the stack was overwhelming. The simplest of things tripped us up because we didn’t know how to debug them. For example, we learned the hard way that adding the DB2 classes to the project’s classpath didn’t mean that they were part of the runtime configuration classpath when the web services were deployed to the server. I also spent what seemed like an hour trying to deal with this issue from the web service explorer:

IWAB0135E An unexpected error has occurred. 
302 
Found 

(Solution: Check the endpoints you’ve defined in your WSDL, or define new ones. example.org won’t work.)

Once we got over those roadblocks, things flowed smoothly. We used Rational Software Architect to define web services, deployed them on Websphere Application Server, and queried a DB2 database. We also figured out how to work with complex data types and lists for both input and output. We needed to figure out how to consume web services too, so I dug around until I found a web service defined by a WSDL that played well with our configuration. All these bits and pieces will come in handy when we start working on the real requirements.

I can feel myself learning all sorts of new things. I love these moments: the magic of concepts snapping together, like the way you reach out and find things right where you’re looking for them. And I’m slowly inching my way into another area of developer awesomeness: dealing with middleware, service-oriented architecture, and all sorts of other business-y things.

Here’s what I do well, and what I’m learning to do even better.

  • I’m good at breaking down tasks or ideas into small chunks that I can work on or test. This is really helpful when learning something new, because it helps me gain skills and confidence. It’s challenging when I can’t get enough of a grip on something to figure out what a good first task is, or sometimes what the intermediate tasks are, but once I get the hang of the internal logic of something, I can go pretty quickly. I’m getting even better at this by learning about more platforms and toolkits, and by learning bigger “chunks”.
  • Similarly, I’m good at breaking down unknown quantities and figuring out how to test parts of them. I can apply the problem-decomposition skill I use in development to estimating and planning, too. The book I recently read (How to Measure Anything) had great tips on how to strategically reduce uncertainty; reading that gave me a way to recognize what I’m doing and to improve that. So, for example, I can start with an estimate with a wide range, and I can break it down into the risky parts and some ideas on how to get a better understanding of the numbers.
  • I’m getting better at quickly prototyping applications. It’s fun taking a simple idea from a whiteboard sketch to a mostly-working prototype in a day. =D
  • I’m doing surprisingly well at juggling multiple projects. I’ve got two projects that are time-sensitive, and we seem to be doing okay. There are several projects in the pipeline that I’m working on, too. I keep personal notes on what’s on my radar and what I need to do, and I’m good at keeping folks up to date. I can get even better at this by spending more time to communication and planning, and possibly setting up some filtering rules for my inbox.

I’m glad my manager took a chance on these projects, even though I did have to work through looming panic. ;) (It gets much easier to deal with intimidating systems when you get going!)

This is good. I like this feeling. And I can still fit in sleep, presentations, blog posts, homework help, and sanity breaks. =) Hmm…

2011-03-09 Wed 16:51

Dealing with intimidating projects

I’m working on my first big IBM project, something that goes beyond Perl scripts and Drupal websites. My manager thinks it will be a good assignment for me. The component diagram looks like alphabet soup, and I haven’t worked with any of the pieces before. It’s intimidating.

Open source projects like Drupal or Rails don’t scare me as much, even though they require a lot of figuring out and hacking as well. I think it’s because I’m confident that I can figure things out from the source or from the Internet, and because I can hold more of it in my head. This project will involve quite a few IBM components, and I can’t work with, understand, or even remember everything. It’s big.

But I know this feeling of incipient panic, and I’ve dealt with worse before. It’s the same feeling I got as a teaching assistant at the University of Toronto, doubting myself because I was helping people learn something I was just learning about myself. I remember feeling uncertain. I remember feeling like an impostor. I felt like giving up. Then my department chair set me straight, and I made it through.

I can deal with this. My manager thinks I can handle it. IBM has a great support network and I’ve got plenty of mentors. I’m learning a lot from the other people on the team. It’s going to be okay. And at the end of the day, I’ll learn how to work with a pretty decent-sized IBM software stack, integrate with lots of middleware, work with complex web services, and maybe even turn things that scare me into things that I enjoy.

Here’s what I’m planning to do:

  • [X] Install Rational Software Architect and learn how to use it to view project designs.
  • [X] Learn how to use Rational Software Architect for web services.
  • [X] Figure out what I need to learn for Websphere Application Server or Websphere Portal to make the web services happen.
  • [X] Stay sane throughout the process. =)

2011-03-01 Tue 16:26

Working on estimates

Today I sat down with my manager to sketch my learning plan for 2011. I’ll start off with skills for IT architecture: defining scope and estimating effort for projects, designing and implementing systems, and leading the development. For development, I’ll focus on rich user interfaces, modernization, and integration. Next, I’ll learn more about solution development. In the second half, we’ll see if I can learn more about leading teams.

I spent most of the afternoon working on documents of understanding and estimates for upcoming projects. It’s interesting work, although I don’t trust my numbers quite yet. I’ll get better at estimating the more I do it, and I plan to prototype something quickly to check some of the numbers for the riskier parts. It’s actually quite fun doing this number-crunching. It’s like balancing my books. (Yes, I’m weird.)

It’ll be even more wonderful when I’ve gotten the hang of doing these things. Yay learning on the job!

2011-02-07 Mon 21:52

Lotusphere 2011 wrap-up

This was my first Lotusphere, and it was a blast. Lotus has such an active, passionate, experienced community around it. Heading to the conference, my goals were:

  • [X] Learn more about Lotus Connections adoption and APIs
  • [X] Learn about IBM’s strategy and innovations
  • [X] Get a sense of the ecosystem around Lotus (partners, clients, etc.)
  • [X] Meet people and make personal connections
  • [X] Brainstorm and share insights
  • [X] Show my appreciation for the cool work people do
  • [X] Learn more about conferences and presentations
  • [X] Fulfill my room monitor responsibilities

Here’s what I took away from the sessions and BoFs I attended:

Clients are interested in collaboration and have lots of adoption insights. We’re starting to see interesting case studies from clients. In addition to reporting excellent returns on their investments, clients shared qualitative feedback, such as stories of pilot groups who couldn’t imagine giving up the tools. Successful clients used executive support, communication plans, mentoring, metrics, incentives, role models, and other techniques to help people make new forms of collaboration part of the way people worked. sketchnotes from the birds-of-a-feather session on adoption

LotusLive is awesome. LotusLive currently includes web conferencing and parts of Lotus Connections. LotusLive Labs includes a technical preview of LotusLive Symphony (collaborative document/spreadsheet editing), Slide Library, and Event Maps. (I wish I’d seen Event Maps when I was planning my Lotusphere attendance!) Granted, Google Docs has been around for longer than LotusLive Symphony, but I’m curious about the ability to assign sections for editing or review.

Activity streams and embedded experiences are going to change the inbox. I don’t know when this is going to go into people’s everyday lives, but the idea of being able to act on items right from the notifications will be pretty cool – whether it’s in an enriched mail client like Lotus Notes or a web-based activity stream that might be filtered by different attention management algorithms. It’ll be interesting to figure out the security implications of this, though. It’s already a bad practice to click on links in e-mail right now, so full embedded transactions might encounter resistance or might open up new phishing holes. Project Vulcan is worth watching.

People are already doing interesting things with the Lotus Connections API. Embedding Lotus Connections content / interactions into other websites, adding more information to Lotus Connections, using different authentication mechanisms… people are rocking the API. The compliance API that’s coming soon will help people do even more with Lotus Connections interactions, too.

The next version of Lotus Connections will be even cooler. I’m particularly excited about the idea blogs and the forum improvements, which seem tailor-made for the kind of collective virtual brainstorming we’ve been doing in Idea Labs. Idea blogs are straightforward – a blog post or question with comments that can be voted up or down – but they’ll go a long way to enabling new use cases. Forums will also have question/answer/best answer support.

Sametime Unified Telephony rocks. I need to find out how to get into that. I like click-to-call ringing everyone’s preferred devices, easy teleconferences, and rules for determining phone forwarding.

Lotus Notes and Domino are getting even more powerful. XPages looks pretty cool. I’ll leave the rest of the commentary on this to other bloggers, as my work doesn’t focus enough on Lotus Notes and Domino for me to be able to give justice to the improvements.

The Lotus ecosystem is doing well. Lots of activity and investment from partners and clients.

Analytics + research = opportunity. Interesting research into attention management, activity streams, social network analysis.

Lotus geeks are a world of their own. It’s amazing to spend time with people who have immersed themselves deeply in a technology platform for almost two decades. There’s a depth and richness here that I don’t often find at technology conferences. There’s also a lot of tough love – people like IBM, and they’re not afraid to call us out if we’re not clear or if we seem to be making mistakes. =)

Notes from conversations

The hallway track (those informal encounters and chance connections) resulted in great conversations. For me, the highlights were:

  • Being adopted by various groups – so helpful for this Lotusphere newbie! Special thanks to @alex_zzz>, @belgort, @billmachisky, @branderson3, @ericmack, and @notesgoddess for bringing me into fascinating conversations.
  • Andy Schirmer walking me through his task spreadsheet with eight years of task data summarized in some very cool graphs. I want to have data like that.
  • Talking to Hiro about crowdsourcing and sharing the cool things we’ve been doing with Idea Labs.
  • Seeing all these people I met online. Finally getting to meet Tessa Lau, Bruce Elgort, Julian Robichaux, Mitch Cohen, and other folks, too! It’s great to be able to connect with people on a personal level, thanks to blog posts and Twitter. (How do people manage to keep up to date and remember all of this stuff? I felt all warm and fuzzy when people congratulated me on the recent wedding, and I wished I remembered more tidbits about them. Working on that!)
  • Being reminded by David Brooks and other early adopters that I’ve been around from the beginning of Lotus Connections. (Okay, David did that in a BoF.) It seems Lotus Connections has always been around. <laugh>
  • Joining the geek trivia challenge. The questions about television and comics went way over my head, but it was good to spend time with other folks, and I had so much fun. Well worth needing to figure out how to get back to the Port Orleans hotel after the conference shuttle service ended.
  • Talking to Jeanne Murray and Rawn Shah about a personal maturity model for social business. Some ideas: control of recipients, trust, transparency, conflict resolution techniques, asymmetric knowledge of others, persona separation/integration, acceptance of change; overlap with leadership maturity models; context dependency of decisions…
  • Talking to Bonnie John about the politics of writing about process improvement. Interesting thing to untangle. More thinking needed.
  • Swapping tips on Gen Y life with Julie Brown, Alexander Noble (@alex_zzz>), Brandon Anderson (@branderson3), and others

If I get to attend Lotusphere again, I’d love to be able to stay at the conference hotel. It would be much more convenient and I’d be able to go to more of the evening get-togethers. The chances of my being able to attend again probably depend on how much of the Social Business adoption consulting we’ll get to do over the next year, and I hope we do a lot. I’d also make time to check out the showcase. I missed it this year, thanks to all that chatting.

Next actions for me

For work, I’ll probably focus on external Web 2.0 / social media site development while other groups figure out the structure for social business adoption consulting. I’m looking forward to learning from the case studies, insights, and questions that people have shared, though, and I’d love to do more work in this section.

Here’s what I need to do for post-conference wrap-up:

  • [X] Go through my index cards and write additional notes
  • [X] Contact people I met and follow up on conversations
  • [X] Catch up with work mail
  • [X] Catch up with personal mail
  • [X] Write further reflections
    • [X] Time analysis
    • [X] Appearance and bias
    • [X] IBM and women in technology
    • [X] Reflections on careers, loyalty, story, and alternatives
    • [X] Presentation reflections (time for questions, presentation style, rapport, morning sessions?)
  • [X] Plan my next steps

Other Lotusphere 2011 wrap-ups you might like: Chris Connor, David Greenstein, Luis Benitez (Day 1, Day 2, Day 3, Day 4, Day 5), Andy Donaldson, Marc Champoux (… where are the female bloggers’ writeups?)

See also: Lotusphere social aggregator, Planet Lotus, Twitter search for #ls11, Twitter/blog archive

2011-02-04 Fri 16:04

Draft Lotusphere BoF on working with the Connections API

My birds-of-a-feather session got voted into Lotusphere 2011, so I’m preparing some conversation starters.

What should we add to this? What should we remove? #ls11