I've been using the 'Web Developer Toolbar & Menu for Opera' for about the last month and after being reminded today about how useful it is, I thought I should probably mention it for those that haven't heard about it.
This is an extremely useful set of toolbar modification to Opera to have a few very nice touches to it. For most of these tasks, there is a Firefox extension available, Web Developer, which does the job quite nicely. Though switching back & forth just to check something small can be quite a pain (as Opera is my primary browser), so thanks to this little gem, it save me that much more time.
As they say, time is money, so every bit saved is a good thing.
“Perfection is achieved, not when there is nothing left to add, but when there is nothing left to remove.”
Antoine de Saint-Exupery
Such a simple statement; yet one of such power. This statement carries a new impact as the concept of “Extreme Simplicity” gains ground. The idea is that instead of focusing on adding more features (Microsoft), do a few things, and do them very well (Apple).
This is a great concept, focus on the user, focus on what the user spends most of their time doing and keep all the rest out-of-the-way. I’ll be the first to admit, I’m addicted to gold plating. If I think it’s cool, I’ll add it, which is most certainly at conflict with this concept. This is one area were the two goals leave me quite torn, giving the user every feature possible versus a simple – even minimalistic interface.
All things considered though, this is where things are going. Simple, intuitive designs sell; it’s that simple. People expect technology of any form to fit in their lives, as simply as if it wasn’t even there. By building around the core of what the user does and minimizing fluff to enhance the user experience, you’re giving the end users what they want.
As written by Andreas Pfeiffer, here are the 10 fundamental rules of Extreme Simplicity:
- More features isn’t better, it’s worse.
- You can’t make things easier by adding to them.
- Confusion is the ultimate deal-breaker.
- Style matters.
- Only features that provide a good user experience will be used.
- Any feature that requires learning will only be adopted by a small fraction of users.
- Unused features are not only useless, they can slow you down and diminish ease of use.
- Users do not want to think about technology: what really counts is what it does for them.
- Forget about the killer feature. Welcome to the age of the killer user-experience.
- Less is difficult, that’s why less is more.
We all know that users don’t want to think; this design philosophy further refines the concept and simplifies it to the point that it can be applied to almost any form of technology. By designing with a goal of maximizing simplicity, you create software that fits in the users’ life, instead of fitting them into your product.
If you want your product to sell, find a way (though difficult it may be) for your product to be both indispensable and unobtrusive.
My employer recently completed the final audit to confirm ISO 17799 compliance, the process was a real eye opener. In a process that should have been fairly short & painless, the ordeal lasted close to a year, with me joining the company just before the second, and largest audit. That made my first few weeks rather interesting, to say the least.
While 17799 does have some complex requirements, most of the issues found had more to do with the overall mentality than with the true technical issues involved. The mentality at work tends to be to not seek what’s secure, but to find what works, and what’s fast – regardless of its impact. Without always being aware of the security issues involved, it’s easy to introduce significant vulnerabilities into a system.
There are three primary groups of thought when it comes to security:
- Those that don’t know or care.
In the business world, these are by far the most common users, they don’t understand the implications and they typically want to keep it that way. These users introduce an amazing number of issues into a system. - Those that know, but don’t care enough to do things right.
These are less common, though they pose an equal, if not greater risk. When the pressure to have tasks done in an extremely short time is high enough, security shortcuts are often the result. While it typically doesn’t add significantly to time-lines, there is a time cost to ensuring that proper processes are followed. - Those that put security first.
This is the smallest group, though when equipped with the proper authority, can have the greatest impact. These rare people who both understand and care tend to carry the burden for the ignorance and laziness of the other major groups. It is there duty to see that data is secure, and systems are well protected against possible attacks.
Keeping a constant eye on security is critical, especially for developers – as our work can have an impact on such a large number of end users. Many developers tend to under-appreciate the impact they can have, both for the good their work does, and the harm their mistakes can cause. Finding a clear understanding of the implications of a decision is vitally important.
Even if you think something may not raise a security issue, take the time to evaluate the possibilities. Its well worth the time, trust me, I know this. A single error on my part as to how the application needed to secure its data led to a public announcement of the issue to the famous BugTraq mailing list. A simple mistake, with a definite impact on how I view potential security issues.
Thankfully that issue was small enough that it didn’t cause any real harm, but it certainly taught me a lesson. In that decision, I didn’t consider the possible implications, it led to what I consider a rather public embarrassment.
Next time you work on a feature that could be abused in any way, take a few minutes to think about ways to make it safer and more secure. You’ll thank yourself later.
A few days ago, one of my favorite blogs mentioned this interesting service, Valleyschwag. For $15 a month, will bundle up a package of the best schwag being handed out in silicon valley, and deliver it right to your doorstep. This really is a great idea, for a few reasons.
A new twist on Viral Marketing
I really like this concept, from both sides of the coin. For companies, they can supply these promotional items at minimal cost to a larger, more targeted audience. While for the end user, they pay a fairly minimal service fee to receive cool stuff. What could be better, free stuff & nearly free advertisement.
This allows for some really creative marketing, getting the brand out without wasting money on sending products to those that have no real interest is critical. With so much money wasted on typical give-aways, for many companies with a lower budget, such promotions aren’t an option. A service such as this is great for these smaller shops, it allows doors to be opened that otherwise would have gone untouched.
Let The Bribing Begin
Let’s face it, free stuff is great, and people love it. The $15 being charged is close enough to free for what you’re getting, at least one shirt, plus enough stickers to cover that ugly laptop. In general, people are easily bribed, and when good companies with good products do the bribing, it works out great for all involved.
The Future of Marketing
These companies realize something important, traditional forms of advertising aren’t that effective, and among the web crowd, even less so. To get your name out, you need to not only have a good product, but give users a reason to talk about your product. Word of mouth is the way to go, and with lower-budget Web 2.0-types seeking ways to build buzz, this provides an excellent opportunity.
The companies that donate these items receive not only more, but better press than they could buy. If this works well, expect to see copy-cats springing up in other industries. This is certainly an interesting idea and I can’t wait to see where it goes.
I’ll be keeping an eye on this, I’ll post again once I receive my first package.
I’m a developer, and I love what I do, it’s a great industry, and a very exciting field to be in. If you read my blog often, you’ll see I take every opportunity to mention how great this line of work can be, today I offer a somewhat different, less sugar-coated view.
The Pressure
There is a constant pressure on developers to be better, to do more, to produce more, sometimes more than is possible. The budgets are getting smaller, and projects becoming more complex, the pressure on a developer to deliver more is extreme.
While everyone strives to be better, this pressure is different, this is the pressure of a CIO explaining the shouting match that ensued at the last status update, the pressure of a senior VP explaining the project must be done today. These are the pressures that cause developers to push themselves to not just be great, but to attempt to achieve super-human productivity.
By pushing so hard, a developer can achieve an amazing amount in a short time. With the help of enough sugar & caffeine, it’s possible to pull 16 hour days, coding the whole time. When management realizes this, they turn the pressure up even higher, expecting such feats on a regular basis.
While members of management that deal directly with developers tend typically to not push for such attempts, senior management sees it as a way to get an extra developer, without cutting another pay-check. Why hire someone if you can get your current staff working 80-hour weeks (ideally for no extra pay)?
Once senior management sees that so much more can be done with the right amount of pressure, they will take full advantage of this fact, and turn even the smallest, least important projects into emergencies. This is a cycle, that once begun will continue to spiral out of control, at a largely unseen, but considerable cost.
The Effect
The effect of this is clear, and in many ways tends to further feed the cycle. The first and most clear side-effect is the reduced quality of the product produced. A development team that is living on a caffeine diet will introduce for more bugs than a team working at a more reasonable pace.
These additional bugs are often met with reports going back to the developers, demanding they be fixed at once. Not only must the bug be fixed, but it must be done without adding any delay to the rest of the project. This simply leads further into the urgency cycle, and further increases the already intense pressure.
As time goes on, and a team falls further into this hole, the quality will steadily drop, along with morale and loyalty. For a short while, this pressure will result in amazing results, but in the long run will either destroy the team, or even the developers themselves. This pressure leads quickly to burnout, often leading to developers to leave the industry altogether.
The True Cost
The cost of this falls with greatest weight on the developers and their ability to work. As programming is such a thought intensive process, mental fatigue is a major concern. A developer that can’t think clearly is nearly useless, without clear focus, there will be nothing that resembles productivity – or the desired product.
The effect of mental fatigue, combined with the high stress levels quickly depletes a programmer’s energy and motivation. Leaving a developer that is slow, frustrated, and feels that the light at the end of the tunnel is no longer the next milestone, but a speeding train. Developers in this state often add little more than delays to a project.
Conclusion
While I often sugar-coat life as a developer, there are real drawbacks, of which this is but one. The pressure can be near crushing at times, but looking at the big picture, I do still love what I do. I still hold out hope for improvement, though I’ll not be holding my breath. One day, maybe.
Welcome!
I am a software developer, currently located in Virginia. While my primary focus is creating software on Microsoft's .NET stack, I also write about other topics and technologies I find interesting - Ruby on Rails, Security, and even a little about photography.Search
Articles
- January 2012
- October 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- August 2010
- July 2010
- June 2010
- April 2010
- February 2010
- December 2009
- October 2009
- July 2009
- June 2009
- December 2008
- November 2008
- October 2007
- August 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006





