tag:blogger.com,1999:blog-160119102009-03-18T10:53:13.146-05:00Rustici SoftwareTim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.comBlogger103125tag:blogger.com,1999:blog-16011910.post-18031304838820994422009-03-16T10:15:00.003-05:002009-03-16T10:35:56.094-05:00Calling all proofreaders...So, it's been a little while since we last made a post up here, but it's not because we haven't been writing. In fact it's just the opposite. Tim and I have spent the last few months doing nothing but writing a new version of our website. We're getting close to release and invite anybody who follows this blog to take a sneak peak. The site is currently available at <a href="http://beta.scorm.com/">http://beta.scorm.com</a>.<br /><br />Highlights include:<br /><ul><li>A much cleaner, modern look that should be a lot easier to read</li><li>A deep "SCORM Explained" section</li><li>More clarified and structured information about our products</li><li>No more <a href="http://www.scorm.com/images/welcomepic.jpg">pictures of serious people</a> who look like <a href="http://www.tvguide.com/tvshows/grace/photos/100581/5">Will</a></li></ul>Please send along any errors you find or suggestions you have. We're going to spend the next week or so cleaning things up in preparation for a final release.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-1803130483882099442?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-48455425655692536592009-02-23T11:14:00.002-06:002009-02-23T11:17:46.848-06:00Learning to SwimFrom my recent <a href="https://letsi.org/index.php?option=com_wordpress&p=26&Itemid=91">post on the LETSI blog</a>:<br /><br /><blockquote>They say that sometimes the best way to learn how to swim is just to dive into the water and see what happens (please don’t actually try this at home). Often, you can analyze a problem and get nowhere, but once you just jump in and start tinkering, the solution becomes apparent. That is the approach we’re taking in the LETSI Architecture working group right now...we are about to jump into the water. The LETSI Architecture Working Group has decided to take on a small project to see how well we can swim. We picked a relatively small and simple problem, but one that will provide a lot of value once solved. If approved, the Architecture Working Group’s first project will be to define a web services interface for the SCORM run-time API....The real goal here is not the the technical solution...The real goal is consensus on the project plan and intended deliverables. This project plan is intended to elicit comment.</blockquote><br /><br />Join in the discussion over there, it promises to be lively.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-4845542565569253659?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-3619711916990683602009-02-11T19:16:00.006-06:002009-02-12T08:18:31.791-06:00More Moodle ScreenshotsAs I mentioned a few weeks ago, we're using "between implementation" time (Brian's) to do some more work toward an elegant, pre-packaged integration between the SCORM Engine and <a href="http://www.moodle.org/">Moodle</a>. While Moodle is moving toward <span style="font-style: italic;">SCORM 1.2</span> certification, progress toward SCORM 2004 in Moodle is very limited.<br /><br />For certain clients (much of the government included), SCORM 2004 support is crucial. In discussions with one such client, I mentioned our pending integration and offered to share some images of it. Keep in mind, this is just an "alpha" version, but we're getting pretty excited about it. The next steps will certainly include making it a bit more "Moodly", but we're off to a good start.<br /><br />As you likely know, SCORM LMS's are obligated to do a couple of things well... import and delivery foremost among them.<br /><br />In the SCORM Engine, we try to make import as simple as humanly possible. Any SCORM course should be available as a zip file containing a manifest (AKA a PIF). So, step one to taking SCORM training in Moodle is as simple as selecting a SCORM package and hitting upload.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-3-734679.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 166px;" src="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-3-734675.jpg" alt="" border="0" /></a>One of the first places the SCORM Engine differentiates itself from alternative SCORM players is its ability to handle content that is technically non-conformant. Doing so requires that the SCORM Engine provide intelligent feedback during the import process. This sample course from ADL <span style="font-style: italic;">is </span>conformant, so there are no parser warnings, but feedback to the administrator is still important.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-1-1-723496.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 166px;" src="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-1-1-723492.jpg" alt="" border="0" /></a><br />Step two in achieving high levels of compatibility is delivering a course in the manner that best suits it. A big part of how we do this is through our Package Properties control. This allows us deliver the course in different window structures, with different navigation parameters, or even with compatibility settings that accommodate common mistakes from content vendors. These options are a big part of why content generally works better in the SCORM Engine than anywhere else.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-3-1-703591.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 154px;" src="http://www.scorm.com/scormblog/uploaded_images/Course_-Photoshop-Course-1-3-1-703583.jpg" alt="" border="0" /></a><br />Importing content in not a process isolated to the SCORM Engine. In parsing the manifest, it's important to inform the host LMS about the course and its information. Even in this alpha form, we're able to interact with Moodle to inform it about the creation of the course.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Photo1_-Editing-rusticiscp-793477.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;" src="http://www.scorm.com/scormblog/uploaded_images/Photo1_-Editing-rusticiscp-793473.jpg" alt="" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Start_-Add-a-new-course-793460.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 312px; height: 320px;" src="http://www.scorm.com/scormblog/uploaded_images/Start_-Add-a-new-course-793457.jpg" alt="" border="0" /></a>Now that the course has been properly created in both the SCORM Engine and the host LMS (Moodle), it's time to launch it. Delivery in the Moodle integration is just like delivery in any SCORM Engine implementation. It is as simple and direct as we can make it. Everything in black and blue below is completely skinnable, and the <span style="font-style: italic;">compatibility</span> that comes from our Javascript architecture surpasses that of any other SCORM provider. This is particularly evident when running SCORM 2004 courses that contain sequencing and navigation (again, this is a fundamental problem for Moodle implementations today.)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Photoshop-Example----None-734301.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://www.scorm.com/scormblog/uploaded_images/Photoshop-Example----None-734296.jpg" alt="" border="0" /></a><br />As always, proper integration with a host LMS (Moodle, in this case) requires informing that host about the progress of the learner. As seen here, scores from the content are properly rolled up and reported to Moodle (Brian's not exactly proficient with Photoshop). <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Photo1_-Grades_-User-report-703609.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 84px;" src="http://www.scorm.com/scormblog/uploaded_images/Photo1_-Grades_-User-report-703604.jpg" alt="" border="0" /></a><br />While work remains to be done to make the integration a bit more Moodly and hands off, we're really pleased with just how well these products fit together and how complete a solution this is. At this point, we're looking to licensing through Moodle hosts and the like rather than directly licensing under GPL or something similar. That time may come as well. Please be in touch if you have questions/comments/interest. Feel free to comment here or email us: info@scorm.com.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-361971191699068360?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-77335689652564532952009-02-10T12:09:00.004-06:002009-02-10T12:46:53.514-06:00Do you have a lead referral or reseller program?No, we do not. We get asked about it quite a bit though. In our early years, we experimented with some formal lead referral arrangements, but they just never quite worked out nor did they ever feel right. We've given it some thought and concluded that providing financial rewards to incent others to send business our way is rather antithetical to who we are and how we work.<br /><br />Referrals are a huge source of business for us. Over the years, we've developed a great reputation for providing excellent solutions, being highly competent and taking exceptional care of our customers. We built this reputation the old fashioned way, by actually living up to our promises, striving to exceed expectations and always maintaining the utmost integrity. When you do these things, it is easy for people to refer business your way. People refer us because they have had a good experience with us in the past or because they know that our solutions will solve a customer's problems. In other words, our referrals are authentic and meaningful.<br /><br />Referrals that have a financial reward associated with them loose that authenticity. That's not good for our reputation, it's not good for the reputation of the referrer and it certainly doesn't do the client much good. Sending the message that we need to purchase referrals lessens the authenticity of our reputation. At the end of the day, I think we're better off maintaining the high ground.<br /><br />There are a whole host of other problems with paid referrals. For instance, if several people refer a client, who gets credit? Do we financially reward anybody who sends a referral, or just those who formally signed up? For those that didn't sign up, does paying them cheapen our relationship? Does not paying them make them feel slighted? I could go on and on.<br /><br />We can't express our appreciation enough to all of you out there who spread the word about Rustici Software day in and day out. You have our eternal gratitude and heartfelt thanks. While we do avoid financial referral incentives, we aren't freeloaders, we would love to be able to return the favor. If there is ever anything we can do to help you out, please let us know.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-7733568965256453295?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-15822042328393313002009-02-05T15:49:00.003-06:002009-02-05T16:00:03.025-06:00We Won a Simulation AwardCheck it out. We won a <a href="http://www.trainingsystems.org/msawards_2009.cfm">modeling and simulation award</a> from NTSA. Forterra Systems entered our joint <a href="http://www.scorm.com/scormblog/2008/05/learning-in-virtual-gaming-world.aspx">project to deliver SCORM training from within virtual words</a>. They describe the project and award in more detail in this <a href="http://eon.businesswire.com/portal/site/eon/permalink/?ndmViewId=news_view&newsId=20090204005420&newsLang=en">press release</a>. <br /><br />It's fun to be recognized just for doing interesting work. We're excited to see what the future holds for the use of simulations in training. At I/ITSEC this year, I was struck by the preponderance of simulation companies. It seems to me that simulations are about to hit a tipping point at which the technology to develop useful simulations will become quite affordable. I imagine the impact on corporate training will be considerable. Good bye page-turners, hello interesting, engaging and effective training.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-1582204232839331300?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-12717582396944412062009-01-22T08:18:00.003-06:002009-01-23T08:48:31.348-06:00Tests like these...Tests like these are why you buy the SCORM Engine.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/cruisecontrolbuilds-755422.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 209px;" src="http://www.scorm.com/scormblog/uploaded_images/cruisecontrolbuilds-755411.jpg" alt="" border="0" /></a>"What is that?" you might ask. This is a dashboard widget that we maintain on our big screens in the two offices. Anytime you walk through the common space, you get a quick look at this dashboard. Each row here represents a fundamentally important automated test of the SCORM Engine. Green is good news; pink is bad. (Truth be told, I've been waiting several days to catch some portion of this screen pink. Things are very stable around here right now, and I thought an "all green" dashboard was a bit contrived. Further truth be told, catching this screen shot half pink <span style="font-style: italic;">might </span>be retaliation for David eating my ice cream yesterday.)<br /><br />Over the summer, Andrew, our intern, spent his time automating the SCORM test suites. SCORM test suites are anything but fun the first time, and going through them over and over is torture. We've done this plenty of times (as has Andrew) and it's time consuming enough that no one does it as often as they should. Our response? Automation.<br /><br />The tests listed in the screen shot are run on different periods, but each confirms the current health of various versions of the SCORM Engine. 2008.1.x references are to the currently released product. "Trunk" references are to our forward looking development. And you can also catch a glimpse here of the fact that we're already testing against SCORM 2004 4th Edition, which is still in beta. Those who are perceptive will likely notice that last night, all of the Java tests failed. This is because we're doing a bit of internal restructuring and we broke them. And you know what? That's <span style="font-style: italic;">OK</span>, because we immediately <span style="font-style: italic;">know </span>that they're broken, and David and crew will spend time today <span style="font-style: italic;">fixing </span>them.<br /><br />Would you or your organization <span style="font-style: italic;">ever </span>take the time to create an automated testing platform like this? Maybe. Would you do so for the vagaries of the SCORM test suites? Would that be an effective use of your time? I doubt it. Most development shops would make a reasonable effort to test this stuff... once, when they create it, and hopefully again before they send it off for certification. Would they take the time, then, to test it monthly? Or before each release? As you see here, the SCORM Engine is being tested, in all of its flavors, <span style="font-style: italic;">every single day</span>. This is not just a confirmation that it builds, either, this is a full fledged run through the entirety of the SCORM test suite.<br /><br />Even at its best, SCORM is touchy. Things break, content can be bad, there are plenty of ways for things to go wrong. You need to know the quality of your delivery platform, whether you buy it from us or build it yourself. <span style="font-style: italic;">Tests like these are why you buy the SCORM Engine.<br /><br /><span style="font-style: italic;">Update, 1/23/09: </span></span><span>If you want to get developers in a tizzy, post a picture that shows their stuff is broken. 12 hours later, you get a completely green dashboard.<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/ccgreen-724171.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 191px;" src="http://www.scorm.com/scormblog/uploaded_images/ccgreen-724162.jpg" alt="" border="0" /></a><br /><span style="font-style: italic;"><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-1271758239694441206?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-66479842088878708572009-01-15T15:27:00.002-06:002009-01-15T15:33:48.965-06:00"Good idea, let's add that."Our customers help us improve our software all the time. We regularly hear about some eccentric SCORM problem or Package Property that would help make the product better, and we strive to include that as quickly as we can. <br /><br />Concepts of listening and improvement, though, need to extend beyond the core products themselves. I've been working with a prospect on the SCORM Engine, working toward contractual agreement. In doing so, he discovered what he felt was a hole in our agreements. Specifically, he couldn't find any route by which he could opt out of the agreement if we failed to hold up our end of the bargain. <br /><br />Incredulous, I told him I was sure it was there, but that I would check in with our legal staff at Waller Law. Wouldn't you know it, the basic document we've been using for years <span style="font-style: italic;">doesn't include that specific right</span>. Well, frankly, if we're not doing what we indicated we would, what right do we have to lock you into your deal? The answer, obviously, is none.<br /><br />So, all of our basic agreements have been changed and we're moving forward with some new language. Specifically,<br /><blockquote>Customer may terminate this Agreement if Licensor is in material breach of its obligations under this Agreement and such breach is not cured within thirty (30) days of receipt of written notice from Customer describing the breach in reasonable detail.</blockquote>If we're wrong, well, we're wrong. So, changes have been made to our "<a href="http://docs.google.com/View?docid=dd2b2ff_29fgxsdzgw">annotated legal documents</a>" as well, section 7, if you care. [If anyone cares, the annotated legal documents have been <span style="font-style: italic;">great</span> for us. Prospects seem to love them and I'm not answer the same questions all the time anymore!]<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-6647984208887870857?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-59098151963810696722009-01-02T10:24:00.002-06:002009-01-02T11:47:44.729-06:00SCORM 2004 4th EditionADL recently released <a href="http://www.adlnet.gov/News/articles/index.aspx?ID=508">beta versions</a> of the SCORM 2004 4th Edition Conformance Test Suite and Sample Run Time Environment. 4th Edition adds 4 new features and 30-something clarifications/enhancements/bug fixes to SCORM 2004. This evolution is not a drastic change to the specification, but should represent a significant step forward in the compatibility and usability of SCORM 2004.<br /><br />Since most of the changes are simply clarifications, the implementation burden on SCORM adopters should be rather light. For content developers, only minimal changes (if any) will be required. Most content should be unaffected by the update to 4th Edition. LMS vendors (as always) will have a greater load to carry. For them, the amount of development work required will vary considerably based on the quality of their 3rd Edition implementations. The 4 new features should be rather straight-forward to implement, but the numerous clarifications will present varying levels of difficulty to different vendors.<br /><br />The new features include:<br /><br />-<span style="font-weight: bold;">Rollup of weighted completion data.</span> SCORM 2004 has always include a "progress measure" data model element that indicates "how complete" the user is on an individual SCO. This data will now be officially rolled up with different activities having different weights. This weighting and rollup will give an accurate picture of the user's overall completion of a course and enable LMS's to provide accurate progress bars.<br /><br />-<span style="font-weight: bold;">Jump navigation request.</span> Many sequenced courses want to provide the ability for SCOs to control navigation in a way that is different than what is available to the user. Previously, the navigation requests that a SCO was allowed to make were identical to what the learner was allowed to do. The new "jump" navigation request gives content authors more sequencing options and separates the requests that are available to internal calls from the requests that the learner is allowed to initiate.<br /><br />-<span style="font-weight: bold;">Shared data between SCOs</span>. SCORM 2004 4th Edition now allows SCOs to share arbitrary buckets of data. When creating a sequenced course, it is often very helpful to have a common pool of data that different SCOs can access to maintain a shared state. The lack of this functionality has always been a big obstacle to creating cohesive sequenced content.<br /><br />-<span style="font-weight: bold;">More objective data available globally</span>. All of the objective data that can be reported at runtime is now available to be shared with other SCOs and courses via global objectives. This will provide for simpler and more creative sequencing strategies.<br /><br />Part of our duty as members of the ADL Technical Working Group is to be early implementers of new specifications to help ADL verify their accuracy. We are already working to update our products for SCORM 2004 4th Edition. The SCORM Engine was first on the list and we're making good progress. ADL added or changed 92 LMS test cases for 4th Edition. Of those, 23 deal with the new features that we are starting to implement. Of the other 69 dealing with clarifications and bug fixes, we currently pass all but 12 of them. Of those 12 remaining test cases, 6 have open questions of interpretation that we're discussing with ADL and the TWG. The other 6 should be completed soon.<br /><br />Currently 4th Edition is in a beta period for review and public comment. Please let us and/or ADL if you have any feedback about the changes made for 4th Edition before the public comment period elapses. We intend to release a 4th Edtion complaint version of the SCORM Engine to the public SCORM Test Track instance shortly after it is completed. We will have production-ready and formally released versions of all our products that are compliant with 4th Edition very shortly after 4th Edition is finalized and out of beta.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-5909815196381069672?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-18512387158377748522008-12-19T08:43:00.000-06:002008-12-19T08:43:00.701-06:00Holiday GiftsThis is a festive time of year. Whether you celebrate Christmas, Hanukkah, Kwanzaa, the New Year, or if you're just excited that it might snow soon, we wish you and your loved ones all the best.<br /><br />The other day, I was talking with a few other entrepreneurs about how how we handle holiday gifts for employees. I'm proud of the answer I gave and figured I'd share it.<br /><br />Tim and I select personal, meaningful gives for each of our employees. We try to give our employees something they will really enjoy and perhaps something they wouldn't normally treat themselves to. It's hard and it takes some work, but it's worth it.<br /><br />So, what did we get this year:<br /><br />Brian, the rabid Tennessee Titans fan, will be taking his family to the sold out final home game against the Steelers.<br /><br />David, the disc golf pro, will get his own disc golf goal at the office for coffee break practice sessions. He's also getting a book on toilet paper origami since he has a reputation for never replacing the role.<br /><br />Joe, the Xbox fanatic, is getting the complete Guitar Hero world tour set. He will also get a new fleece pullover to replace the one he constantly wears to work that bears the logo of his former employer.<br /><br />John, the newly born do-it-yourselfer, will get a power tool shopping spree at Lowe's.<br /><br />Eric and Troy, the two employees competing for the title of corporate brewmaster, will get kegging kits to and kegerators for storing their home brewed beer. (Yes, this might a subtle hint to share the spoils.)<br /><br />Kevin and Jean, our cultured crew, are getting season tickets to the Tennessee Performing Arts Center.<br /><br />Rustici Software is very much a lifestyle company. We strive to create an environment where we want to work and where others will want to work. That goal is often in conflict with growth. We have no ambition to be a large blockbuster company. We intentionally want to stay small. But how big is too big? I think the answer might be defined by our gift policy. I want to always know our employees well enough that we can give them a thoughtful and personal gift.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-1851238715837774852?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-60086001031779488142008-12-18T07:11:00.001-06:002009-01-02T11:50:29.210-06:00The SCORM Engine as a "platform for e-learning"?Tim and I have been discussing how our own experience in designing the SCORM Engine might directly apply to the "<a href="http://www.scorm.com/scormblog/2008/12/what-is-platform-for-e-learning.aspx">platform for e-learning</a>" being discussed by LETSI. Behind the scenes, the SCORM Engine is essentially a platform that facilitates adding plug-in functionality to LMS's. In this case, the plug-ins are currently all learning standards. For instance, the available plug-ins allow an LMS to support, AICC, SCORM 1.1, SCORM 1.2, SCORM 2004 2nd Edition, SCORM 2004 3rd Edition and IMS Sharable State Persistence. We have high level designs to extend the SCORM Engine to support other plug-ins like a discussion boards or an assessment engine.<br /><br />An added benefit of the SCORM Engine's architecture is its integration layer that allows it to tie into any LMS. The diagram below shows how the SCORM Engine's architecture allows for it to be integrated with any LMS and serve as a platform for supporting many content delivery mechanisms.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/blogsupportfiles/SCORMEnginePlugins.jpg"><img style="cursor: pointer; width: 450px;" src="http://www.scorm.com/blogsupportfiles/SCORMEnginePlugins.jpg" alt="" border="0" /></a><br /><br />Should LETSI move towards a path similar to the one described here we would look forward to contributing our experience and lessons learned from the design of the SCORM Engine.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-6008600103177948814?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-74899401656850707042008-12-17T15:58:00.004-06:002008-12-22T09:38:56.129-06:00"Which part of SCORM should I implement in my LMS?"In general, passion and anger don't mix with software standards for me. I believe we're doing good work, I think SCORM is really effective, and I hope we're doing <a href="http://www.scorm.com/scormblog/2008/12/what-is-platform-for-e-learning.aspx">our part</a> to further its ongoing success. But... we often find ourselves mired in discussions over semantics or other companies' arguments about minutiae. Over these things, there is little need for passion and anger.<br /><br />If you develop an LMS or determine its functionality, though, I have a favor to ask of you. Please, please, <span style="font-style: italic;">please... </span><span style="font-weight: bold;">do not implement <span style="font-style: italic;">part</span> of the SCORM standard</span>. I have encouraged many prospective customers to steer away from SCORM. I have no problem with companies that control their content and their platform electing to avoid SCORM completely if they have no use for interoperability. But if you have use for some aspects of SCORM, for your sake and mine, finish the job, complete the implementation, even go so far as getting <a href="http://www.academiccolab.org/certification/">certified</a>.<br /><br />Why? Why not do just what you need?<br /><ol><li>Do you really know what you need right now? Do you know your target content well enough to say that definitively? [No, you don't... you have no way of knowing for certain which data model elements are important to this piece of content.]</li><li>Do you know what you'll need from the next piece of content? What if it comes from another tool or vendor?</li><li>Side effects. As you have some success with one piece of content, it will give you a false sense of security. Some other piece of content will come along and fail to function, and the reason for its failure won't be apparent to anyone. These are the kinds of problems that will occupy you and others indefinitely. This is undoubtedly costly to your business, and not just in the short term.<br /></li><li>Your content vendors will hate you!<br /></li><li>There's simply no logical point at which to stop. Do you need to be able to retrieve the learner's name? <span style="font-style: italic;">Yes</span>. What about the review mode? <span style="font-style: italic;">Well, probably, but does your content use it?</span> What about interaction reporting? <span style="font-style: italic;">No, we have no content that reports interactions</span>... It is a slippery slope in the worst sense.</li></ol>So, I'm begging. Please stop now, stop before you start to implement a <span style="font-style: italic;">part </span>of SCORM. If SCORM is important to you (and it should be in a lot of cases), then do it right. Go all the way. I'd love for you to use our <a href="http://www.scorm.com/products/scormengine.aspx">tools</a> to do it. But even if you don't, please finish the job.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-7489940165685070704?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com2tag:blogger.com,1999:blog-16011910.post-91594756545203310742008-12-15T14:37:00.015-06:002009-02-12T08:22:49.072-06:00What is a "Platform for e-Learning"?There has been a lot of talk in LETSI lately about what SCORM 2.0 should look like. Everything is on the table. Since there are so many use cases for e-learning, it has been difficult to narrow down the focus of what a specification for the next generation of e-learning should look like.<br /><br />Some have proposed that maybe SCORM 2.0 should be more of a platform than a specification. Aaron Silvers introduced the phrase "Linux for learning" (Aaron discusses it some <a href="http://www.aaronsilvers.com/2008/12/the-future-of-scorm-isnt-necessarily-scorm/">here</a>). It has been bounced around a lot, there is a lot of enthusiasm around the idea, but it's exact definition remains a bit elusive. There is a thought that in a time of accelerated innovation, it makes more sense to focus on informal specifications and open source implementations rather than on formal standards. If that is the case, what is LETSI's role in the community? Does LETSI merely shepherd the development of specifications, or do they actually produce open source software?<br /><br />It is sometimes hard for me to debate ideas in the abstract. It really helps me to see the merits (or demerits) of an idea if we can be concrete about how it will actually be implemented and what it will do. In this case, what does a "platform for e-learning" actually do? What problem(s) will it solve? What will it look like? Why would people actually use it?<br /><br />Tim and I have batted these last questions around a lot over the last few weeks. We've come up with one answer that might represent a useful path forward for LETSI. This might be just a different way of stating what others have already stated, but here goes.<br /><br />Ten years ago, every LMS and every content vendor needed custom hooks to get their applications to work together. Proprietary interfaces required vendors to modify their products every time they wanted to integrate with another vendor. The world looked like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/blogsupportfiles/Before_SCORM.jpg"><img style="cursor: pointer; width: 356px; height: 168px;" src="http://www.scorm.com/blogsupportfiles/Before_SCORM.jpg" alt="" border="0" /></a><br /><br />After SCORM standardized the interface between LMS's and content, things got a lot easier. Now LMS and content vendors all just had to code to one single interface and things were a lot simpler. The world looked like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/blogsupportfiles/After_SCORM.jpg"><img style="cursor: pointer; width: 356px;" src="http://www.scorm.com/blogsupportfiles/After_SCORM.jpg" alt="" border="0" /></a><br /><br />Today we are back in a similar situation, except the items being integrated are changing. The content integration problem has largely been solved (yes, it can still improve, but the path is known). The integration problem facing learning systems now stems from trying to integrate other systems and applications. It looks something like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/blogsupportfiles/plugins_now.jpg"><img style="cursor: pointer; width: 356px;" src="http://www.scorm.com/blogsupportfiles/plugins_now.jpg" alt="" border="0" /></a><br /><br />It's a very similar problem to the one SCORM solved. Years ago, LMS vendors were being asked to integrate with many different types of <span style="font-style: italic;">content</span>. Today, they are being asked to integrate with many different types of <span style="font-style: italic;">applications</span>. Currently, LMS's integrate with things like virtual worlds, simulations, assessment engines, competency management tools, content repositories, reporting services, discussion boards, classroom management tools, intelligent tutoring systems, performance support systems, knowledge management systems, document management systems....and the list goes on and on.<br /><br />Back in the day, each LMS and each content producer had a proprietary interface for performing integrations. Today's situation is similar. Today, many LMS's have their own proprietary plug-in architecture or API for enabling extensibility. For a great example of LMS extensibility and integrations, check out the number of <a href="http://moodle.org/mod/data/view.php?id=6009">modules available for Moodle</a>.<br /><br /><span style="font-weight: bold;">Many LMS's are providing extensibility interfaces. Each is doing this differently. The industry wants more integration. The </span><a style="font-weight: bold;" href="http://www.letsi.org/display/TLSWG/Use+Cases+from+SCORM+2.0+Workshop">use cases presented to LETSI </a><span style="font-weight: bold;">require system integration and extensibility. Perhaps standardizing LMS extensibility interfaces is the next big problem that LETSI should solve.</span><br /><br />Integration and extension seem ripe for standardization. Why?<br /><ul><li>It is currently being done. As a standards body, we would not be innovating, but instead codifying established best practices.</li><li>It is in demand. LMS's are already expected to integrate with a number of systems and this number is rapidly increasing.</li><li>It is currently costly. Much of the cost of LMS implementations currently stems from integration services work. </li><li>It is currently painful. In addition to cost, the fragility of integrations makes it hard to justify changing systems. This creates vendor lock-in. </li></ul>Many have already discussed developing a "platform for e-learning" or a "learning systems architecture". This post is saying the same thing, but getting a bit more concrete about what that means. To us, this platform/architecture is a way of adding new functionality to existing learning systems in a standardized fashion. A standardized platform/architecture enables functionality to be developed once and integrated into any system, just like content can now be developed once deployed to any system.<br /><br />The key insight here is that this is something that is already being done and that it is an existing pain point with real business value. LETSI can define an architecture by codifying existing practices rather than inventing something from the ground up. Simpler integration benefits vendors and users alike.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-9159475654520331074?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com9tag:blogger.com,1999:blog-16011910.post-70338624105686980972008-12-12T14:22:00.003-06:002009-03-03T09:53:40.197-06:00Why can't my content find the SCORM API?This question comes up several times a month. From time to time, when you launch a piece of content, you may see a message box like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/SCORM-Mail---FW_-SCORM-Screen-Shots---joe.donnelly@scorm.com-718114.jpg"><img style="cursor: pointer; width: 320px; height: 96px;" src="http://www.scorm.com/scormblog/uploaded_images/SCORM-Mail---FW_-SCORM-Screen-Shots---joe.donnelly@scorm.com-718112.jpg" alt="" border="0" /></a><br /><br /><p style="margin-bottom: 0in;">In order for communication to occur between the LMS and content, the LMS is obligated to provide an API. When you launch a piece of content, the first thing the content has to do is look for that API, in order to establish communication with the LMS. In some cases, that piece of content has what we call a 'poor API discovery algorithm'. While this can mean many things, it often means that the content will just search the frames in the current window for the API and if it does not find it, it will just quit and throw that error. There are a few ways around this. </p> <p style="margin-bottom: 0in;">1. Instead of having the content launch in a new window, launch it in the frameset. This way, we know that the content is in the same window as the API. In many cases, this eliminates the discovery problem. </p> <p style="margin-bottom: 0in;"><br /></p> <p style="margin-bottom: 0in;">2. If the content needs to be launched in a new window, you could re-code the API discovery algorithm to not only look in the current window, but look at its parent window and keep searching parent windows until it finds it (as the specification requires!) For more detailed code level information on this option, check out this <a title="article" href="http://www.scorm.com/resources/apifinder/SCORMAPIFinder.htm" id="cw9o">article</a>.<br /></p> <p style="margin-bottom: 0in;">Since this is a pretty common mistake, we created a package property to help combat the behavior for our SCORM Engine users. Package Properties control how the SCORM Engine delivers a particular piece of content. You can specify how the content is launched, the navigation options available to the user, and the behavior and appearance of the content being delivered. SCORM Engine Package Properties can be controlled in a number of ways. Each implementation has defaults, some have an exposed UI, and others simply offer this control via imsmanifest extensions. (Controlling package properties via the manifest extensions is a <a title="post" href="http://support.scorm.com/forums/15735/entries/25744" id="f7dq">post</a> for another time.)<br /></p> <p style="margin-bottom: 0in;">If you have any questions about how this works, please feel free to contact me at 615-550-9530 or you can email me with any questions at support@scorm.com</p><p style="margin-bottom: 0in;">Thank you,</p> <p style="margin-bottom: 0in;">Joe</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-7033862410568698097?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Joe Donnellyhttp://www.blogger.com/profile/05392572762308192383joe.donnelly@scorm.com0tag:blogger.com,1999:blog-16011910.post-44906135968571893092008-12-11T16:09:00.004-06:002008-12-11T16:09:01.435-06:00"How is the economy affecting your company?"There's been a lot of talk lately about the economy. It seems that the most popular question people have asked me lately is "how is the economy affecting your company?".<br /><br />I don't have an insightful answer for them. Things are still plugging along. We have had some potential clients express concern about their finances and not wanting to take on any capital expenses. But, we are still closing deals and moving forward. The holiday season is always different, so it's hard to tell if the economy has had an impact on our sales or if we are just experiencing our normal year end tranquility.<br /><br />Tim and I have spent a fair amount of time discussing how this might impact us. Our conclusion is shared; we're cautiously optimistic. A softening economy could actually <span style="font-style: italic;">increase</span> our business. As companies cut budgets, one of the first things to be cut is training. However, people do still need to be trained, so we could very well see an increase in online training as a replacement for expensive classroom training.<br /><br />The one thing I do know is that I that know Rustici Software has a long future ahead. We have been and will continue to be fiscally conservative. We carry no debt and we have a fairly strong cash position (this is our reward for forgoing explosive growth in prior years). We will be a bit more cautious in the coming months and we will ensure that all of our spending is prudent, but we have no plans to layoff employees or make any other significant cuts. We have an eye on the future and we will continue to invest our time and resources into innovative new products.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-4490613596857189309?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com1tag:blogger.com,1999:blog-16011910.post-58948055559027966602008-12-10T14:01:00.003-06:002008-12-10T14:13:55.574-06:00SCORM Isn't Dead, But Apparently It Is MisunderstoodA <a href="http://rod4jefferson.blogspot.com/2008/12/rpp-76-interview-with-bobbe-baggio-part.html">recent entry on "Rod's Pulse Podcast"</a> contained an audio interview with Dr. Bobbe Baggio, In the interview, Dr. Baggio asserts that "SCORM is dead". She also says that "people who work with SCORM understand what I mean". Dr. Baggio, I work with SCORM, I do understand what you mean and I do agree with your premise.<br /><br />GASP! WHAT? The SCORM guy agrees with somebody who says that SCORM is dead! Hold on, don't panic, catch your breath. I did not say that I agree that SCORM is dead, I said that I agree with her premise, and as we'll see, those are two different things entirely.<br /><br />Dr. Baggio's central premise is that "intelligent searching has eclipsed the need for metadata and tags". Amen, hallelujah. I absolutely agree. There are still some very valid uses for metadata, but for most of the world, intelligent searching will be good enough.<br /><br /><span style="font-style: italic;">BUT</span>, it is a long stretch to get from there to "SCORM is dead". To make such a leap represents a misunderstanding of what SCORM is and why people use SCORM in the first place. It is an understandable misunderstanding though considering the way SCORM was initially "sold" to the world.<br /><br />In Dr. Baggio's view, SCORM is all about reuse. She views SCORM as being all about storing content in repositories to enable people to search those repositories and reuse content. Her postulation is that metadata is the key technological enabler of this functionality. I disagree with this view in three significant ways.<br /><br />My first disagreement is that SCORM is all about reuse. Yes, reuse is one very significant goal of SCORM, but the <span style="font-style: italic;">real</span> reason most people adopt SCORM is interoperability. Most people use SCORM so that they can import content created in any system into their LMS.<br /><br />My second disagreement is with narrow definition of reuse contained in Dr. Baggio's arguments. Dr. Baggio's view of reuse is that an organization's content is all stored in a central repository. Because of the content's metadata that repository is easily searched, allowing people to find reusable learning objects to use in other courseware. This is certainly a valid type of reuse and it is the main view that has been "sold" by ADL as a driving factor behind SCORM. But, there are other types of reuse that are far more common in today's world. For instance, SCORM enables courses to be reused as a whole and across entities. For instance, content vendors (like SkillSoft) can produce a huge library of content that is sold to thousands of organizations. Because of SCORM (and other standards), SkillSoft only needs to produce one version of that content and it can be used by many of organizations without modification. This is reuse. This is what is happening in the industry. This is what has made SCORM the de facto industry standard for learning content. This is what SCORM is really good at. This is why SCORM is healthy, viable and far from dead.<br /><br />My final disagreement is with the implicit assertion that metadata is the key technological enabler behind SCORM and as such, since metadata isn't necessary anymore, SCORM is dead. In my view, metadata is the least important aspect of SCORM considering the way SCORM is currently used by industry. Go ahead, take it away, it won't affect things. As I previously argued, SCORM is about more than reuse and content discovery, so metadata's irrelevance doesn't kill SCORM. But, let's assume for a moment that SCORM is only about reuse and discovery of reusable learning objects in a central repository. In other words, let's step into the view that Dr. Baggio espouses. Even in that world, SCORM adds a lot of value if metadata is replaced by intelligent searching. SCORM encourages content to be logically chunked, enabling reuse. SCORM removes technical dependencies allowing content to be portable across different environments. The interoperability that SCORM provides is still required when the discovered content is to actually be used.<br /><br />I don't mean to disparage Dr. Baggio's remarks because I completely understand where her opinions come from. SCORM was sold to the public to do precisely what she envisions. When SCORM was first released, all the hype was about reusable learning objects pulled from central repositories. Metadata and reuse were all the rage. That vision is still valid, but unfortunately it hasn't emerged as we had hoped. (I believe the obstacles standing in the way of that vision are related more to business models and constraints than they are to technological deficiencies, but that's another blog post.) Along the way though, the world found that SCORM was very useful in a world without central repositories. SCORM is VERY widely adopted and very widely used. This adoption has happened voluntarily by industry. Broad industry adoption simply does not happen unless there is significant value in a technology.<br /><br />Dr. Baggio made several other comments that I disagree with, such as "SCORM from the beginning never really worked really well, "if SCORM is going to work in your organization, you have to go into SCORM and customize it to meet your needs", "the need for SCORM has certainly gone away" and "if you look at the research about who uses SCORM, it's not being used". I disagree with all of these statements, but they do follow logically from her original premise. Since I've already argued against the root premise, I don't think these comments need to be addressed.<br /><br />I do agree with a few other things she said, such as "since SCORM was invented, we have better technologies" and "SCORM might morph into something else". I absolutely agree with these assertions. SCORM is about 10 years old and due for some updating. I am very involved in the effort to define what <a href="http://www.letsi.org/display/nextscorm/Home">SCORM 2.0</a> will look like. A new organization called <a href="http://www.letsi.org/display/welcome/Home">LETSI</a> has taken on that monumental task and their efforts have garnered a <a href="http://www.scorm.com/scormblog/2008/10/scorm-20-requirements-workshop.aspx">lot of support</a>.<br /><br />So, in short, I think that SCORM is anything but dead. A while back, we bet the company on SCORM's future. Today I am much more inclined to double down than to walk away.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-5894805555902796660?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com6tag:blogger.com,1999:blog-16011910.post-45581503630470706642008-12-04T08:51:00.003-06:002008-12-04T09:21:41.747-06:00"Joe Smith answered Question 1 with B but the correct answer is C."<span style="color: rgb(0, 0, 0);">I got a great question from one of our SCORM Engine clients (Brian) first thing this morning, so straight to the blog it goes.</span><br /><div style="color: rgb(0, 0, 0);"></div><blockquote style="color: rgb(0, 0, 0);"><div>We are getting very involved with developing a custom SCORM report that utilizes and displays interaction data. As we are looking through the information sent back by a SCORM 1.2 published course (using Lectora), we see ID, LearnerResponse, CorrectResponse values being passed in. With this information, we can build a report that tells someone "Joe Smith answered Question 1 with B but the correct answer is C." This may meet our need, but some of our clients are asking for a report that shows the actual text of the question and answer.</div> <div> </div> <div>My research his showing that this is not a part of the SCORM standard, but do you have any recommendations or experience with capturing the actual text values associated with these variables?<br /></div></blockquote><div style="color: rgb(0, 0, 0);">First off, thanks to Brian for doing a bit of research before getting in touch with us. We're happy to answer the basic questions, but a pointed question like this one allows us to jump straight to the details they're seeking.<br /><br />SCORM 1.2 has very limited capability in its data model for accepting details about interactions. Brian has this well understood... something to the effect of "Joe Smith answered Question 1 with B but the correct answer is C," is about as far as one can be certain of going in SCORM 1.2.<br /><br />SCORM 2004 enhances this a bit. The question element (cmi.interactions.n.) now has an .id that is a long_identifier_type <span style="font-style: italic;">in addition </span>to a description element. This description element (cmi.interactions.n.decsription) allows the content to record, typically, the question itself as a localized_string_type. This is a vast improvement from my perspective. Answers, as well, have improved in SCORM 2004. Because the vocabulary varies for different <span style="font-style: italic;">types </span>of interactions, it isn't exactly straightforward. Taking multiple choice responses as an example, though, the content can at least record a collection of short_identifier_types.<br /><br />So, what in the world did all <span style="font-style: italic;">that </span>mean? Let's go back to Brian's example. In SCORM 1.2, he's right, the best you can do is:<br /><blockquote>Joe Smith answered Question 1 with B but the correct answer is C.<br /></blockquote>In SCORM 2004, you would hope to see...<br /><blockquote>Joe Smith answered Question 1, 'What is my name?', incorrectly. His answer was 'Bob' instead of the correct answer, 'Joe'.<br /></blockquote>This all sounds great, to this point, but now it's time for some caveats.<br /><ol><li>This is <span style="font-style: italic;">entirely dependent </span>on the piece of content in question sending along the full set of data. If the piece of content elects not to send along the correct response, <span style="font-style: italic;">that is its right</span>. If it elects to send along no interaction data whatsoever, it can still be conformant. An LMS is 100% beholden to the content it is playing. [Note to content vendors: Please don't be lazy!]<br /></li><li>The Joe Smith question above shows the best side of the new answer functionality. Had the answers above been more sophisticated, it might have looked more like this:</li></ol><blockquote>Joe Smith answered Question 1, "Compare interactions in SCORM 1.2 and SCORM 2004," incorrectly. His answer was "Interactions_are_perfect_now.__Lovely," instead of "Interactions_are_somewhat_improved."</blockquote>So, don't expect perfection in SCORM 2004, even if the content is behaving well. It is, in my book, something that might be worth tackling as the standard continues to evolve.<br /><br /><span style="font-style: italic;">Later</span>: I realized I didn't fully answer Brian's question here... The answer is, in SCORM 1.2 especially, reporting effectively on interactions is simply difficult. It might be possible, for content from a <span style="font-style: italic;">single vendor</span>, to create a reporting mechanism that would allow you to establish an answer key of sorts... and then "join" that answer key to the answers from the interactions. Applying something like this <span style="font-style: italic;">broadly</span>, across content vendors, is a problem we haven't even solved yet!<br /><br /><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-4558150363047070664?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com1tag:blogger.com,1999:blog-16011910.post-79970774182691337762008-12-03T09:34:00.005-06:002008-12-03T21:09:17.487-06:00"Can you recommend an LMS for me?"Ah, a relatively common question for us... People come to us asking for recommendations on content and LMS's with some regularity. I theorize that it's for one of two reasons...<br /><ol><li>They think we're the governing body for SCORM.</li><li>They know we aren't the governing body, but that we have expertise in the subject and have seen a bunch of LMS's.</li></ol>To the first group... Sorry, that's not us. <a href="http://www.adlnet.gov/">ADL</a> is the governing body for SCORM at this point. They've shepherded it to this point and have stood up the Co-Labs and still manage the evolution of SCORM 2004. For what it's worth, they wouldn't be able to provide this sort of guidance either.<br /><br />To the second group... you're right, we've seen <span style="font-style: italic;">a bunch </span>of content and LMS's. On certain topics, we might even have useful insight for you. Our problem is this: we want no part of a <a href="http://en.wikipedia.org/wiki/Conflict_of_interest">conflict of interest</a>. If we were to recommend an LMS, we would be choosing amongst our customers and our prospective customers. <a href="http://www.flamingobear.com/blog/labels/aspen.html">Each</a> of <a href="http://www.flamingobear.com/blog/labels/oakley.html">my</a> <a href="http://www.flamingobear.com/blog/labels/lindy.html">daughters</a> does certain things better than her sisters, but I don't choose one of them to love more either. It just wouldn't be right.<br /><br />So, we've elected to remain agnostic on the subject. I don't have a favorite LMS... in truth, I know a limited amount about each of them... our purview is really limited to the SCORM aspects of these systems.<br /><br />If you are looking for an LMS, though, I would say this. Make <span style="font-style: italic;">absolutely certain </span>that it is SCORM conformant, and not just a little bit. Lip service simply isn't enough to prove that a system really is conformant. I would look for further indication. Ask your sales person to import a course or two that <span style="font-style: italic;">you </span>provide. Challenge the LMS provider on which <span style="font-style: italic;">versions </span>of SCORM they support. If that vendor indicates they support <span style="font-style: italic;">some </span>SCORM elements, but not <span style="font-style: italic;">all </span>of them, ask them if they're crazy... [This topic, <span style="font-style: italic;">partial </span>SCORM support, is a hot button for me. I promise I'll write about it another time. In fact, in an homage to Alton Brown's frequent "<a href="http://www.goodeatsfanpage.com/References/another_show.htm">that's another show</a>" references, I will begin tagging posts like this as "<a href="http://www.scorm.com/scormblog/labels/another%20post.aspx">that's another post</a>". None of you will find that tag particularly useful, but I certainly will when I need some new material.]<br /><br />There are bunches of good LMS's out there. Many of them have great SCORM support. A good portion of those do so by implementing the SCORM Engine, and I'm more than happy to tell you if that potential LMS purchase is one of them.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-7997077418269133776?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com1tag:blogger.com,1999:blog-16011910.post-37832202662942130082008-12-01T15:35:00.003-06:002008-12-01T15:54:27.853-06:00Joel on ServanthoodJoel Spolsky is a bit of an icon in the software development world. His <a href="http://www.joelonsoftware.com/">blog</a> and <a href="http://www.businessofsoftware.org/">conferences</a> are wildly popular, and, for the most part, Mike and I buy into a lot of what he has to say. In a recent <a href="http://www.inc.com/magazine/20081201/how-hard-could-it-be-my-style-of-servant-leadership.html?partner=fogcreek">article</a> published in Inc. magazine, he had this to say.<br /><br /><blockquote>"In our company, management's job is to get things out of the way so that all the great people we've hired can get work done."<br /></blockquote><br />I couldn't agree more. Whether this means drawing the line for our clients with regard to our responsibilities or breaking down the boxes from our new furniture to get them out of the office, that's what our job is in management. (Frankly, it's hard on me to describe myself with that word; it carries such negative connotations for me from prior employers.)<br /><br />Joel has accomplished a great deal, but seriously, Joel, we all know you're not <span style="font-style: italic;">this </span>tall...<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/talljoel-722100.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 262px; height: 320px;" src="http://www.scorm.com/scormblog/uploaded_images/talljoel-722073.jpg" alt="" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-3783220266294213008?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-71040803331856832052008-12-01T08:37:00.003-06:002008-12-01T08:41:56.222-06:00What to do with the interaction data?<a href="http://www.pipworks.com">Philip</a> over at Pipworks posted some <a href="http://pipwerks.com/journal/2008/11/27/storing-adobe-captivate-interaction-data-in-a-database-adobe-wants-your-feedback/">interesting questions</a> related to Adobe's products specifically and what they should do with SCORM interaction data. I think the responses to this question are interesting in their own right (share them publicly, folks, not just with Adobe!)<br /><br />My question goes a bit farther (and is a bit more self serving)... What would you like to be able to do with SCORM interactions in general? Would a service for housing that information be useful? What would you actually do with that service? Do you believe a service could be general enough to support multiple content platforms while at the same time being specific enough to be really useful?<br /><br />Thoughts are welcome here or via email to info [at] scorm.com.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-7104080333185683205?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-83032460359653602462008-11-28T08:30:00.003-06:002008-11-28T08:35:46.915-06:00eLearning is evolutionary, I guessThis video, found via twitter posts from @moodler and previously @ralfh is fun to watch. Created in 1967 and complete with content, assessment, and remediation, it certainly shows us that the ideas we're playing with now aren't new ones. <br /><br /><embed wmode="transparent" allowfullscreen="true" type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/x46gbt" allowscriptaccess="never" height="415" width="480"></embed><br /><br />At a minimum, I hope we've progressed far enough on ergonomics that we would tell the kid to face the TV when he's watching it... Poor kid's gonna have a major crick in his neck before long...<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-8303246035965360246?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com1tag:blogger.com,1999:blog-16011910.post-17005107818580446562008-11-24T20:52:00.005-06:002009-02-12T08:21:43.985-06:00Challenging Problems<a href="http://moodle.org/">Moodle</a> is the leading open source LMS (based on no real research on my part whatsoever, mostly, I've just heard the name more than <a href="http://sakaiproject.org/portal">Sakai</a> or some other alternatives). They've done a great job creating a product that is broadly used and reasonably well thought of. SCORM, frankly, has been a bit of a challenge for Moodle (as it is for so many folks). Application service providers (ASP's) and companies with in house LMS's come to us regularly for help with this particular problem, but Moodle has taken it on themselves, and I personally applaud them for that.<br /><br />Recently, some of the folks in the Moodle community have put some real effort into moving the platform toward SCORM 1.2 certification. As <a href="http://danmarsden.com/blog/?p=20">Dan Marsden</a> mentions, the most recent versions of Moodle can pass the test suite, and they're moving toward formal certification. He also mentions the following with regard to SCORM 2004:<blockquote>I couldn't finish this post without "mentioning" SCORM 2004…. this is still a way off for us, the common statement is "some of it's there, but it's missing sequencing and navigation". I don't expect we'd get this done before Moodle 2.0 release, It's hard to balance whether time should be spent on the SCORM 2004 stuff, or the other structural/scalability issues.<br /></blockquote>I can't argue with his thoughts at all... I would want nothing less than to try to build a SCORM 2004 LMS on a platform that has other issues. SCORM can be finicky, and SCORM 2004 particularly so. SCORM 2004 (and frankly, some of the finer points of SCORM 1.2) are without doubt <span style="font-style: italic;">challenging problems</span>.<br /><br />They are, however, problems that we've solved to a very large degree with our <a href="http://www.scorm.com/products/scormengine.aspx">SCORM Engine</a>. We already have the plug-able architecture that allows us to embed the player in other applications. We've also had "a few" prospects come to us asking if we could embed the SCORM Engine in Moodle. (Older versions of Moodle, in particular, struggled with SCORM conformance. From what I've heard, the Moodle SCORM forums are actually <span style="font-style: italic;">more active </span>than the ADL forums themselves.) So, partly as an exercise, and partly to explore the possibilities, we've started down the path of integrating the SCORM Engine with Moodle. Already, just a week or two later, we have this...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.scorm.com/scormblog/uploaded_images/Course_-ADL-Photoshop-Competency-715727.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 132px;" src="http://www.scorm.com/scormblog/uploaded_images/Course_-ADL-Photoshop-Competency-715719.jpg" alt="" border="0" /></a>This is one of the ADL Photoshop courses running via SCORM 2004 in the context of our local Moodle installation. It includes legitimate SCORM 2004 sequencing and navigation in a fully conformant manner, and even reports overall status back via the Moodle API. On top of that, the SCORM Engine would allow an integrated Moodle/SCORM Engine to benefit from all of the SCORM Engine functionality, including high end compatibility and delivery customization. (OK, I think it's cool, but I am admittedly a dork, no doubt.) I'm 100% convinced that we can very quickly take this to a state of elegant integration. Which leads me to <span style="font-style: italic;">our...</span><br /><br /><span style="font-weight: bold;">Challenging Problem</span><br /><br />How do we offer this to the community? I am well aware that Moodle is open source. Clearly, I am aware that the SCORM Engine is <span style="font-style: italic;">not</span>. The various open source licenses are a problem for another time (and likely, a lawyer with his or her hourly fees).<br /><br />What would you (and by you, I mean, presumptively, the Moodle user who has found their way to this post somehow) expect in the offering? We are, admittedly, a for-profit company. We would like to find a way to offer this to you where it solves your problems and compensates us appropriately. In many ways, we think of ourselves as a software cooperative, solving this challenging problem on behalf of many. So how can we do that effectively for you? What would you be willing to pay to have this problem solved?<br /><br />What SCORM problems, other than SCORM 2004, can we solve for you in particular? Are they already solved by the SCORM Engine (feel free to try the Engine implementation available as the core of <a href="http://testtrack.scorm.com/">TestTrack</a> if you like)?<br /><br />Would you be willing and able to introduce a non-open source project in the context of your Moodle implementation, provided we could work out the license issues?<br /><br />Enough questions from the blogger, I say. It's time to cut this off here. Feel free to offer commentary via the blog or by email to info@scorm.com.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-1700510781858044656?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com5tag:blogger.com,1999:blog-16011910.post-87114593922476382852008-11-21T10:09:00.009-06:002008-11-21T15:04:29.895-06:00"Candor" Conveys CompetenceI exchanged emails with one of our long standing clients yesterday. I worked with this individual more than two years ago in integrating the SCORM Engine with their LMS, and was aware that he was a solid developer. In this most recent exchange, I noticed that his job title had changed, and so I congratulated him on his promotion. This was his response:<br /><br /><blockquote>Yes, thanks Tim. I’m the <a href="http://en.wikipedia.org/wiki/Pointy_Haired_Boss">PHB</a> of the dev group these days. Should be no problem to get you that data. I’ll try running it later this afternoon.<br /></blockquote><br />This is such a perfect response, and makes me want to hire this guy away from our client (which we won't be doing, mind you.) To me, this conveys so many things... <span style="font-style: italic;">confidence</span> in that he doesn't have to say how good he is, <span style="font-style: italic;">humility</span> in that he can already mock himself.<br /><br /><span style="font-style: italic;">Note to our prospective hires and current employees</span>: Be so good that you don't have to tell me, but not so proud you can't make a little fun of yourself.<br /><br />To that end, we make mistakes with our software sometimes. Given the overall quality of the software, we're willing to admit them when they come along. I ran into one of those issues this morning, and I thought I'd share it in the context of this post. For you non-technical readers, this is the point at which I delve into technical minutiae, feel free to evacuate at any time...<br /><br />One of the core integration layer functions in the <a href="http://www.scorm.com/products/scormengine.aspx">SCORM Engine</a> allows us to pass detailed data regarding a learner's progress to the host LMS; it's called RollupRegistration. Like other integration layer functions, it <span style="font-style: italic;">can </span>be implemented however the client likes, but it's almost always implemented via a stored procedure we provide to our clients. In this stored procedure, we collect the current state of two values: success_status and completion_status. In this default procedure, we used the values 0, 1, &amp; 2 to represent unknown, incomplete, and complete (in the case of completion_status). There's nothing wrong with this <span style="font-style: italic;">except</span> that we have values that correspond in our Logic.Types classes... and they correspond <span style="font-style: italic;">poorly</span>. In the Types definition, the enumerated values are 1, 2, &amp; 3... yup, off by one.<br /><br />This mistake (or lack of clarity) on our part hadn't reared its head to this point. 2007.1 has been in circulation for more than a year, and no one had attempted to establish correspondence with these types in the code... Well, today, we discovered this inconsistency with a client who was confused by it (rightly).<br /><br />Our answer? "Yup, you're right... that's confusing. No doubt." We offered our apologies.<br /><br />So, going forward, what's the answer? Our recent release of the SCORM Engine, 2008.1, happens to have addressed this elegantly in our ScormEngineManager class. The ScormEngineManager is an enhanced approach to interacting with the SCORM Engine from the host LMS... And worthy of its own post another time.<br /><br />On this issue, though, we've handled this by pushing the host LMS interaction <span style="font-style: italic;">out </span>of the stored procedure layer and into the code, where <span style="font-style: italic;">we </span>are handling the types properly and providing the already enumerated values to the host LMS like this:<br /><span style="font-size:78%;"><br /><span style="font-family:courier new;"> </span></span><blockquote><span style="font-size:85%;"><span style="font-family:courier new;">public override void RollupRegistration(ExternalRegistrationId externalReg, ExternalConfiguration externalConfig)<br /></span><span style="font-family:courier new;"> {</span><br /><span style="font-family:courier new;"> RegistrationSummary regSummary = ScormEngineManager.GetRegistrationSummary(externalReg, externalConfig);</span><br /><br /><span style="font-family:courier new;"> // Completion is an enumeration: UNKNOWN, INCOMPLETE, COMPLETE</span><br /><span style="font-family:courier new;"> Completion completionStatus = regSummary.CompletionStatus;</span><br /><span style="font-family:courier new;"> </span><br /><span style="font-family:courier new;"> // Success is an enumeration: UNKNOWN, PASSED, FAILED</span><br /><span style="font-family:courier new;"> Success successStatus = regSummary.SuccessStatus;</span><br /><span style="font-family:courier new;"> </span><br /><span style="font-family:courier new;"> // Total time in seconds tracked by ScormEngine (not as reported by course)</span><br /><span style="font-family:courier new;"> long totalTime = regSummary.TotalSecondsTracked;</span><br /><span style="font-family:courier new;"> </span><br /><span style="font-family:courier new;"> // Score is unknown until explicitly reported by the course</span><br /><span style="font-family:courier new;"> bool scoreIsKnown = regSummary.ScoreIsKnown;</span><br /><span style="font-family:courier new;"> // Score is from -100.0 to +100.0</span><br /><span style="font-family:courier new;"> double score = regSummary.Score;</span><br /><br /><span style="font-family:courier new;"> // TODO: VanillaCo:</span><br /><span style="font-family:courier new;"> // RollupRegistration is run whenever the course pushes data back to the ScormEngine. </span><br /><span style="font-family:courier new;"> // You should extend this method to update your LMS from the values above. </span><br /><br /><span style="font-family:courier new;"> }</span></span></blockquote><br /><br />Our hope is that this option is far clearer and yet every bit as powerful. If it isn't, then every prior option is still available to the host LMS. Further, we hope that our candor conveys our competence.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-8711459392247638285?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Tim Martinhttp://www.blogger.com/profile/00430351605144312408noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-49939344972964438772008-10-31T12:46:00.003-05:002008-10-31T12:46:00.948-05:00Square brackets "[]" in AICCWhen content sends data to an LMS via AICC, it uses a Microsoft INI data format. For instance, the data might look something like this:<br /><br /><span style="font-family: courier new;">[CORE] </span><br /><span style="font-family: courier new;">LESSON_STATUS=Passed </span><br /><span style="font-family: courier new;">LESSON_LOCATION=page1</span><br /><span style="font-family: courier new;">SCORE=95</span><br /><span style="font-family: courier new;">TIME=00:20:54 </span><br /><span style="font-family: courier new;">[CORE_LESSON]</span><br /><span style="font-family: courier new;">A bunch of data to be saved for later</span><br /><br />The "bunch of data" stored in the core lesson field is free text data that can hold any amount of data. Since it is free text, various content modules will store all kinds of data in there. We've found that some LMS's however have a problem handling square bracket characters "[" &amp; "]" in AICC's core lesson field. It make sense, that these characters could cause a problem since they are significant in parsing the INI format. We were able to code the SCORM Engine to handle them without problem (unless somebody sought to spoof the start of the next section), however it's easy to see why some LMS's would choose to parse AICC requests another way.<br /><br />In AICC 3.5 and earlier, the specification is silent on the use of square brackets, which, in my mind, implicitly allows them. However, AICC 4.0 does now explicitly disallow their use. We recommend that content vendors avoid the use of square brackets whenever possible, regardless of which AICC version is being used.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-4993934497296443877?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-5961731675805975862008-10-29T16:59:00.002-05:002008-10-29T16:59:00.545-05:00Music City Future 50 x3<a href="http://www.scorm.com/blogsupportfiles/FUTURE_501.gif"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://www.scorm.com/blogsupportfiles/FUTURE_501.gif" border="0" alt="" /></a> For the third year in a row, we've managed to secure a spot on the Nashville Chamber of Commerce's list of the fastest growing companies in town, the Music City Future 50. It's hard to believe we've been able to maintain such consistent growth over the years. We just expanded into a bigger office. We recently hired out tenth employee (and we're looking for more). We now have over 160 clients of all shapes and sizes from all over the world and SCORM Test Track has over 5000 users! The best part about an honor like this isn't the little trophy, the publicity or the awards ceremony. The best part is having a chance to sit back and reflect on just how far you've come and how fortunate you've been. We owe a heartfelt thank you to all of our employees, clients, partners, friends and family that has helped us along the way. Thank you for getting us to where we are today and for sticking by us as we strive for new heights in the years ahead.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-596173167580597586?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0tag:blogger.com,1999:blog-16011910.post-20747859709507474452008-10-29T16:17:00.002-05:002008-10-29T16:27:20.081-05:00Our First ScreencastWith the release of v2008.1 of the SCORM Engine, we've been making a push to improve our documentation and give our clients more resources to help themselves. Part of that push will involve screencasts demonstrating some common tasks. I published our first one this afternoon. It's fairly basic, there's no audio or special effects, just a simple screen capture of me installing the SCORM Engine and Noddy LMS. What do you think? Does this add enough value (over a document describing the same thing) to merit spending a few hours on? Would spending a few more hours to polish it with audio make it even more valuable?<br /><br /><object width="400" height="300"> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2103014&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /> <embed src="http://vimeo.com/moogaloop.swf?clip_id=2103014&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><br /><a href="http://vimeo.com/2103014?pg=embed&amp;sec=2103014">SCORM Engine Installation Screencast</a> from <a href="http://vimeo.com/user885148?pg=embed&amp;sec=2103014">Rustici Software</a> on <a href="http://vimeo.com?pg=embed&amp;sec=2103014">Vimeo</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16011910-2074785970950747445?l=www.scorm.com%2Fscormblog%2Findex.aspx'/></div>Mike Rusticihttp://www.blogger.com/profile/03177072541266740352noreply@blogger.com0