The five-week class on Software Engineering for SaaS – #Saas_Class is basically completed. The reading and video slide stack presentations for the five chapters are complete, 3 quizzes taken and 4 “homework” assignments attempted. And to quote a cliché: “Someday I’ll look back on this and laugh.” Right now my nearly complete cluelessness with Ruby is quite frustrating. And NO, for those keeping score at home, I will not pass the course. Obviously I did not appreciate how rigorous the statement “Programming proficiency in Java, C++, Python or Ruby” was intended to be.
At the same time, this course was really a vehicle for five larger objectives I set for this study read: SaaS_Daze . So let’s evaluate the experience in context with these larger themes:
- Major Disruption in Education – It is more apparent now after taking the class that the future of education is online and it will be free or low cost. The tools and technology exist to deliver course content, assignments and examinations. In some cases the grade is returned nearly instantaneously. This course required writing code snippets for assignments. The autograding process worked fairly well — though it seemed pretty rigid, extra comments or lines left in for unit testing could result in code that did not pass. What doesn’t work? It probably is my age showing, but I there can be a great deal of value to in-person discussions. Classroom discussions can result in enhanced understanding of the subject. One thing that can improve the online experience, in my opinion, is adding one of the social collaboration apps: Chatter, Yammer, Jam or even StreamWork . My brief experience with apps like this convinces me they could be effective for enhancing online education. Small groups of students in a real-time collaboration stream could be much more useful than the static, asynchronous forum-type application.
- Ruby programming – The course really requires solid Ruby programming experience. That said, there are many things I like about Ruby and Rails. The language blends good aspects from many other languages with a deconstructed, efficient syntax. I suspect that a programmer in Java or C+ would have a far easier time than I did with the programming aspects of the course. I would really like to find a Ruby/Rails equivalent of CodeAcademy. The design of that course and site would be great for learning Ruby and Rails.
- SaaS and Cloud – Since my background is heavy on the technical/infrastructure side of technology, this is the part of the course I appreciate the most. Using the EC2 Amazon Linux VM is completely awesome. The AWS management console cannot be easier to use. Selecting and creating the instance is well documented and painless. The course add-ins and configuration steps had some minor glitches, but the forums provided good support to resolve the issues. The exposure to Pastebin. Github, Ideone and Heroku provided hands-on experience to cloud-based developer tools that are either free or very reasonably priced. During the course several real examples popped up on my radar screen. Luc Stakenborg – AllthatJs.com- provides this demonstration of using Node.js plus SAP Gateway running on the Microsoft Azure cloud platform. This process could have been a homework assignment for the class. I also found this example of running a trial version of SAP’s NSP trial ABAP server 7.02 on an EC2 instance on AWS provided by Steve Rumsby. The knowledge gained from the course made these processes seem quite familiar.
- Virtual Machine and Cloud was covered above.
- E-books in Education – The last area that I wanted to experience was the e-book trend for education. There is no doubt that the cost savings will be very significant compared to hardcopy books and make education accessible to more people. What I did not appreciate or expect was how rich the e-book can be by providing external links to videos, websites and other reference materials. A well-done e-book can be much more valuable to the learning process than the “analog” version. I also appreciate the ability to access the text from my PC and my Android phone depending on where I was at the time.
Just after 8 am on a very rainy Saturday (yeah: rain, boo: no run!). Monday the first quiz and second homework is due. To meet the challenge head-on I do the most logical thing, I blog. I blog AFTER I check emails and my Twitter feed. The goal was to get at least 1 blog a week about the class as documentation of the process and the learning — FAIL. Now I will catch on the posting before I begin full panic mode. And part of the original goal was to try the online course because I believe this type of learning will overtake traditional approaches more rapidly than anyone will believe.
- About the course: This stuff is not easy. I will not be adding Experienced Ruby programmer to my LinkedIn Profile. To get the most out of this course, I think an introductory Ruby programming course is necessary. Ruby’s syntax, conventions and approaches are different enough from other languages to present a steep learning curve. Anyone not proficient with Unix was in deep trouble if they wanted to use the Amazon web services. There were enough issues – missing directories, errors in the configuration script and Github repositories that required decent Unix skills. Fortunately the class forums are active and provided the missing pieces to correct the problems. I am probably the ONLY ONE who broke the autograder. The method I created for sorting and counting words in a string worked flawlessly in numerous unit tests. The autograder had a slightly different opinion ( 0 out of 50!)
- Cloud computing This is NOT to endorse Amazon Web Services. Unless there is free stuff involved (t-shirts, caps, mugs, server time?)- just saying. As I said earlier getting started is ridiculously easy. The performance of the web console interface and the VMs has been painless and worry-free. To date, I have accumulated $0.00 in charges for my “micro” instance. In addition, because I “passed” the first homework assignment Amazon has provided a $10 credit for AWS and GitHub micro account for 90 days ($21 value). With the continued price drops for cloud services by Amazon, Microsoft and others, more processing will shift away from the house, the company office or the datacenter. This movement faces challenges: network bandwidth for quick response, system availability and data security. None of these are different from concerns that also apply to any computer resource connected to a network and then to the internet. And, of course, depending on the location connected to the cloud service( home, office, or datacenter) the mix of the concerns and the level of added attention and resources devoted to the concerns will vary. Over the next assignments more work on deploying a website to the AWS virtual machine and then to Heroku will provide some experience that will carry over to any other cloud-based environment.
- E-Learning In my initial post about tackling this course, e-learning offered by different entities — especially prestigious Universities and colleges seems to be the beginning of a major cycle of disruption regarding education. If you don’t trust me about this perhaps Seth Godin’s Stop Stealing Dreams might help persuade you that the old educational model is failing/has failed and must be re-imagined in order to properly equip the future generations. That said there is still a need for human interaction. This class had over 60,000 pre-register- that scale makes interaction impossible. The forums have provided useful student-provided assistants and tips for getting through some of the stickier issues. These forums are asynchronous and not good for the quick fix, immediate issues like an obtuse error message. I wonder how much more would have been possible with 4,5,6 or 10 people collaborating around a laptop. Could some other applications facilitate more of a real-time sharing? This may be an area for entrepreneurial development? Twitter might be useful, but the 140-character limit is well, limiting to good discussion.
- E-textbooks The final point of interest for this course was using electronic books instead of the hard copy. Certainly from a cost and convenience standpoint e-books will be of great benefit to keep student costs down. The great thing is the enhancements possible by linking to rich content on the internet. Many of the code examples are on Pastebin, allowing easy access to cut-paste the codes into a ruby interpreter to look at the code results immediately. This also presents challenges to the e-book publisher: maintaining the correct links. In a text with 100’s or 1000’s of links how are these verified, corrected, re-deployed to existing customers?
Enough. It is time to do now. Quiz first then to the code challenges for the homework. But first a tweet to link to this little post. ANd then check new tweets I’ve missed the last hour.. and then…..
The SaaS Engineering class officially began on Monday. The first weeks assignment 10 video lectures, averaging 10 minutes and 2 Chapters from the textbook. Thankfully NO assignments or quizzes – YET – those start next week. First impressions: the book seems solid but I have not yet become an e-reader fan. The video lectures have suffered and only one has not required at least 2 restarts to get through. It is not surprising with 60,000 people or so accessing the site.
The review of Agile development vs. legacy or Waterfall development helped. I have only a few months experience with Agile processes. One of the points made was that using Ruby, the rich tool development tool set and Agile methods, SaaS providers can deliver changes every 2 weeks. My immediate reaction was BS. My long experience with SAP and corporate IT says that changes at that frequency will not be accepted. Given a day to reflect, I’m less definite. I can see room for minor tweaks and bug fixes being quite possible when most of the code resides in the cloud. Changes to core processes and calculations for running the business still will require a more deliberate schedule with business testing and sign off required.
I experienced another “Homer Simpson” d’oh moment. In the lecture introducing the concept of cloud services the example of Farmville resonated. Four days after Farmville was introduced there were 1 million users. In 9 months there were 75 million. If Zynga was using in-house computers, the delivery trucks would have been a non-ending line to keep up with demand. Instead the Amazon EC2 cloud scaled easily with demand.
And a final thought for this post. The book contained a profile of John McCarthy, inventor of Lisp. The profile included this quote:
If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility …The computer utility could become the basis of a new and important industry. John McCarthy, at MIT centennial celebration in 1961
Patterson, David; Fox, Armando (2012-01-12). Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing, Alpha Edition (Kindle Locations 590-592). Strawberry Canyon LLC. Kindle Edition.
That my friends is a visionary statement.
If you know where I can grab a Cliff Notes version for this class, it would be awesome!
PS Also cool, when you cut and paste from the Kindle page, the reference information comes with it — keeps it legal, I like that.