The subtleties of the iPad announcement are brilliance in marketing

•February 3, 2010 • Leave a Comment

Without going into a big diatribe about how great the iPad is or how bad it sucks, and what the hardware specs are, I thought I’d bring up a couple interesting things about how it is being brought to market that continue to show Apple’s brilliance in marketing.

First, yes there will be Apple “fanboys” who buy the iPad that already have a Macbook, iPhone, or whatever whether they need it or not. However I think the market Apple is really targeting are less sophisticated potential netbook users. Look at Google’s Chromium project’s Chrome OS. This OS is a great idea in my opinion, and this is coming from someone who NEEDS a PC to do his job. People like my Mom have a laptop already but hers is aging, and she never uses any CPU intensive programs. She just wants to use Facebook, surf the net, look at and upload photos, view email, and view a PDF every once and a while. This is all doable in the browser today with all the online sites.

The iPad is targeting this same group of people, but via a typical Apple design approach, they have spent the time to make the integration between several more frequently used applications extra seamless. Chrome OS will be a great experience, and Google’s online apps do integrate and offer a simple user interface, but Apple always has that little bit of extra sex that makes selling their products easy to less-technical users. The backward compatibility with the iPhone apps is also a great way to get a bunch of functionality out of one of these devices for little to no cost on day one.

Secondly, I know Apple is waiting for FCC approval and we’ve seen stories of pending lawsuits, but I think the fact that you can’t order an iPad yet is also strategic. With the Tablet concept having been tried before over the years, Apple is feeling out the feedback of its initial announcement from the current generation of users. I think they have the will and way to make last minute adjustments to the feature set and hardware specs to see this thing hit big. Only time will tell.

48 core cloud on a chip unveiled from Intel

•December 3, 2009 • Leave a Comment

Pretty amazing. It is only useful for certain applications, but for those, the ability to process algorithms in parallel that can communicate on-chip at this scale is huge.

http://hothardware.com/News/Intel-Unveils-48Core-SingleChip-Cloud-Computer/

Kanban and lean methods for software development

•March 28, 2009 • Leave a Comment

A brilliant manager named David Anderson from Corbis has a presentation up on InfoQ about his work in helping single project development teams, and eventually entire organizations, adopt a Kanban system for software development. Kanban is a japanese term that comes out of the lean manufacturing principles that originated with Toyota’s approach to manufacturing.

David describes setting realistic limits for the work in progress at various stages of the software development process and using a whiteboard and sticky notes in novel ways to accomplish this. He also goes into a variety of benefits realized in efficiency of the organization, quality of delivered features, collaboration of staff, customer satisfaction, and agility of the process that resulted from this.

I worked for about a year at a company that sells software to manufacturing companies before moving to Austin that was trying to get lean manufacturing software out the door, as well as find ways to adopt these principles internally. Through my reading about Toyota and lean manufacturing in general at the time, I had no doubt that utilizing these techniques (of which Kanban is only one) would mean big improvements at any company.

The challenge is always in selling decision makers on the approach. In the consulting environment you are often contractually obligated to deliver a project with a known set of functionality by a given date, and at a given cost. In this situation you would need to convince the client that by not knowing a final date for all the features up front, the other benefits in efficiency, quality, and agility outweigh the need to hit a specific date. The feasibility of selling this approach to a client depends on the motivating factors behind their choice of an end date, and the degree of confidence they have in you.

Controlling a WPF application with your mind

•March 27, 2009 • Leave a Comment

This technology has been being used in research labs for many years, but it’s just starting to emerge as something we might see being used in the ”real world” more often. An interesting video demonstrating integration of a headset about to be released commercially this year with Microsoft’s Windows Presentation Foundation (WPF) technology can be viewed here.

SQL 2008 Analysis Services Step-by-Step RTM

•March 25, 2009 • Leave a Comment

Another book on SQL 2008 Analysis Services is about to hit the shelf. Get some details about it here.

From products to consulting – lessons learned

•March 24, 2009 • Leave a Comment

I’m just starting to approach 1 and 1/2 years as a software consultant after 12 years at product development companies. Making the switch has been an invigorating, at times frustrating, job. Here are some random things I’ve learned while making the switch. Some of these statements don’t apply universally (of course) but I think in general they are pretty accurate.

  • Don’t settle for vague requirements

    At product companies there is less accountability, more risk taking, and budgets are looked at more loosely. In consulting these same companies will hold you accountable, look hard before taking on risk, and watch your billing like a hawk. In this environment you can not afford to have vague requirements. Even if it means taking longer than you anticipated for the requirements/analysis phase of your waterfall or agile project iterations, its worth it. Capture business rules, alternate paths, default values, and mock up user interfaces with Visio or Balsamiq to get client confirmation.

  • You can’t always deliver the best solution

    At product companies your goal is to create world class products. In consulting your goal is to create value for the client within a budget they can afford. This more often than not means choosing the more cost effective but less robust solution.

  • Don’t execute on verbal agreements

    If a client tells you something, get it written down and get them to agree to it via a email, signature, or other tangible, trackable asset. This helps to ensure that both parties are kept honest and that you don’t lose track of important statements made that affected your decisions later in the process.

  • If you can’t redo it all, learn how it was done

    Product companies and consulting clients alike are often replacing existing systems with new technology. If you can’t get a client to sign up for a vision of replacing the entire system, it’s often better to learn how the existing system works, even with its faults, and build new pieces with the limitations of the existing system (but with new technology) first instead of rolling out a radically different new implementation, even with better usability. If you don’t do this, you run the risk of having the client more focused on (and worried about) what they perceive as missing from the new code base instead of how the old features you didn’t port yet need to work in the new system.

  • Minimize distributed teams

    In a nod to agile and extreme programming, get stakeholders in the room. If gathering requirements and doing design, this means domain experts AND technical leads with a stake in the project. It’s too expensive to reset expectations later in the game. Occasional meetings don’t cut it.

  • Don’t co-develop architecture

    If you are creating a new framework upon which to build an application, don’t have some parts designed by another team than the other. This goes for database schemas as well. These critical pieces should be done with both team’s stakeholders in the room (see above) or by only one team at a time. It’s too costly to try to sync things up later, and no matter how hard you try to set guidelines for both teams to follow, you will leave something out that causes rework later. Rework is much more expensive to a core architectural component than in code artifacts at a layer of the architecture itself.

  • Keep it casual

    Try to have fun when you work with the client. Nobody likes someone who is serious all the time and you can work through a difficult situation easier when people are disarmed (including yourself).

I’m glad Microsoft is embracing convention over configuration

•March 20, 2009 • 1 Comment

I read Agile Web Development with Rails while visiting San Diego a couple years ago and was blown away by how well put together of a framework it was. What the book helps you realize is that if you follow certain naming conventions for your code artifacts (in this case ruby source files), it automatically wires up communication between the different architectural layers of your application.

With the recent release of ASP.NET MVC 1.0, which is Microsoft’s answer to ruby on rails, Microsoft has provided what seems to me to be a simpler approach to web applications and adapts to testability better than the oft-complicated event model of existing ASP.NET web applications.

I also downloaded Silverlight 3 Beta, Expression Blend 3 Beta, and Microsoft’s Rich Internet Application (RIA) toolkit preview. The new version of Silverlight has a ton of controls, and I love that editable forms with built in wiring up to validation are included out of the box!

When you have the RIA toolkit installed, you can create a data model in Entity Framework in your web application, create a special link to it in your Silverlight “client” project, and you can wire up similarly named domain objects to databind to your Silverlight project and the databinding hits the server using REST transparently. It’s very slick.

Microsoft’s future of health proof of concept

•March 20, 2009 • Leave a Comment

I still have reservations about all this private information floating around on data centers to applications but this concept video is pretty interesting.

Microsoft Worldwide Telescope

•March 20, 2009 • Leave a Comment

You can navigate the stars from a point of origin in 3D and browse shots taken by space exploration vehicles from various angles.

Click here to run it through Silverlight in your browser

This is pretty cool!

Microsoft’s vision for productivity

•March 10, 2009 • Leave a Comment

This video contains a presentation by Stephen Elop who recently joined Microsoft about a year ago. He certainly is a great presenter and the technologies showcased here are very exciting. I’ve been waiting for these kinds of advancements in user interface since IE4, which is in my opinion that last truly big innovation in UI prior to the iPhone. Silverlight, AJAX, DOM manipulation, social networking, and animation and effects have all been around since 1998 but it has taken the industry a long time to make these available to everyday businesses and projects.

I find it interesting that Stephen says these technologies and this vision is based on having these systems prevalent even in light of our current economic challenges in the next 10 years. I personally do not watch mainstream television because I have done enough independent research to know that the vast majority of economic and political advise is frankly false. I wonder what economic forecast this vision took into account to make this statement.

Regardless, this is a great video.