the purpose of education should be to make us more effective at life

The time has come to stop quietly accepting the mistaken – yet popular – notion that education is primarly about getting jobs. The purpose of education is to make us better at using the collective knowledge of the human race in all areas of life. Yes, this includes our jobs, but it also includes raising our children, being informed citizens, managing our households, enjoying our leisure time, and just being good neighbors. Education should be to make us more effective at life. And as a powerful, new and poorly understood technology, computer education should be central to our learning experience

….

*Everyone* needs to learn the fundamentals [of how to use computer technology], right in the core curriculum along with math, science, reading and history.

Thoughts On …: Teaching Magic

Jakob Nielsen, too, advocates teaching life-long computer skills, like search strategies and basic debugging.

agile adoption fails in a “fixed project situation”

i saw an interesting article on infoq.com.

the term “fixed bid” is used in the article, but this article applies to another “fixed project situation“, too, i.e., where the resources are fixed, and there’s a specified, promised feature scope and a specified, promised delivery date. 

(btw, it isn’t really possible to control all of resources, delivery date, and scope and quality of features at the same time…)

In an agile software team you don’t estimate your work till right
before you begin. And you only estimate, in the case of Scrum, the next
iterations work. So how do you know how long it will take? You don’t.
Furthermore, you really don’t care.
You’ll continue to deliver
functionality every iteration. As soon as product management and QA say
you have a good enough product; it’ll be released as a production
version. You might have a guess, but until the team estimates it….you
really don’t know long it will take.

In a fixed bid situation….your estimation needs to take place up front.
….
In the 2nd scenario, if I told the team, … “we’re using Scrum”: they’d estimate the work
the next iteration. They would assume their estimates would be taken
seriously and you’d give them time to complete the work as it unfolds
regardless of whether their estimates fit your original project funding
or not. That’s only fair.

alternatively: they would assume they’d get the “time to complete the work with high quality regardless of whether their updated estimates fit your original project plan and delivery date or not”.

[this leads to failure]….at managing the project and therefore…….”this agile thing doesn’t work”.

The mistake was to assume the company’s leadership … was
organizationally committed to … agile principles. The mere fact
that they are asking you to estimate the funding you’ll need to
complete the project tells us otherwise.

alternatively: the fact that they are asking you to commit to a fixed feature set and a fixed delivery date tells us otherwise. 

this isn’t bad, per se, it just isn’t agile.

[the real problem]

  • Agile is often assumed … to be a development process with no impact on budgeting. This is not the case.
  • Development teams assume leadership understands the implications of adopting agile at the budgetary level.

Developers and development teams often have zero visibility into
budgeting so they are unaware of how their agile efforts are being
accounted for in monetary terms. …. Likewise, management is often ignorant of
development and specifically agile development practices. Agile
adoption requires education to ease the clash and misunderstanding of
these two worlds.

So what are some of the consequences of attempting to adopt agile
practices on a fixed bid project
…essentially laying an agile façade
over the waterfall project
?

….
Agile does away with the need for a project manager. …. organizing and managing the development effort are more centered on
technical leadership, task and risk management. Timelines and budgets
go out the door.
….
if you’re in a non-agile situation … then traditional PM practices are … essential

….
Doing iteration planning in a fixed bid situation will almost certainly
result in confusion, budget variances, and/or loss of functionality.

….

In fixed bid scenarios the question is not … how much
functionality the team is doing per time period
. It really doesn’t
matter. They need to get all the functionality done

So using … iterations in a fixed bid project sends the wrong signal to the team and your customers.

using iterations in a fixed project situation sends the wrong signal to the team.

you can still visualize workflow, f.ex. with kanban, reduce work in process, do stand up meetings (very short, impediments only), etc.

but in general you should try to get out of a fixed project situation before trying to go agile.

Edit: About that last part… I think there’s a few basic, agile tools you can utilize whatever you’re doing: visualize how you work; get faster feedback; limit the amount of work in progress.

interrupted by an email?

or rather, do you let yourself be interrupted?

then it takes time to get back to what you were doing, and then more time to get back in the flow.

The October issue of Real Simple magazine quotes a Microsoft and University of Illinois at Urbana-Champaign study that claims it takes 17 minutes “for a worker interrupted by e-mail to get back to what she was doing.”

Unclutterer: Recovering from an email interruption

on the tip of your tongue?

don’t try to dig deep in your memory…

look it up right away, or just stop and let it go.


the
longer you try to come up with the word that’s on the tip of your
tongue, the more likely you’ll be to get stuck on that word in the
future.
….
[this
has] implications for the classroom …  “If the student can’t learn
something or can’t remember something… then you often see the teacher
encouraging them to work through it. ‘Just keep trying. It’ll come to
you.’
….
[but] Instead of trying to remember, students should look up the correct answer.
….
[and when you can’t look up right now?]
For those situations, Humphreys’ advises that you “don’t keep trying. Just stop.”

….
So
remember, if you’re trying to help out somebody who’s stuck, you should
give them the answer. Humphreys also says you should “get them to
repeat it back to you. But don’t leave them in this state where they
just have to keep trying, because they’re just going to be digging
themselves into that error again.”

Tip of the Tongue Learning: Science Videos – Science News – ScienCentral

what is quality?

good quality is difficult to quantify, and what is good enough is fluid. it is often easier to point out lack of quality than to specify good quality.

quality is relative

when you think about what is good or bad about a product, criteria may come to mind which are not easy to quantify.  f.ex. “feels good”, “it works”, “good value”, “i just like it”, “luxurious”…

price can lead you to buy one product and not another, even if they otherwise seem to be of equal quality.

your needs and wants change over time.

different situations influence what price is a good price, or what you get from a purchase.

different people have different values and backgrounds, leading to different choices.

however, someone is deciding on quality – you buy something or not, you get to sell something or not…

so maybe the question should be: who decides quality?

the stakeholders decide

some people are more invested in a product, and it’s not only customers, but really anyone who’s affected by or is affecting a product.

customers are necessary for the existence of a product in the commercial market, but it is not sufficient for a product to only meet the customers’ needs.  others must also be satisfied, such as stockholders, employees, and governments.  in the government sector a paying customer might not even be necessary.

who are the stakeholders, anyway?

those affected by or affecting a product, i.e., stakeholders, include:

  • customers – decide to buy or not
  • partners – add value
  • employees – add skill, expect f.ex. meaningful work
  • owners – add capital, expect increased value
  • governments
  • analysts like Gartner, Forrester

sometimes there’s conflicting expectations due to the fact that stakeholders don’t all want the same things… which makes it more difficult to figure out what good quality is.

ISO on quality

you might have an impression of ISO as a bit too formal, but in this case i think they’re onto something.

the ISO 9000 family (the 200x versions) describes quality as the ability to satisfy requirements; from the stakeholders, explicitly expressed, or just implied.

so what is good quality?

it’s about product and process – both what we make and how we make it.

it’s about compromise – conflicting needs means not every stakeholder get everything they want.  if reaching a deadline to make a customer happy means working a lot of overtime making employees unhappy, it might be worse quality all in all than missing the deadline.

it’s about all of the stakeholders. yes, it might be easy to focus a lot on the customer, but you need to keep all the stakeholders happy – or at least happy enough.  e.g., your bank needs to trust that you can pay back a loan, and the government expects you to file your taxes.

it’s about expectations.  a customer might expect certain functionality which is normal among competing products, and get unhappy if it’s not there, but might not think to include it in the requirements in the first place.  even if you’re not a mind reader, this is part of the quality of the product.

it’s not just a point in time – f.ex how the technical quality of software over time sustains (or not) stakeholders’ needs and expectations over time.

you need to recalibrate your understanding of stakeholders from time to time, since time and changing circumstances make stakeholders’ expectations change – and thus change what is good quality.  e.g., owners of a company probably expect more profit after a few years than in the very beginning of the company.

to sum it up: as you can see, in my opinion quality is relative, and is defined by what stakeholders need and expect.

software projects: have your cake and eat it?

would you like to have your cake and eat it, too?

in my opinion you actually can’t; you’re not able to make absolutely sure that a project is on budget (resources), on time (delivery date), and have all the planned features with high quality, all at the same time.  there’s always a risk, and you can only control any 2 out of the 3 factors at the most. If you try to control all 3 factors at once you are most likely sacrificing the quality of the features, and thus you’re not in control over the features anyway.

Scott W. Ambler makes a few interesting points in this article about software development projects – i’ve selected the quotes that’s most interesting (to me) below.

  • “the only true measure of progress on a software development project is the delivery of working software. “
  • “Agile teams choose to produce potentially-shippable software at the end of each iteration, providing concrete and visible feedback to their stakeholders as to their actual progress. “
  • “… the majority of stakeholders prefer this sort of tangible evidence of progress instead of intangible numbers. “
  • “… the majority of our stakeholders aren’t really interested in whether we’re on schedule or on budget.”

“…. In August 2007, Dr. Dobb’s ran a survey exploring how people define IT project success, and we found that 80 percent of people preferred to focus on producing a good return on investment (ROI) than being under budget, and that 62 percent wanted teams to ship their systems when they’re ready to be shipped rather than forcing adherence to a schedule. ”

  • “… the priorities are to spend the money wisely and ship quality systems. “
  • “… shipping high quality software is more important than being on time and on budget”
  • “… instead of measuring progress against your plan, … you should instead be focusing on ensuring ROI and product quality. “

“The agile practices of implementing requirements in priority order and allowing requirements to evolve throughout the lifecycle ensure greater ROI, and agile practices such as test-driven development (TDD) and refactoring promote greater quality.”

which cms?

so you’re starting up a web site, and would like an easy way to manage it.  there’s a lot of systems available to manage form and content of a web site.

first off, i would like you to take any proprietary systems off the list – there’s no reason to get your content locked-in and get dependent on only one vendor.  that doesn’t mean you shouldn’t look at commercial offers – just make sure your content can be backed up and migrated relatively easy when you should need it.  in practice, i would consider products containing open source tools and commercial, technical service and maintenance.

there’s several types of content tools out there.  there’s the traditional type of CMS – in my opinion joomla (JO) and drupal (DR) are two of the best examples of this type.  and there’s the blog type, like movable type (MT) and wordpress (WP) – in my opinion two of the best of this type.  

if you’re not a big news organisation, e.g., like a newspaper or PR department of a multi-national company,  with complex and specific demands on the workflow of publishing, chances are that your needs can be met by MT or WP.  while these started out as blog tools, they are pretty good for managing other content, too.

non-blog use of blog tools

here’s a nice summary of non-blog use of tools like WP and MT, by a guy called Abhijit Nadgouda.  it’s focus is on WP, but many of the arguments are valid for MT as well. 

WordPress Makes Sense For Many Non-Blog Websites

(my italics…)

WordPress makes a lot of sense for many simple web sites, including the non-blog ones. … WordPress provides good infrastructure of web publishing and gives you tools to build an interactive web site.

….
Pages and Posts

WordPress supports two basic types of content – Pages and posts. Pages are used to hold information that is valid for a bigger span of time. For such content, a change overwrites the earlier content. Posts are used for content which is more dynamic, like news and updates. In stead overwriting with changes, such content builds an archive.

Now, any web site that represents an entity – company, product, educational institution or an individual, at least in today’s age, has both such types of content. Providing news and updates and their helps keep the readers and customers uptodate through subscriptions.

The recent versions of WordPress also lets you set one of the pages as the homepage.

….
Feed is one of the most used techniques by readers to keep themselves updated.
….
you can reach out to the web, feedreader and email users by just publishing the content once.

….
The templating system of WordPress supports a lot of customization

….
administration of a web site is one of the biggest hurdles in maintaining it. WordPress provides an easy to use administration interface for writing and managing content, and configuration of the web site.

….
WordPress also sports a simple but effective roles and capabilities system. This is extremely useful if you appoint different people for managing the web site configuration, managing content or adding the content.

….
Interaction

Comments is something I believe all web sites should borrow from blogging. Comments can be used to interact with the readers and customers. They can contact you or contribute to the content or report problems using them. Comments are supported for pages as well as individual posts.

….
completely open source … huge community

for me, two of the most important keywords here are “pages” and “feeds”. 

when you think blog, you might not think about web pages, but MT and WP inherently support the creation and maintenance of web pages.

web feeds might not be on your radar, but the phenomenon is gaining momentum.  it’s useful in the following ways:

  • it alerts people who use a feed reader that you’ve got new content on your website
  • you don’t have to do anything extra, like an email or newsletter – publish once, read everywhere…

a few differences

here’s a few central differences between movable type (MT), wordpress (WP), drupal (DR), joomla (JO).

(among the) sources:
http://www.alledia.com/blog/general-cms-issues/joomla-and-drupal-%11-which-one-is-right-for-you?/
http://www.cmsmatrix.org

  • multi-site, i.e., run several web sites/ domains from one installation
    • yes: MT, DR
    • adaption: WP MU
    • plugin: JO
  • plug-ins
    • many: MT, DR
    • a whole lot: WP, JO
  • publish content – differences is especially clear on high server load
    • MT: publish to static pages (takes a little more time after changes, but is faster)
    • WP, JO, DR: interpreted, i.e., dynamic pages, reads content from database every time.  (change is published right after save, but takes more time)
  • public mailing lists
    • yes: WP, MT, DR
    • no: Joomla

what others think

i’ve taken a look at what some other people think.  (i agree with much of the cited text…)

Comparing Joomla vs Drupal Content Management Systems – Part I/II

[on joomla and drupal]

The CMS Report claims these are considered the top two open source CMS programs, with Drupal excelling in program architecture, and Joomla excelling at function (while some say style).

MovableType 4 vs. WordPress 2.2

two of today’s premier content management systems
….
WordPress is famous for its “5 minute installation”
….
All in all, both WordPress and Movable Type were built with the end-user in mind and thus are continually improving their interfaces. Both are similarly equipped with intuitive admin areas, and neither have much of a learning curve.
….
The WordPress community is both large and talented. Themes and plugins are easily located on their respective directory pages on the WordPress site. The variety and quality in both categories is difficult to surpass. Even if you’re not content with something you find, enterprising web developers and newbies alike can easily create themes and plugins with the easy to use and well implemented Codex.
….
Movable Type is a comparably customizable system. Its community has also been proactive in the creation of plugins and themes can easily be found in their respective directories. … Six Apart’s done a great job of documenting all of the Developer info
….
There are a few things in WordPress that I’d like to see in MT in the near future: combining trackbacks and comments, RSS for comments, and permalinks for comments, for example.
….
Movable Type 4 introduces some features which take it beyond the call of duty. These include: OpenID, Admin XML Feeds, cross-blog aggregation, and more.
Virtually anything can be done with WordPress plugins, of course, but with Movable typ
e it’s all built in.

from the comments:

MT [is] good for larger sites especially where finer template control is required.
(Christen)

Joomla etc. can’t touch WP for sheer architectural elegance. …. I create small business sites, and I haven’t created one without WordPress as its CMS in a year now.
(Matt)

MT … is able to generate completely static HTML pages that do not require DB transactions as part of serving pages.
(aks)

Drupal is .. kinda like big beast working in the corner. It’s not pretty and it’s not friendly, but it gets the job done. Still, as far as competition goes – WordPress is still the current lead dog in all my development.
(Sofie)

MT offers both static and dynamic publishing, while you can only use dynamic publishing with WP.
(Dave)

Choosing an appropriate CMS

I use Joomla on very large sites when I have no choice.
….
Joomla spits out a lot of tables and non-standard code and has a complex back end that requires, on average, about an hour of training time with the client. I end up doing a lot of hacking on modules to make them fit into templates
….
Drupal is ideal for “organic” sites, or community based sites. If you want a site where the content grows from blogs, forums and comment discussions, this is a decent choice.
….
it’s a far simpler system to customize than Joomla.
….
I’m currently in love with WordPress. It’s a blog, but with a little work can become a CMS. If I’m doing a site with 5-10 static pages and a news page and gallery, this is the way I go. A simple back end and easy to use editor. No overkill and it’s easy to template.

Why pay for what’s free?
 

Almost everyone I know in magazines is using some sort of overpriced dinosaur to put their stories on the Web. And when I suggest that it may be time to dump their existing CMS and use a free system, people tend to freak out.
….
So I’m just thrilled to have an example of a gorgeous site with millions of page views that runs on WordPress, which happens to be my all-time favorite piece of publishing software. [XXL]

from the comments:

We dumped a proprietary system for Joomla… It’s far more powerful than what we had before, and it’s supported by an active development community. Even better, I’m not beholden to one vendor. All I need to do is type “Joomla developer” in to google. For smaller sites, we use Movable Type, which I imagine is similar to WordPress.
The days of publishers paying $50K just for CMS software is over.
(Dave Newcorn)

Ten reasons Joomla!/Mambo is an outdated CMS

The layout is based on tables. It is also very cluttered
….
The administrative interface is slow and not very user friendly.
….
There is a plethora of templates and plugins, but it’s very hard to find good ones. Many plugins are badly developed, very specialized or cost money.
….
This is very different from the WordPress community, where most plugins are of high quality, and where you quite easily can find the plugins thanks to the blogging community.
….
The code base is huge and the API is complicated and often inconsequent.
….
The whole CMS package is big and bulky, and so is the system itself.
….
The category system is inconseqent
….
Development is very slow.
….
Bad support for user content creation

from the comments:

I’ve taken the step to actually use WordPress as a CMS instead of the ones out there, since I have way more control over Wp than over Joomla.
….
With a couple of plugins I got the same functionality out of my Wp as I did from a vanilla installation of Joomla!.
(Yyy)

WordPress compared to Joomla

compare them as personal publishing platforms
….
As for potential, WordPress is a winner. Being aimed from the beginning on publishing as a priority task, it is still (at v2.0) simple and fast when it comes to publishing.
….
Joomla is more powerful as a CMS, but …. [WP] may outperform Joomla as a CMS.
….
WordPress built around writing content and publishing that content. Joomla from the beginning built around presentation of content

WordPress is Infinitely Extensible

from the comments:

Straight to the point: This is exactly the same I recently thought when building a rather complex website for the first time with WordPress – used as a CMS!
(Michael)

I’ve used countless CMS before. … Joomla, Mambo … and a slew of others that I can’t even remember their names – but WordPress is probably the best, and most accessible package I’ve ever used.
(Tadd)

As someone who almost exclusively uses WordPress as a framework for all my site work I do, I’d have to disagree about how great Drupal/Joomla are. I’m speaking strictly from the client -side of the park with this statement. … clients would never be able to make their way around the admin sections of Drupal/Joomla comfortably.
… for me it comes down to ease of use for the client and you can’t get much easier than WordPress
(Pop)

my conclusion

i’d go for a solution with movable type or wordpress, perhaps included in a package with commercial, technical support and maintenance.

(i definitely wouldn’t go for any proprietary solution!)

in WP and MT, it’s easy to get started with the core process – i.e., write and publish content – and there’s plenty of available plugins and templates.  and since WP and MT are open source and have decent developer communities, it should be possible to hire someone to do tailored functionality or design when needed.

which one, MT or WP?  it’s down to personal preferences, if there’s commercial support available, if you like PHP or Perl, etc.  below is some more resources to help you decide.

some resources

wordpress: http://wordpress.org/
plugins:
http://wordpress.org/extend/plugins/
http://mashable.com/2007/08/16/wordpress-god300-tools-for-running-your-wordpress-blog/
themes: http://themes.wordpress.net/
a few non-blog examples: http://blog.pixelita.com/10/10-non-blog-wordpress-sites/

movable type: http://www.movabletype.org/
plugins: http://plugins.movabletype.org/
on themes: http://wiki.movabletype.org/Main_Page#Templates.2C_Themes_and_Designs

drupal: http://drupal.org/

joomla: http://www.joomla.org/

how to prevent and handle spam

are you bothered by increasing amounts of spam? prevent spam spammers use automatic email address harvesters, which prowl the WWW for addresses.  so:

  • don’t publish your email address as clear text on public web pages, neither in text nor in links;
  • rather, use javascript or an image to communicate email address visually to the reader,
  • or, even better, use a contact form/ script where there’s no email address in the html.
  • or at least mask it with, for example, address (at) domain (dot) tld, even if some of these typical maskings (using “at” and “dot”) might be recognized by some email harvesters. anything is better than email addresses in pure text or mailto-links…
  • don’t reply to or click any link in a spam message you receive, as that only brings more spam.

a few practical tips including helpful resources, especially on email address image generators and email address munging…

minimize damage if you have qmail or gmail, you can use variations of your email address to identify and isolate the source regarding email you receive, including spam. the variations you can use is on the form address+variation@domain.  you can do this to “tag” different sources, having a restrictive .qmail-default and deleting additions (qmail) or filter out additions (gmail) if spam increase on a specific address variation. handle spam if you start to get spam, and don’t want to change your email address, you’d better deal with it somehow.

  • try email with learning spam filter, e.g., thunderbird or gmail (take a look at some info on why use gmail and how to get rid of spam)
  • don’t open attachments from unknown people, or with unknown file types
  • don’t use outlook if you can avoid it (even though i understand it’s been getting better lately)

links

  • useit.com/about/whynomailto.html (outdated/ removed): “Anything you put into a mailto: tag is fodder for EmailSyphon and other site suckers that download entire websites in order to find email addresses that they can add to spam mailing lists. I prefer hearing about as few get-rich-schemes and porn sites as possible.”
  • wikipedia on email harvesting: “…the more common use of special software, known as “harvesting bots” or “harvesters”, which scan Web pages … to obtain e-mail addresses.”
  • wikipedia on anti-spam techniques: “if the spammers can’t learn of the address, the address is less likely to be sent spam. …. One way that spammers obtain email addresses to target is to trawl the Web and Usenet for strings which look like addresses, using a spambot. Contact forms and address munging are good ways to prevent [harvesting] …. Posting anonymously, or with a fake name and address, is one way to avoid “address harvesting” … Users who want to receive legitimate email regarding their posts or Web sites can alter their addresses so humans can figure out but spammers cannot. For instance, joe@example.net might post as joeNOS@PAM.example.net.invalid, or display his email address as an image instead of text.”