Web development as we know it, is dead

Web development as we know it, is dead.  We keep looking for the common runtime that can run everywhere.  We yearn (remember Java) for the platform that allows us the promise of “write once, run everywhere”.  This, in the global sense, is a pipe dream.  My comments here are targeted for custom software that businesses rely on.  These are commonly referred to as business applications, or line of business applications.  The days of writing a business application for the web and expecting it to serve all users is over.  Only in a world where 99% of your users are using pretty much the same type of computer is this possible. (desktop/laptop computers – PCs/Macs)

I started web development in 1997 using Microsoft’s IDC/HTX technology that ran on IIS on Windows NT 4.  Soon thereafter, Microsoft developed Active Server Pages (ASP), then .Net, then MVC, now Web API, and is now working on TypeScript as a way for C# programmers to develop JavaScript for HTML5 applications using classes, namespaces, and some typing help (see my TypeScript FizzBuzz example)

For custom software, the web was a HUGE breakthrough in a world that saw software packages as things you deployed via floppy disk, and then CD ROM, and installed on every single computer on which it was used.  For companies developing and deploying custom software to a large number of users, this was a huge pain.  Remember that some of the first proponents of browser-based custom software and business applications were from corporate I/T departments that were bearing the burden of deploying and updating desktop applications.

Over the last decade, web applications for business have dominated.  This was a big new capability: run the software without installing it.  We can’t discount this.  It was huge.  The computing form factor, however, was unchanged.  It was the desktop.  In 2000, you were lucky if you had a 17 inch CRT monitor.  By 2003, 19 inch was becoming more popular, so early web applications were build with 1024×768 target resolution. 

Fast forward to 2013, and if a web application doesn’t have a responsive design, we scoff because it’s difficult to use it on the smaller web browsers found in mobile devices.  HTML5 represents a huge leap forward in capabilities for web browsers everywhere.  HTML5 is the next incarnation of the “write once, run everywhere” dream.  The same pipe dream.  The problem isn’t in the “write once”.  The problem is in the “run everywhere”.  And don’t get me wrong, I love HTML5.  This is my real license plate.

With HTML5, we try to target HTML5, CSS3, and JavaScript (ES5) in order to make one codebase function the same across all types of computers.  This isn’t possible because our code is being interpreted radically different across browsers on Windows, Mac, Linux, iOS, Android, and WP8.  Because the runtimes are different, we find ourselves using libraries like jQuery to on-the-fly adapt to platform differences.  We look to things like LESS to help us decompose our CSS that is bloated with browser/platform specific tags.  Because of all these issues caused by differing runtimes, we sometimes find it easier just to tell our business users: “just run Chrome.  It will save us a lot of money”.  Essentially, that puts us right back in the boat of choosing a runtime platform.

I’m discussing the world of business software here, not the consumer space where even a wrong choice of color will cause users (and revenue) to be lost. 

Web development, as we know it, is dead.  It had a great run.  Applications were greatly simplified with only 2 tiers to manage: the application, and the database.  We “told” ourselves that we were still 3-tier because the browser was the 3rd tier, but we had little control over that. 

The new world and the new face of web development for the business world of custom software is one where the application runs on the web server and is merely a set of APIs.  No presentation.  Talk about forcing separation of concerns (SoC).  This new world is one where we must recognize that the shape of computers has radically shifted and that clients are, once again, fragmented.  We will not be able to write one client application to serve all people or all platforms.  The new web applications of this decade run headless on the web server and merely interact with multiple clients.  We will be on the hook for developing as many of these clients as we determine is necessary to serve the business need.  And these different computing form factors will likely be differently designed.

For instance, an HTML5 client is likely going to be common for many scenarios including seldom-used features like maintenance screens (it’s really easy to do these here).  On the other hand, for people on the go, they will need to perform some functions from wherever over a 3G/LTE connection.  For this, the business needs to select iOS/Android/WP8 for the target platform.  This mobile app with then just talk to the application running on the server.

Soon, we will need to develop some client apps that run on the upcoming wristwatch from Apple and the eyeglasses (Glass) from Google.  And with TVs becoming so cheap, it is just a matter of time before it makes more sense to write a client for a display in the office instead of hooking a full PC into it (we’ll control the UI with the TV remote).

Yes, an era of web development has passed.  It will certainly have a long tail, but existing web systems need to expose their functions with HTTP APIs in order to support clients for necessary platforms.  We will never, as an industry, stop chasing the dream of “write once, run everywhere”.  After all, it makes too much sense.  But as long as the definition of “everywhere” keeps changing, we will be forever chasing.

Prediction: Dell & others to sell new Windows Azure mainframe server

Dell is clearly getting into the Windows Azure business.  With recent news of Microsoft investing in the privatization of Dell, many are wondering what the future holds.  My predictions are more about Microsoft and Windows Azure than Dell.

For several years, Microsoft has been creating a new operating system for data centers.  This operating system has been called “Azure”.  For now, Microsoft has created its own data centers.  We may speculate that Microsoft is trying to become a hosting and data center company.  After all, why stand up data centers all over the world?

I think the Azure data centers are a means to an end.  Microsoft, at its core, is a platform company.  They build tools that the industry uses to build solutions for companies.  Microsoft doesn’t want to compete with Rackspace and OrcsWeb for business.  On the contrary, Rackspace and OrcsWeb are great customers.  Microsoft sees the change in the industry in computer.  Microsoft is designing a new server operating system that manages multiple servers.  In fact, this new operating system is a data center OS.  Windows Azure is an operating system for a data center.

Microsoft needs Dell to create a new type of mainframe.  This mainframe will run Azure and will fit into a normal data center cabinet.  Dell and Microsoft can collaborate and deliver on the dream of a private cloud.  With a server form factor that fits in existing data center, Dell and Microsoft can deploy Windows Azure into every I/T department and colocation facility in the world.  This cabinet would have a set number of CPU cores, RAM, and storage.  It would be “gridable” so that it could collaborate with other Azure servers in the data center.

If Windows Azure is only available in Microsoft data centers, it will not succeed in becoming as successful as Windows Server 2008/20012.  In fact, Amazon could purchase and provide Azure hosting as well in its offering.  At its core, Microsoft doesn’t want to dominate the data center hosting business.  Microsoft wants to create the next operating system for the data center that will dominate the server market and enable hosting partners all over the world to serve their customers.

What a Windows 8 workstation looks like

With all the hype about Microsoft Surface, we desk-dwellers might be left wondering what’s in Windows 8 for us?  In fact, all the media attention we see about Windows 8 is filled with folks dancing around and clicking keyboards to tablets in unison.

I have recently set up a new workstation configuration with Windows 8 at the Clear Measure offices.  Here is what it looks like.

On the bottom-right of the photo, you will see a Lenovo Yoga Ideapad 13”.  The screen is 13.3” in diagonal, but because Windows 8 mandates a 16:9 screen, the laptop is the same width as the old 15” dimension that we normally associate with a full-size laptop.  The screen is a bit shorter, but this is a full-size laptop.  In fact, the slightly shorter screen made it fit nicely on the tray table on the Southwest Airlines flight I took on the way to the MVP Summit.

The Yoga is amazing.  The battery life is outstanding, and I can routinely make it last five hours with continuous use.  The only complaint is the track pad.  It requires a firmer touch for the left mouse click than I’m used to.  If you aren’t familiar with the Yoga, it is first a laptop with a touch screen.  Then, you can fold the screen all the way back around to form a tablet.  The computer disables the keyboard so you can hold it in your hand.

imageNext, I have a regular, boring USB keyboard and USB mouse (I no longer like wireless mice or keyboards because of the battery changing maintenance required).  Mounted at the back of the desk is Halter dual monitor stand.  It clamps onto the desk and has 8” and 10” VESA monitor mounts.  Mounted on the arms are two ASUS VS239H-P 23” LED IPS monitors.  The keyboard, mouse, monitors, and a couple other small peripherals are all attached to the Toshiba Dynadock Docking Station (PA3927U1PRP).  This USB 3.0 docking station is amazing.  It has ports for CAT5, DVI, HDMI, audio, 2 USB 2.0 ports, and 4 USB 3.0 ports.  It runs all the desk accessories and only requires one USB 3.0 port on the laptop, which it has.

The results have been great on everything except the monitors.  The docking station uses DisplayLink technology to paint the images on the screen through the USB cable and Toshiba device.  The DisplayLink technology use the computer’s processor to paint images on the screen.  Playing some video maxed out the processor a few times.  Now, if I wasn’t using my development tools, it would have been perfect.

In the end, I ended up plugging one monitor straight into the HDMI port on the laptop and leaving the other large monitor on the docking station.  The speed of the screen refresh isn’t seamless with this dock, but it does a decent job.  I only notice a jump when playing video or other fast refreshes.

This setup is working very well for me.  I run all kinds of programs on this configuration including Adobe Photoshop and Visual Studio 2012.  I spread screens out across the two monitors.

I would like to know what Windows 8 configuration you are running.  Post a comment here.
Feed: http://feeds.jeffreypalermo.com/jeffreypalermo

How I left a good company and started Clear Measure, Inc.

At the beginning of 2013, I founded a new company with a partner.  For the last year, I was the President/COO of a software consulting firm in Austin.  That company continues to do quite well.  I have broadened my focus a bit in order to provide “one click” experiences for clients

clearmeasure300We have defined Clear Measure, Inc., as a full-service custom software company.  In my  experience, executives of companies don’t want to spend time talking to vendors about the nuts and bolts of the custom software.  They just want it to work.  Developing new software systems is part of this lifecycle of services, but it is just one part of the picture.  Custom software systems live a long life.  In fact, some of our first customers are companies with existing systems that need a little bit of TLC.  They don’t need development right out of the gate.  One needs a hardware migration.  One needs a system upgrade.  These are all parts of custom software, so I’ve turned my attention to moving up-level and serving executives directly.

I had a great time there.  I helped the company grow from 5 people in 2007 to over 30 at the end of 2012.  And just this past year along, I was really proud to be a part of two “Best Place to Work” awards as well as the 67% year over year growth.

I also learned a lot while growing the company.  Initially, I was the only one doing recruiting.  Most of the people there, I personally recruited (so I know they are good!).  This past year, while finishing my MBA at the Jack Welch Management Institute, I worked on managing the company, from a new facilities build-out, to the finances, to sales & marketing (which I never really got good at).  I really enjoyed having a hand in growing and running the company.  And I really enjoyed working with the people.  Prior to jumping into the management parts, I was out in the field doing a lot of project leadership, agile consulting, and agile developer training.  I did quite a few software and departmental audits and assessments.  I missed all the hands-on work with the clients.  I have now taken this opportunity to start a new company and leverage my experience, my MBA perspective, and a market that I see changing rapidly.  My !wife asked quite a few questions because I was coming to this conclusion right as our third child was being born!  God has always provided before, and He will continue to.

I met my new business partner, Mark Stavrou, at a church function, and we have gotten to know each other pretty well over the last year or so.  He is a great compliment to my skills.  He has 20 years of experience in all kinds of sales & marketing, the last few in database performance tuning services.  Our business has taken off really fast, and now we are presented with the challenge of knowing how fast and how much to hire.

We don’t have everything figured out, but I thought I would share with everyone the change.  We are excited to see what the future holds.  As I update all my social media and Internet presences, I realize just how much I have scattered around.  It will probably be a while before I can find every old bio and get it updated.

If any of you have any questions, I’d love to try to answer them.  I appreciate the well-wishes from those of you who saw me update my LinkedIn profile.

If you are seeing this on the web, you can subscribe to my feed here.  I’m also on twitter: @jeffreypalermo

What if we modeled every user action as the passing of a document?

I was listening to a brilliant podcast on .Net Rocks where Carl & Richard interviewed Glenn Block, Henrik Nielsen, and Darrel Miller.  The topic was Web API, but it started with Henrik talking about how he worked as a student helping to create HTTP!  Great history lesson and a great philosophical show.

It made me sit and ponder modern architecture.  When I think about the parallels of HTTP and regular business, I keep coming back to the same premise: they both run by the passing of documents. Before modern computers existed, businesses operated by filling out paper forms and then placing them in the inbox of a clerk of a department. The clerk would have access to filing cabinets, and the clerk would process the form, sometimes creating a report or a reply message in the form of another document.

When I ponder modern architecture for business applications (that are all about productivity and the access to data/information), I keep coming back to the building blocks: passing documents. I think we have gone astray as an industry a little by creating applications that "edit" a customer record. The real business process behind this used to be a "customer change of address form" that was submitted to the office – behind the scenes the clerk would use some white-out (that’s too modern) and edit the actual record sitting in the file cabinet. But the interface between the person making the request and the system/clerk is the passing of a document!

Whether it is a client/server, smart phone app, or just a web application, I think we could make our designs simpler by modeling every user’s operation as a document.

I would love to hear some other thoughts on this.