I was just reading some speculation about the rumored Apple Tablet, i.e. iSlate and had this thought about the “use case we’re missing”. Apple builds value by owing the whole experience and stack (hardware to software). As the cloud becomes more important to the mobile use case, will they look to own that as well? (more…)
A quick post as I take a break from working on a new app for the iPhone.
It seems that last year, a month before WWDC there was already a buzz in the air around attending and getting a jump on the iPhone market.
I’m not seeing it this year. Anyone else feeling the same?
Developers are told repeatedly to “ship code to real users” and get feedback. How does this translate into the customer experience and their update cycle?
What do you think?
I’ve decided recently to move away from packaging up point releases and instead ship more frequent updates via the Sparkle+ framework. This will allow me to keep my motivation and engagement up, but could impact the user who will see more frequent updates. Which is a better approach for customers? Post a comment or ping-back with your thoughts.
On a related note
I’m working on several new features in MagicBrush-Photo that will be developed incrementally over time. In parallel there are bug fixes and minor tweaks occurring within the code.
In a multi-developer group, a more rigorous release plan and management would be a given (I hope). But for a single developer, do I really want to spend time maintaining branched code (current and development) and merging things back together for a release?
I’ve decided to not keep code merged and instead created a framework for setting a flag within the preferences of the application to enable development/partially complete features. This way, I can send a stand-alone script to testers to turn-on features within the current release.
Hopefully, these two changes in my approach will help me drive some significant new features more quickly to the users of MagicBrush-Photo
Here’s a little detour from theory into real life. What do you do in a fortune 500 company when a major software deployment is getting ready to go spiraling down the drain? Forget all of the issues around contingency planning, release management, and the other management buzz-words executive like to use. What do you do when the release is going nation wide in 24 hours and has to be installed and fully operational in 10,000 locations 48 hours after that?
Call on open source.
I was tasked with planning and staffing a war-room / command center to go live in conjunction with the release. Our requirements:
- Create infrastructure that could track issues to resolution
- Plan for communications that would enable a dispersed team to share timely information
- Be ready for round the clock operations in as little as twelve hours (worst case) or 18 hour operations in twenty-four hours (best case)
This was with no IT or desktop support resources assigned; no contracts to be negotiated or signed, no bureaucratic red-tape or politics.
Open Source…It just works.
In my last post, I began describing a technique that is based on the military estimate or appreciation process for developing strategy and operational plans.In a nutshell, when faced with any series of alternative actions that you or the opposition may take, you should look at three key alternatives:
- The worst thing that the opponent (or you) could do,
- The best thing that they could do, and
- The most probable thing they could do.
This is a classic method of forcing people to “think outside the box”.How many business people really consider the worst thing that could happen while they are planning?How many of them account for that eventuality in their plans?I’ve been in many too many meetings where the dissenting voice is quickly pushed aside with a terse “that won’t ever happen” when there are real possibilities lurking within the act of just thinking “what if”.So, when faced with alternative actions, force yourself to think of at least three alternatives, and make one of them the worst alternative for you. If your plans protect against that, you can at least be assured you won’t be defeated outright.
It’s amazing what a quick Google Search of business strategy turns up. Where are the deep thoughts and exchange of ideas that the internet is supposed to foster? Behind a login prompt and request for payment, mostly.
But developing strategy is not rocket science.Is it difficult? Yes. But only because it requires hard thinking (which we typically don’t want to do).What makes it hard? The fact that the devil is in the details. Creating and executing effective strategies cannot be done with superficial analysis or argument by analogy. It requires real honest-to-god heavy lifting to be effective.And maybe that is why people want to charge for advice and services on strategy development.Maybe it’s just because they don’t want people to truly understand.Over the next few posts, I’d like to collect may thoughts on strategy.Let’s start with the fundamentals. From my trusty Mac’s dictionary:strategy |ˈstratəjē| noun ( pl. -gies)• a plan of action or policy designed to achieve a major or overall aim : time to develop a coherent economic strategy | shifts in marketing strategy.• the art of planning and directing overall military operations and movements in a war or battle. Often contrasted with tactics (see tactic ).• a plan for such military operations and movements : nonprovocative defense strategies.ORIGIN early 19th cent.: from French stratégie, from Greek stratēgia ‘generalship,’ from stratēgos (see stratagem ).“To achieve an major or overall aim”– this is an important concept. If you can’t state what your objective is, you don’t have a strategy to achieve it. How often have you been in a business setting and asked yourself “why are we doing this?” It might just be because you don’t know what your true aim or objective is.
So what do all these categories mean to me?Good question.One of the key areas of focus inside the Baldrige Criteria is a focus on process. Now it’s easy to focus on results — we all can measure widget sales — but it is much harder to think about measuring processes. Let’s look at an example:As software developers, our key value creation process is development of software. Now, how do we measure how effective our software development processes are? Cycle-time per feature? Resources per feature? Unit or acceptance tests written and passed? Lines of Code (groan)? How?
Any of these could be “correct” answers within the criteria. The criteria only asks if process performance is measured and if those performance measures are used to evaluate improvements to the process. So, suppose I use unit tests written and passed versus time as one of my software development process measure. Another is features completed vs. features planned. How does that help me?The second part (using measures to improve process performance) is where the value is created. Continuing our example, suppose I have established that my development pace is 5 unit tests written per hour, and 98% unit tests passed. I’ve also complete 2 features per week and have twelve out of sixty features completed.Apple then release a new API such as Core Data.The next week my process measures may be 1 unit tests per hour but 100% pass rate. Also, I’ve not added any features during the week. Is this good or bad?Well, previously I was looking at 24 weeks remaining to being feature complete for the program ((60-12)/2). Now a week later, I’m still at least 24 weeks from completion.Another week passes, and now I’m back to 5 unit tests per programming hour with 99% pass rate, but I’ve got seventeen features complete. It looks like my projected feature complete date is now 9 weeks away ((60-17)/5).It looks like the week spent learning Core Data was a valuable change to my process. Additionally, if the trend on performance holds, I can move up plans for testing and ultimately delivery of my program.This is how process measures are used to assess and manage change.Of course, it is harder than my simple example in the real world The thing is, process measures don’t happen by accident. They can help you make choices and improve, but you have to consciously decide to create and use them. When you use them effectively, they typically help cut through the inconsequential cruft that tends to distract us and focus. And that is the value to us.So, think about measures of process performance as you move into a new phase of effort for your microISV product. How will you measure the effectiveness of your blog postings in marketing your product? How will you determine how effective your overall marketing and communications strategy is? How will you measure your effectiveness at identifying and addressing customer needs? These are all important.And the right answers can help you stay ahead of the competition.
Well, it’s been a while since posting. While I’d like to say that I’ve been busy writing code, that would be a lie. Instead, since returning from WWDC2005 I’ve been focusing on may day job, including I task I signed up for earlier in the year; being a Quality Examiner for the Missouri Quality Award program.
This process uses the Baldrige National Quality criteria to assess applicant organizations within Missouri. It’s a rigorous process, and takes a significant time commitment by the volunteer examiners.
What I’d like to do is spend a little time over the next few posts to discuss what I think a microISV (in general) and my microISV specifically can learn from the criteria.
Before those posts begin, however, I want to parrot a project management maxim: “Quality is something you plan, not something you test for at the end.” The Baldrige framework is general enough to be applied across industries and organizations of widely differing sizes. Quality is something that you need to think about as you are planning your microISV, not something you should think about as you close out your testing phase.
The Baldrige Framework
Leadership – Category 1
Examines how senior executives guide the organization and how the organization addresses its responsibilities to the public and practices good citizenship.
Strategic Planning – Category 2
Examines how the organization sets strategic directions and how it determines key action plans.
Customer and Market Focus – Category 3
Examines how the organization determines requirements and expectations of customers and markets; builds relationships with customers; and acquires, satisfies, and retains customers.
Measurement, Analysis, and Knowledge Management – Category 4
Examines the management, effective use, analysis, and improvement of data and information to support key organization processes and the organization’s performance management system.
Human Resources Focus – Category 5
Examines how the organization enables its workforce to develop its full potential and how the workforces is aligned with the organization’s objectives.
Process Management – Category 6
Examines aspects of how key production/delivery and support processes are designed, managed, and improved.
Business Results – Category 7
Examines the organization’s performance and improvement in its key business areas: customer satisfaction, financial and marketplace performance, human resources, supplier and partner performance, operational performance, and governance and social responsibility. The category also examines how the organization performs relative to competitors.
Next post: What it means to a MicroISV
Following the close of WWDC, I headed off to Napa for a little rest and relaxation before heading back to the paying job and full-bore development on the side. My wife and I stayed at The Old World Inn in Napa and spent a couple of days sight-seeing and wine tasting. It’s been a nice interlude and given me a few minutes to place WWDC in perspective.
Firstly, I think the switch to Intel will be good for the platform and still has some surprises for folks as the complete product roadmap and plan are revealed. Speculation on what things Intel has in store or the possibility of a multiple CPU product mix segregating the high end and mobile machines could provide interest.
Second, WWDC was a mixed bag this year. The technical session were generally very good, but there were things that left me wondering about the overall value, as well as the commitment by Apple.
Finally, I do want to say that I’m glad I went to the conference, but I don’t know if I’ll attend next year. I think there might be better places to spend my money.
As the dust settles on Apple on Intel I can’t help but think we don’t have the complete picture. What is missing is the fact that we don’t know what the complete product roadmap looks like. Speculation on a multiple CPU strategy depending on the client makes sense given that developers are being told in no uncertain terms to migrate to XCode. Only time will tell.
In the mean time, I’ll continue to plug away at creating some new software that will run on either architecture. But more on that later.