Archive for the ‘Make Your Next Web Project a Success’ Category

Must read articles on software development

Sunday, May 23rd, 2010

There are order-of-magnitude differences among programmers: Productivity Variations Among Software Developers and Teams: The Origin of “10x”
It takes about ten years to develop expertise in any of a wide variety of areas: Teach Yourself Programming in Ten Years
“there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.”
No Silver Bullet
Hackers and Painters
What if you need a zero-bug software… They Write the Right Stuff

Web technologies for a static web site and “front-end” (client-side) interactivity

Tuesday, March 9th, 2010

Creating a static web site is much easier than creating a blog, a forum or a social media site, because sites that require a lot of interactivity need programming work to be done. Even if you buy and install an out-of-the-box script, it means someone somewhere has done all the programming work for you. You’ll probably find out that it’s not enough and that you programmers will still need to enhance it. Static web sites can be done without any programming work at all, but they will still be based on certain web technoligies.

The most important technology, without which a web site can’t exist, is HTML (or XHTML). HyperText Markup Language is always necessary: even websites built entirely in Flash require at least a few tags for the Flash object to become visible online.

Invented in 1989 by the famous Tim Berners-Lee, HTML has since become as much part of our modern life as electricity or TV. Consider the number of web sites and the fact mentioned above that all of them use HTML to a certain extent, and you’ll see that it’s not an exaggeration at all.

HTML is a system of marking up the source code of the webpage to instruct the browser which parts of the text should be treated as paragraphs, which of them are numbered/unnumbered lists and where to insert a picture or another object. It can also be used to create hyperlinks, thus linking various web pages among themselves. Initially HTML was expected to be responsible for the presentation of the webpage, but modern standards require that HTML controls only the semantics of the web document and the presentation part if left to CSS (Cascading Style Sheets), another important technology often mentioned in connection with web sites. Thus certain tags (e.g. <font>) and attributes (e.g. bgcolor) have become deprecated in the latest published standards of the language.Learning the basics of HTML is a relatively easy task. It’s quickly mastered by anyone, including schoolchildren. But as HTML developed through the years, different quality standards emerged. Writing perfect, “beautiful” HTML code is no longer easy, requiring a high level of professionalism, especially when developing a web page whose presentation - including positioning of elements - is controlled entirely by CSS. An expert can judge the level of the webmaster’s expertise in the profession by simply looking once at the source code of the page.

CSS is a set of standard instructions given to browsers to intstruct them on the presentation of certain portions of a web document. Using CSS, a web master can set the colour and the size to all headings used throughout the website, text inside paragraphs, backgrounds, appearance of tables and numbered/unnumbered lists and many other things. Should the webmaster want to change the colour of all headings from, say, blue to green or purple, it can be done using just one line in the CSS file. With the old-fashioned <font> tag it would have taken a lot more time.Besides, CSS can be used to control the positioning of the page’s elements, which is a more semantically correct approach than using HTML tables for this purpose, but requires experience and skills from the webmaster and make cross-browser compatibility a challenge. Internet Explorer 6 is most often mentioned as the main troublemaker when it comes to CSS positioning, and since it’s expected to die very soon after Google refuses to support it, webmasters will definitely become more willing to shift to advanced, table-free web site design.

While talking about client-side technologies, it’s important to mention JavaScript, Java applets, Flash, AJAX and jQuery. They make web pages more animated, improve interation between the page and the user and make a lot of things possible which could have never been done using plain HTML. The most amazing example of it are Flash-powered games, which are swiftly gaining popularity. Thanks to Flash you can now play chess on Facebook with a friend living half the globe from you, take care of a virtual pet or play arcade games online without having to install them on your PC.

AJAX is a combination of technologies (JavaScript, XML, HTML and CSS) using the XMLHttpRequest object to exchange data asynchronously with the web server without reloading the whole page. Development of AJAX, has made web pages more interactive, as well as the development of Flash, and has opened new horizons for web developers.

Finally, jQuery is an advanced JavaScript library. Just one among many others, that’s true, but the most popular and, according to Wikipedia, used by 27% of the most visited web sites. It was developed to improve interaction between JavaScript and HTML. Experts do wonders with it.

Web 2.0 is unthinkable without Flash, AJAX scenarios or JavaScript effects which can help you improve the presentation of a web page where CSS’s capabilities are insufficient, at the same time making it more dynamic and interactive without sending any requests to the web server. But it’s important to remember that too much JavaScript, as well as too much Flash is worse than none. For example, building the whole web site in Flash kills its accessibility (screen readers can’t read text embedded in Flash), usability (impossible to copy and paste, or bookmark a particular page), search engine friendliness (the engines’ spiders don’t go into the Flash and Google, apparently, has stopped experimenting with reading Flash files). Such sites also take ages to load up. Screen readers and search engine spiders are also unable to interpret JavaScript. So this advanced technologies should be used wisely.

As the web develops and the new browsers offer their users more and more advanced means of exploring the World Wide Web, client-side technologies evolve too. Ten years from now, modern advanced technologies will look obsolete and weak, and new ones will replace them to impress and inspire web users. This makes it important for webmasters to continuously learn, enhance their knowledge and skills and keep up to date with new technologies.

Project Objectives, Tracking and, Once Again, the Software Question

Monday, March 1st, 2010

Project management is a complicated, complex task. It involves setting proper objectives, thorough tracking and continuously making sure that it doesn’t cost more than its benefits are worth. Setting objectives is the first and most crucial phase. Objective are about benefits rather than products, which is an often misunderstood concept, and in order to properly describe an objective we need to define a performance parameter to modify, a measurement procedure to assess the achieved modification, current and target values of the parameter and the date when we expect to achieve the target value.

As we mentioned in one of the previous articles, a well chosen software tool for tracking the project and its objectives is an exceedingly important part of the process. A good program will help the project manager see in time that the total costs are likely to go over the top or that a important deadline is about to be missed, and take appropriate measures to improve the situation. It will automate - at least partly - the measurement procedures related to various project objective. It’ll track the activities of staff involved with achieving objectives and help the project manager see how effective their work is. It will simplify communication within your team and simplify decision making.

Good project management software should be customisable too meet specific needs ot specific businesses. It also needs to be intuitive so your team can learn the interface quickly, since this affects cost-effectiveness.

So, before choosing your project management and tracking tool, make sure you do thorough research and estimate all the costs involved. You might have found the most comprehensive and configurable software available, but if your team consists of three people and the project is expected to end in three weeks, choosing this tool can ruin you financially rather than help. In this case, email, Skype and a few Excel sheets are probably the only project management software you need. But if your project is expected to take several months (or years) to be completed, and your team consists of 50 or a hundred people, then it becomes a different matter, and a really sophisticated tool becomes a must.

The why

Any project goes - roughly - through the following five phases:

  • defining
  • planning
  • execution
  • controlling
  • closure

On every stage your project management software will help you, though on the stage of defining the project it will come down mainly to writing up the scope and setting the objectives. It’s the third phase - the execution - when a good project management software solution becomes essential.

if the project is relatively large, it will be broken up into separate tasks, each of them receiving a deadline - otherwise it becomes virtually impossible to control anything and to deliver on time. It will be handy to assign a discussion to every tasks, so all people involved with its execution - including the client - could discuss arising problems and possible solutions. This brings forward the question of access rights and restrictions, since you won’t want a client to be able to view discussions related to another client’s project. The members of the team who are responsible for the task typically report their activities and time spent through the same system.

Once a task is completed, its status will be accordingly changed, and the aggregated data on the time spent and costs involved will be analysed and stored - and, if necessary, added to printable reports. That’s how project tracking works, making lives of project managers much easier (just imagine how hard it would be to do all this work on paper, especially if you have a large team!)

Issues and deliverables are tracked in a similar way.

Once we estimate that we have achieved the target value for a certain objective, the aggregated data collected during the execution phase can be used to assess the achieved modification and see whether the real benefit (in money terms) meets our initial expectations, considering the costs involved with achieving result. Once the project is completed, our software will preserve this data for us to use during the planning phase of our future projects, thus improving our experience and the quality of our project management.

Software for Project Management

Monday, February 8th, 2010

Software for project management makes a big class of applications, which can be either standalone (desktop) or web-based. Project management is a complicated task, so the software programmed to schedule, track, control, allocate resources and otherwise support the project on the various stages of its imprementation has to include diverse and sophisticated functionality.

There are currently a lot of project management solutions available on the market; Wikipedia has a comprehensive comparison table. As you can see, most of those solutions are proprietary, and of those few available under the open source lisence still fewer have the complete set of functionality you might expect to find in a high-quality project management program. The chances are, even with the most advanced proprietaty system you’ll still find certain necessary features lacking, which will suggest ordering a bespoke system.

Some of the project management solutions that exist focum mainly on project planning and scheduling and don’t provide enough functionality for the tracking stage. Others, on the contrary, concentrate mainly on project tracking. There are standalone and web-based solutions available. Of course, the web-based option presents usual benefits as well as drawbacks of web software: there’s no need to install any special software to access the data, and it’s possible to work with the application from any computer anywhere in the world, but on the other hand, the Internet connection is essential, and security considerations become more critical.

The tasks that full-scale project management application should be available to solve are as follows:

  • Scheduling
  • Issue tracking
  • Project portfolio management
  • Resource management
  • Document management

Not all existing solutions have all the features presented - so any business could make choices and definte priorities. But as mentioned above, certain kinds of businesses - e.g. medicine related - might find it necessary to order bespoke solutions for managing their projects, due to specific requirements existing in some industries.

Investing in the wrong kind of project management software (either too simplistic or too sophisticated) can become a total loss to your budget; investing in the right kind will save thousands for you in the long run. That’s why it’s important that you make a thorough research of existing solutions, as well as into the feasibility of ordering a bespoke application, before you actually buy. We are planning on a series of articles covering various types of project management software in detail.

How to become a web developer?

Tuesday, January 26th, 2010

There are two directions to go: design, and development (programming)

Design - some say that to be a graphic designer you need to have a talent… But as many websites nowadays aim for simplicity and usability ability to think rational might be more useful then raw creativity. There are also plenty of templates around which you can “creatively modify” and make a site that looks better then the one designed from scratch. In fact every web site on the net can provide you with some ideas on layout and navigation.

Software packages such as Adobe Fireworks can export created content to HTML, so no HTML skills are necessary. But HTML is the next logical step towards extending your experience in web site building. There are a plenty of free tutorials on the net, the http://www.htmlgoodies.com/ is the site I used many years ago to get started with HTML and JavaScript.

The industry-standard graphic design tool is Adobe Photoshop - but I would advise to stick to Fireworks as it is more web-oriented. Download Photoshop Elements instead to try how the Photoshop “feels” and see if it is for you. There are also free online tools that can replace Photoshop http://www.pixlr.com/ for example.

If you want to proceed to web programming JavaScript is an easy way to start. It has became almost a “proper” programming language. At the same time you do not need to set up a complex environment or learn any IDE (integrated development environment) tools, just a notepad and a web browser can get you started. After you pick up some JavaScript, you can try to move to server-side programming - PHP is an easy way to start.

What is your passion?

It is important to like doing what you do. Try different things and see what activities find most exiting and most rewarding. It is more likely that you will progress faster in the areas you enjoy most.

Training courses.

This will largely depend on the type of personality. If you are self-motivated enough you can learn more or less everything yourself. Just pick up a book on Amazon and go through it from start to finish, then another book on the same topic… At the same time work on something practical (our own web project) so you can utilise the knowledge gained.

The benefits of formal training are:

Structure - your knowledge will be build systematically from easy to complex problem solving. The same can be achieved by using a book or an online video tutorial. Plenty of free tutorials can be found on YouTube.

Support from tutors - I think this is the most useful part of any training course. To some degree you can replace this with asking questions at expertexchnange, or yahoo answers, or related discussion forums. You also can hire a personal tutor, and this could work out cheaper then taking corses as personal training is much more efficient.

Mixing with like-minded people - this is fun, you can not only share problems, but find friends and professional contacts. Social networking sites and networking events can serve the same purpose. Join related groups on Facebook, Linkedin or Ecademy. Find related meetings at meetup.com

Official papers. - you will get a certificate, diploma or a degree, depending on how much time and effort you can sacrifice. But you can pass tests on-line and show test results as a prove of your knowledge: see for example brainbench.com. Also I think in digital industry experience and personal portfolio of work is much more important then papers.

Think about future employment.
Research your salary at http://www.itjobswatch.co.uk/.

I would suggest to start looking for a job more or less immediately. There are some “low-end” roles, like support, and assistant positions. The money won’t be good, but there might be opportunities: you will experience the environment of organisations you will work for in the future, and meet people that work in positions you are aiming for.

Freelancing, contracting or full-time employment.

To freelance you have to be more then a specialist in web development: you have to market, sell, organise your work, and finances. This is not for everyone, but if you can do it it can be very rewarding. I would say SALES is the most important thing to look at. Especially if you start from grown zero. The competition at the bottom end of skills is tough, there are companies that do the web sites at ÂŁ20 per page, and there are offshore freelancers working at $2 an hour.

A contractor is simply a person who takes temporary positions, but works on-site, normally via employment agencies. Those assignments can be from several days to 6 months +. I know some people who work as contractors for one company for years… It just happened that their contract is extended every 6 months.

Contracting is a good way to start and to try doing different things. Hourly rates are also typically 30%-100% higher compared to permanent positions, from ÂŁ12 to ÂŁ40 per hour +.

Full-time employment - I wish I could comment, but never been in one.

What Is Usability

Monday, January 25th, 2010

Usability - when applied to software or websites - measures how easy it is for a completely new person to grasp the interface of a particular software product or website and figure out which interface element is responsible for which function and how to achieve one goal or another. As Wikipedia puts it “In human-computer interaction and computer science, usability often refers to the elegance and clarity with which the interaction with a computer program or a web site is designed.”

Yes, these are the main points: elegance and clarity. Good usability means the user should be able to learn to use the new piece of software at a glance and figure out how to accomplish the majority of tasks - including sophisticated ones - intuitively and without any training. Bad usability means that the user will have to receive special training to complete even basic tasks.

Designing software and websites with usability in mind can be more expensive than designing without usability. Best practices recommend usability tests involving teams of testers - users unacquainted with the product, who are given tasks and do their best to achieve their goals using the software. For effective usability studies their actions must be thoroughly recorded and later analysed, because it’s the only way to find out how intuitive the interface is. People are different, and what seems usable to one (especially the developer or the project manager) may be overwhelming to the other, that’s why it’s so important to invite several testers - ideally, representing different age and gender groups.

Generally, and especially for our purpose, the testers should be “target users” and in case of bespoke software end (business) users.
In practice we, and many other companies do not record user actions for later analysis (too time-consuming). Just watching real people performing tasks can help us figure out most of usability glitches.

All this can come at a cost, but it pays long term. Usable, intuitive software will save hundreds of working hours, which your personnel will be spending working on their tasks rather than thinking how to do it. It will save a lot of money also - the money you would otherwise have to spend on training your staff. So, if you calculate your ROI, you will see that investments in usability work well for your business.

Apart from being easy to learn, good, usable interfaces should be easy to remember, provide the fastest ways to accomplish the task, ensure that the user makes as few errors as possible - and even that the user enjoys working with it. If these requirements are not met, further usability improvements are necessary.

We have already shown that if you are ordering an application from a software development company, whether standalone or web-based application, it makes sense to invest in user-friendly design from the start because it will pay afterwards. But what about software development companies themselves? If they are developing a product they hope to sell, should they invest in usability?

The answer is yes, absolutely. The problem is. people tend to avoid using software which they find difficult to use, or just don’t like. So if your software is designed without any usability in mind, you’ll find it hard to sell it - people will buy from your competitor, even if your software provides more functionality. So, if you are aiming at selling your application, usability becomes an absolute must!

HTML coder, JavaScript Programmer, Java developer… Coder, programmer or developer?

Monday, January 25th, 2010

People use words like “coder”, “programmer”, and “developer” to describe professionals involved in software and web development activities.

Understanding the meaning of those terms, and differences in usage can help businesses to find appropriate specialist easier using web search. And it can help web design and development companies to target their search engine advertising better.

Coding refers to activity of writing a code (in our case software code) but also writing a code of a mark-up language like HTML or XML.

Programming is almost the same as coding but most often refers to writing a code in “proper” programming language like C or Java. Programming is also a wider term, and can include other activities besides coding such as debugging and code compilation.

Development is a wider term covering full life-cycle of a software or web development project.

Some say that a “software developer” has to have a wider set of skills, including project management and communication skills, and have to be more commercially aware compared to a “programmer”. Programmer is a person in junior position who writes the code according to prescribed specification.

Let’s have a look what people are using when searching for particular software skills. We will do this by utilising a Google keyword suggestion tool. The table below shows the global number of searches per month for particular combination of technology/activity:

coder

programmer

developer

HTML

1,900 (79%)

1,300 (54%)

2,400

JavaScript

590 (37%)

880 (55%)

1,600

PHP

5,400 (16%)

880 (2.6%)

33,100

Java

390 (0.5%)

22,000 (30%)

74,000

“Developer” is the most popular term describing activities of web developers. Although HTML and JavaScript are quite popular terms in themselves, working with those technologies are more often described as “coding”.  “HTML coder” used as much as “HTML developer” and “Java coder” is almost never used.

“JavaScript coder” is less popular then “HTML coder” but much more frequent then Java or  PHP coder.

People are more likely to call PHP developers “coders” compared to Java. With Java “programmer” is used more often.

Although serious web applications can be developed in both technologies, search statistics shows that people still treat PHP as a light-weight web programming language, much more suitable for simple tasks compared Java.

Coder better goes with HTML (HTML coder) and sometimes JavaScript (JavaScript Coder) but we can also say JavaScript programmer. “JavaScript developer” is used much less compared to “Java developer”, or “C developer” for example, as development usually includes a full cycle of software creation. And it is very difficult to write a proper software using JavaScript only, although some developers manage to do that. For example CKeditor http://ckeditor.com/ is a rich text editor written in JavaScript – in it’s functionality and features it can compete with some desktop text editors.

For related skills and services please visit our web site www.magicwebsolutions.co.uk

Web technologies for Internet projects.

Monday, January 25th, 2010

How to select a web technology for your internet project – a business perspective.

Many developers will speak passionately about web technologies they use. Major web sites dedicated to specific technical platforms will advocate efficiency of that platform and provide numerous references to high profile and high traffic web sites using this technology.

This can only mean that good and reliable web systems can be build using different popular and less popular web technologies. So what technology to go for? And how to make a choice?

Let us look what web technologies are available for building web sites or web-based applications, and point out some differences between them.

Web technologies for building static web sites and “front-end interactivity”.

Server-side web technology of the masses PHP and MySQL.

Enterprise-level platforms: Java & .NET.

Web technologies for a static web site and “front-end” (client-side) interactivity.

Monday, January 25th, 2010

Let us start form a simple static web site. The web pages are constructed using HTML and most often CSS (Cascading Style Sheets), graphics and other media can be embedded within a web page.

For building a simple, static web site HTML and CSS are standards.

HTTP (Hypertext Transfer Protocol) will be used to deliver those pages over the internet, but this is something nether you or developer does not even need to know about.

Some software will be used in the process to create web pages. Notepad can be used and some developers are very proud to get away with a simple text editor – this proves they know all HTML and CSS tags by hart. But for a business the important thing is efficiency – you want to get more for the money you pay, so you should not mind if your web developer will use some specialised software packages, such as Adobe Dreamweaver to generate HTML code automatically. Yes HTML editors can sometimes generate superficial code. Experts might argue that a messy code can affect search engine friendliness of the site, increase page load speed, and make the HTML difficult to comprehend. Our experience show that code generated by web design software will be reasonable and any minor problems will not overweigh the productivity gain. The software-generated HTML code, in majority of cases will not affect user experience or search engine spiderability.

You need to be aware that there are different ways code complex page layouts: it can be implemented using tables, or using layers (table-less design). It is also a good practice to separate content from presentation using CSS. There some other aspects of web page coding, but this is a topic for a separate article, and not something we need to conceder in detail at this point.

If you have to move to web-site interactivity: say you want to add drop-down menus to your web site, or display current time on the home page, or say, provide your users with a calculator of some sort: a currency convertor for example - HTML will not be sufficient anymore, and your web developer will need to use a programming language to achieve that. HTML is a mark-up language, land different from programming language because it does not provide for any logical or mathematical operations, cannot take any data input and it cannot output information based on the data processed.

The standard language for web page programming is JavaScript. HTML is extremely easy to learn that is why many graphic designers moved into web design, picking up HTML skills on the go. JavaScript is a step up to a “proper” programming. But with JavaScript there is a way to get away with very little knowledge. Most of typical tasks are already solved by web community and thousands of scripts are available from script archives. Those archives have demos as well. So you can do the job of your web programmer and save some money, by locating required functionality in those archives. (see http://www.codelifter.com/main/javascript/index.html for example). You can also point your web developers to a web site that has similar functionality – in most cases they can look into the code and figure out what JavaScript libraries are used to create that particular effect.

JavaScript is a standard language for implementing basic interactivity on a web page. Or technically speaking on a “client-side”, as there is no data sent or received from the server.

Do not mix Java and JavaScript by the way. JavaScript has “Java” in it because the language syntax is similar. But they are completely different things. Java technology is used for server based programming. And the word “Script” in JavaScript means that it is something much smaller and lighter then a proper (computer) “program”.

How to run a successful web project.

Friday, December 25th, 2009

10 important things that will contribute to your web project success or failure.

Since 1999, Magic Web Solutions has worked on many web development projects.

No matter what the size of your company or your industry, however, there is one common aspect: your web development is a project and it is influenced by factors which mean it will succeed or fail.

Experience has taught us to identify those factors. Here we give you an insight into doing the right things and avoiding the pitfalls.

Things that help your web project succeed:

1. You have confidence in your knowledge of what your customers want - you will have done some research or will have received feedback from your customers; whatever you do, ensure that research is representative of your users. Do not make changes on a whim.

2. You have decided on a budget and that money is allocated - a budget tells the developer that you are serious about your web project and that they will be paid for their work.

3. The application is easy to use, intuitive and requires no learning. The business logic must be complex, but functionality should be usable and accessible to be more readily adopted by end users.

4. Somebody has done it before, you can learn from it and improve on it - how often do you hear: ‘If it ain’t broke, don’t fix it.‘? It’s true of websites, too; but if you can genuinely improve on a model by making valid and relevant changes, go for it.

5. Your developers understand what you want - you’ve explained your business and how it works; you’ve expressed your ideas clearly and, importantly, you’ve let the developers get on with it and they have produced something for you to review.

Things that will definitely slow your web project down:

6. You constantly make unsubstantiated changes during the development phase and add new funcitonality - consequently, there are more iterations and changes each time and the developer’s list just keeps growing…

7. You are slow to respond - even a day’s delay on a web project has an impact; the cumulative effect can be to shift the deadline by a few weeks. It also gives the impression you are not taking the web project seriously.

8. You impose a deadline before writing a detailed specification - picking a launch date for a website is fine, but without a specification, no-one is going to guarantee your site will be ready.

9. Your specification was missing essential functionality - but it doesn’t matter, does it? The developers can add it in now, can’t they? Well, they can, but it does matter. The web project was planned and resources allocated according to the specification: change the specification and you are affecting the plan and resources. New entities and new relationship between entities will have the most impact.

10. If the web project in final specification requires more time than was planned - estimates are just that: estimates, approximations. If your web project is going to take longer, then it will decrease the productivity.

11. You have an unrealistic budget - unrealistic in terms of you want to achieve. A good developer will tell you what you can expect for your money, but you will get what you pay for.


Close

*
*
*
*
*6+7+9=
Compulsory fields are marked with *

Full contact page

© Magicwebsolutions Ltd., 1999–2008. All rights reserved | Terms & Conditions | Send Comments