Monthly Archives: January 2012

Agile software development as a business philosophy

When you’re charting new territory with a product or service, it can be difficult to explain exactly what you’re doing.  It’s easy to say “We’re like XXX, but faster/cheaper/better.”  But when you’re helping to create a new market, you have to invent a new vocabulary to describe it, or at least find old markets that can serve as analogies for the new market.

Such is the case with a rising breed of social, enterprise services.  Wells Fargo analyst Jason Maynard is predicting a $4 billion market in “engagement apps” over the next few years, a market that hasn’t existed before and can therefore be somewhat squishy to describe.  In a new report — “Fostering the People: The Shift to Engagement Apps” — he makes a valiant attempt:

Business applications are moving beyond merely transactional and analytical functions and are becoming critical tools to engage with customers, to improve productivity, and to facilitate collaboration within the enterprise and throughout the entire value chain. With the digitization of local commerce and the growing adoption of social operating platforms, mobile computing, and global value chains, we believe the trend toward business of adoption of “Engagement Apps” will grow rapidly and rise in importance over the next five years.

These systems represent a new layer in the application topology, moving beyond analytical and transactional systems. We define engagement apps as applications, processes and analytical tools that enable companies to actively interact and empower interactions with customers, with and between employees, and with external partners across the value chain.

These apps should be native cloud, socially aware, mobile ready, and embedded with intelligence. Collectively we contend the shift to engagement apps will manifest into a new system of engagement for these processes that sit above existing transactional and analytical applications and data. We think engagement apps can be segmented in the following three main categories: (1) social CRM or customer experience management, (2) internal productivity, and (3) external value chain collaboration.

Nodeable is focused on enabling #2 and, to a lesser extent, #3, but one of our developers, Jason Whaley, recently pointed me to an even pithier way of describing what we do, and this broader market:

Individuals and interactions over processes and tools

For those paying attention, this brief sentence comes from the Manifesto for Agile Software Development.  I really like this encapsulation, because it goes a long way toward describing how software principles, and particularly agile software development principles, are affecting the way we do business.  Agile development is inherently social, is open to constant “interference,” and treats the conversation around software development as important as the lines of code written.

Why?  Because that communication directly affects output.

Peel away the layers surrounding the complexity of some of the industry’s biggest trends, be it Big Data or open source or mobile, and you find an implicit need to be social.  For example, much of the data in Big Data are created by social interactions, and businesses are increasingly being driven by mining those data to increase social purchasing behavior.

The software world is moving beyond tooling and rigid processes to focus on the communication around software.  That’s what Nodeable does, making machine data intelligible and actionable by developers.  Letting developers talk more freely with their systems, even as they increase their communication with other developers, makes them more productive.  Which is why Nodeable exists.

Software development as a Twitter stream

Enterprise software companies are increasingly turning to consumer-facing services like Facebook and Twitter to figure out clever ways to engage users.  Even stodgy old IBM, which has inflicted the Lotus Notes experience on enterprises for years, is getting in the act.  This isn’t surprising, given how appallingly bad the user experience has been for enterprise software.  If IT isn’t using a system, it’s difficult for the purchasing team to focus on the needs of end users, rather than their own requirements (security, features, etc.).

But most activity streams are still a rushing river of information, not nearly selective enough about the type, timing, and form of the information they share.

Take my own personal Twitter stream.  To keep my stream manageable, I only follow 332 people/things.  Even this, however, is way too much.  I miss most of what happens in my stream, as I don’t want to spend all day staring at it.  I have work to do.  (Really, I do! :-)

Yes, I can set up filters (saved searches and the like), but I find these a bit difficult to manage in Twitter’s browser-based interface, and I no longer like going to a separate, native client.  What I really want is for Twitter to become much better about serving up a pared-down stream with the updates I actually want to see.

Facebook tries to do this with its “Highlighted stories first” sorting mechanism.  But in my experience it does a terrible job of determining what I want to see first.  And this after plenty of coaching the system as to whose updates I want to read on a regular basis, and whose I can live without.

Here at Nodeable, we think we’ve cracked the code on managing the stream for cloud systems. After talking with developers and operations people from a range of large and small enterprises, we have a pretty good idea of what sorts of information people want from their systems stream, and we crunch a lot of data on our global pool of users to ensure we’re constantly balancing what we inject into the stream and what we hold back for individuals.

A user, for example, likely doesn’t want to see her Ubuntu guest images on AWS constantly chirping that “Everything is fine.”  That’s the equivalent of “Woke up.  Made toast.  Ain’t life grand?” tweets that no one wants to read.

But if Ubuntu is trending, or if a threshhold storage limit is reached, or if memory is spiking 30 minutes after a GitHub commit went live, I probably want to know those things.  And if we can see that Amazon East is slow, suggesting a move of one’s app to Amazon West is something I’d likely want to know.  And so on.

At first, it’s unlikely that developers will want the system to make big decisions for them.  But over time, developers want to spend building applications, not managing their infrastructure.  Each developer has different requirements, however, and Nodeable allows her to guide the stream accordingly.

In my case, for example, I want to see all of our GitHub commentary and commits, and so have that data stream set to deliver verbose updates (see left).  I care less about our AWS instances, however, and so tightly rein in that stream.

Nodeable makes tracking the software development lifecycle easier, both by delivering timely, useful information in a data stream, but also by helping to take actions against that data stream, based on set responses to certain thresholds, but also based on what other users do in a given situation, and what you’ve done in the past.

The stream, in other words, is not the sum total of what’s going on in one’s cloud systems like AWS, GitHub, JIRA, Salesforce, etc.  It’s the actionable, information-rich stream that follows and coaches the software development lifecycle.

Or, rather, that’s what it should be.  And it’s just part of what we’re doing at Nodeable.

Sales or no sales? Learning from Atlassian and Box

The holy grail of any business is to effectively lower the cost of sale to $0.  Popular developer tools vendor Atlassian seems to have cracked this code, cranking out $102 million in revenues in 2011 without a single salesperson on staff.  Not one.  There aren’t many companies that can claim that sort of success.

Some, like Groupon, would likely give anything to be more like Atlassian.  Groupon, after all, stumbled on its way to an IPO due to its horribly high sales and marketing costs, which effectively meant that the company was ever more unprofitable, the more it sold.  This led some to declare it a massive Ponzi scheme, and others simply to avoid buying into its stock.

But the alternative to Atlassian isn’t necessarily Groupon.  Take Box, for example.  In a conversation I had with Box CEO Aaron Levie last week, he stressed that his salesforce is actually a competitive advantage for him against competitors like Microsoft and IBM:

Having a salesforce is really helpful because it’s a great feedback loop on what’s happening in the market.  We learn about cutting-edge customer problems, and can then implement features or fixes within weeks to meet these needs whereas Microsoft will take years between product releases.

Levie has a point.  The downside to Atlassian’s salesforce-free model is that it lacks customer face time, which can not only lead to bigger sales but also to improved products.  Atlassian would credibly respond that it has all sorts of activities that help it get feedback from its developer customers, including its Atlas Camp.

And it would be right.

I learned at Alfresco that as useful as a salesforce is for gleaning customer requirements, it can also isolate the engineering team from real-world customer interaction.  Once it becomes “someone else’s job” to work with the customer, it becomes too easy to rely on indirect feedback.  That’s why I would follow Alfresco CEO John Powell’s counsel every single time: for the first year of Alfresco’s existence, he and I were the company’s salesforce, and we nearly always involved members of the engineering team in sales calls.

At Nodeable we, too, are trying to err on the side of earning revenues without a salesforce, but we’re hoping to extend it beyond the first year, Atlassian-style.  This is easier said than done.  It requires a relentless focus on a high-quality product that essentially sells itself over the web at a price point that can be handled on a credit card, at least initially.  This means documentation must be awesome, and the out-of-the-box user experience must be even better.  There should never be any question as to what the customer is buying, and why.

Atlassian nails this, as does 37Signals.

Doing so eliminates one of the biggest headaches in any business: managing a sales team.  From dealing with commissions to figuring out proper incentives, the sales team ends up consuming a huge amount of time (and money).  FogCreek summarizes the headaches quite well:

The problems include infighting over who gets credit for accounts and sales. They include constantly comparing territories and account value to determine fairness between salespeople. They include an enormous amount of overhead as each salesperson sedulously tracks every transaction no matter how minute to make sure they get paid on it (by the way, they hate having to do this, and it’s a staggering waste of time. It’s also a place where weak salespeople like to hide out).

All of this is organizational dysfunction, and it’s a recipe for resentment and distrust among your team.

Management then tries to correct for these problems. They constantly drop or add ballast. They have to carefully structure the pay plan, the territories, the lead assignments. They have to referee disputes, tweak the various systems, and try to keep everyone happy. It’s like a spinning top and every time it starts to wobble, management has to try to nudge it back. It’s a large amount of effort spent propping up a system that we have all just assumed is necessary.

Sound like fun?  Not at all.

All of which is just one more reason to respect what Atlassian has done, and serves as an inspiration to we at Nodeable who would like sales without the sales headaches.  In theory, managing a sales team is the nature of the beast when running a business.  But Atlassian calls that theory into question.

I’d love to hear your experience.  Does Sales bring more value than it wastes?  I ask this not as a loaded question, as some of my favorite people and best experiences have come in the midst of running a sales team or selling myself.  But I’m curious as to whether others think it’s inevitable.

Tagged , , , , ,

Making Big Data Small

One of the casualties of the Big Data explosion is that we still have little idea what to do with all these data. In a world that allows us to collect data on click-throughs, purchases, weather patterns, traffic, etc., we can amass so much data that we’re drowning in it.

My friend and venture capitalist Bryce Roberts made this point recently, arguing that “Data, big, medium or small, has no value in and of itself. The value of data is unlocked through context and presentation.”  He’s right, and the solution isn’t to graduate and hire a nation of data scientists.  (Apparently we have a shortage.)

No, the solution is to make the data speak to average people, using familiar media like Twitter or Facebook.

I view this as similar to what Microsoft did for system administration and development.  Microsoft may not have always played fair on its road to the top of the enterprise software heap, but much of its success stems from enabling average IT people and developers to be productive through things like Visual Studio.

Sure, we’re all above average.  Or so we think.

But for those few, unlucky souls doomed to be average, well, the Big Data movement needs to lower the bar to entry and productivity.

This is one of the guiding themes at Nodeable.  We believe strongly that the DevOps trend is real, and means that a great deal of exceptional programmers are suddenly…below average Operations people.  It’s not that they have low IQs.  It’s just that doing operations well requires years of experience, just like doing most anything well does.  Developers, however, want to focus on building applications.  They want 90 percent of their job to be “Dev” and 10 percent to be “Ops.”

So that’s what we do.  We tame the “Big Data” in cloud systems to enable developers to visualize and control the complete software development lifecycle.

What to call this?  We’re still not sure, but Dan Woods comes close in a recent blog post for Forbes:

Operational Big Data is about automating and streamlining the process of distilling huge amounts of data into a form that can support decision making and process execution….I call these vendors [EMC, IBM, etc.] operational because historically their main value claim is to increase speed of processing not the speed at which analysts work. All of these vendors know that they will succeed more if they can make their products less complex and more agile, and some like EMC Greenplum through its Chorus product are attacking the issue head on. All of these operational vendors support a process of discovery, but usually it is on that is far more intermediated than the hands on experience of using something like Splunk or 1010data. The data visualization and exploration vendors Qlikview, Tableau, and TIBCO Spotfire have all been helping bring agility to the operational data vendors.

I’m not sure I’d agree that these particular vendors are doing enough to make Big Data easy to understand and actionable, but I like the term “Operational Big Data.”  And I agree with the thrust of his argument that the vendors who succeed at making complex data easy to visualize and take action against will be big winners.

That’s what we do at Nodeable.  We make systems data as easy to read and work with as a Twitter stream, which is considerably easier to grok than IBM’s Netezza or other products from the traditional enterprise software crowd.  They’re still so concerned with how “big” they can make the data that they’ve neglected that the real value is in making it “small,” that is, easily understood by someone that didn’t get the PhD in data science.

Crossing the (Cloud Naming Convention) Chasm

If you wanted any proof that cloud computing has gone mainstream, look no further than the names of recent “cloud” companies.  Like Boundary.  Or Nodeable.  Or…take your pick.

Whenever there’s a new technology that takes Silicon Valley by storm, entrepreneurs desperately seek to compete on everything but naming conventions.  Back in the day, if you were an open source company, you either had the name of the open source project in your name (SugarCRM, Alfresco, etc.), or you had “Source” somewhere in your name (SourceSense, MuleSource, etc.), or both.  The idea was to highlight the fact that you were an open source company, with all that entails (low cost, open technology, etc.).

The cloud computing revolution has brought much of the same.  Cloudscaling, Cloudera (which isn’t actually all that much about clouds, but…), Cloudswitch, CloudKick, Cloudshare, and more.  Cloud computing is new, and the companies helping to drive it forward want to make sure they call this out in their name.

This actually isn’t any different from life in the Microsoft (“Microcomputer Software”), IBM (International Business Machines), VMware (virtual machine-ware), and others of older vintage.  Tech companies have long wanted to showcase themselves as leaders in a given technology trend by embracing the name of that trend in their corporate names.

No, not everyone does this.  The cloud world is full of Joyents and RightScales, which haven’t plastered the “cloud” brand on their corporate name.  But enough do that it’s noticeable.

At Nodeable, we take cloud adoption as a given.  Hence, our name isn’t “Cloudable,” but rather “Nodeable,” which name we took to signify the idea that anything – any node – can/should communicate or be communicated with.  We then visualize all these disparate data in an easy-to-use UI that makes interacting with and managing the systems, or nodes, easy.

This is something the cloud enables, but it’s not the cloud, per se.

Which is eventually what happens with technology.  We stop wearing it on our sleeves and instead start using it to solve business problems.  I think we’re getting there with the cloud, and long ago reached that point with open source.  So the big news around SugarCRM and other “open source companies” is that they no longer emphasize open source at all, but take it for granted and instead emphasize business value.

We’re not quite there with the cloud, but we’re getting there fast.  Right on time.

Governing the cloud, developer-style

Governance is supposed to be The Next Big Thing for the cloud in 2012, as enterprises get serious about managing the cloud sprawl that has mushroomed as developers and others have sought to get work done by sidestepping bureaucracy.  Enterprises are trying to get out in front of the cloud train, often to no avail, because the very premise behind adoption of cloud computing cuts against enterprise efforts to control it.

That’s the whole reason DevOps has become a real phenomenon.  The cloud has given developers the ability to build and manage their own applications, without a heavy Operations infrastructure.  Or has it?  In the shift to DevOps, a developer wants to spend the majority of her time on development, not operations.  Yet the “Ops” remains a critical function.  Call it governance.  Call it whatever you want.  But whether in a free-flowing enterprise or a stodgy old-school enterprise, there still needs to be a level of operational oversight.

Adam Strichman, president of Sanda Partners, suggests that 2012 will be the year “Companies will begin to publish firm policies on what can be cloud, who has to review cloud services, what data can go into a cloud service, and who has to be involved in [cloud] decisions.”  He’s probably right.  But in this rush to govern the cloud, enterprises may well end up crushing the very thing the cloud affords them: developer flexibility and (often) predictable, lower costs.

So how to achieve both?  How to give developers flexibility without letting their cloud systems become unwieldy?

One way is to give them management and monitoring tools that fit their existing mindset and workflow.  Something like Twitter, which has proven so adept at managing one-to-many relationships.  Traditional IT management tools are not very good with this, because they don’t know how to visualize this one-to-many sort of relationship.  Nodeable is an example of a company that has built a DevOps-friendly monitoring and management service that allows developers to focus on development while delivering operations management for disparate cloud services in one, easy-to-follow Twitter-like UI.

Even as the enterprise seeks a “standard set of management APIs for SaaS, PaaS and Iaas,” developers deploying to AWS or other cloud infrastructure also need a common way to manage disparate services in one place.  Bonus points will be given for tools that learn from the “data exhaust” these systems create, and coach the developer on how to fix an issue, based on what has worked for others in similar circumstances.

Systems management in the cloud, in other words, is a Big Data problem, and one that needs to be simple and intuitive for a developer to use, so that she can focus on her application, and not all the operational complexity that goes with it.

This is what we’re doing at Nodeable.  You should sign up for our private beta and tell us how we’re doing.

Tagged ,
Follow

Get every new post delivered to your Inbox.

Join 53 other followers

%d bloggers like this: