SourceLogic Solutions Home SourceLogic Solutions - Consulting Basics

Everyone talks about Web 2.0. We give you a plan to implement it.

by admin 4/5/2008 9:58:00 PM

Determining where your application UI will benefit from AJAX

AJAX-powered user interfaces can dramatically improve the user experience of Web-based applications in many different ways. SourceLogic Solutions can review your application and identify where AJAX can offer the most dramatic impact and and best return on investment.

On the lightweight end of the spectrum, you can re-implement basic features of your Web application to be more responsive and offer visual pizzazz (e.g. Google-style "suggest" search box, background content loading, balloon help, tabbed displays, sortable tables, etc). On the other end of the spectrum, rich AJAX clients can replace Web-based portals as a way to interact with Web services and SOA assets (e.g. Enterprise Mashups).

What it takes to succeed with AJAX

It is common to think that the same Web developers who code Java or .NET server-side Web applications or design CSS-based HTML pages, will be able to quickly become expert AJAX developers. The reality is usually very different. The technical skills are are not the same, the UI demands are more complex, the ramp up time can be high and it can be time-consuming to evaluate the various frameworks as they relate to your customer and back-end needs.

SourceLogic Solutions provides you with a UI design and development team that is experienced with a broad range of AJAX component libraries and frameworks, and understands the CSS, HTML and DOM programming necessary for implementation. This gives your team more time to come up to speed, decisions on what AJAX tools to use, a strategy on how to incrementally add AJAX, and a visual blueprint of how the final web application will operate.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics | Software Tools

Software as a Service (SasS)

by admin 4/1/2008 9:56:00 PM

For SaaS, user experience is the key factor affecting customer adoption

The focus in Software as a Service (SaaS) is on making what customers want, and delivering it when they want it. If you build a SaaS product that provides a significantly better user experience than the incumbent software, it will sell. Critical components include the ease with which important features can be found and used, the learning curve for a new user to get up to speed, the long-term flexibility of the application interface, and the aesthetics & responsive of the interface.

The right user interface let you add new customers at low incremental cost

The user interface demands for Software as a Service (SaaS) are very distinct from enterprise applications and other software models. A key to profitability is to develop a user interface that adapts to the customer's environment without much customized development. The benefits to your bottom line are shortened sales cycles, faster deployment and efficient solutions for easy-to-adapt language systems.

Catalyst Resources has extensive experience with application design for SaaS

Catalyst Resources has the specialized application UI experience that is required for a successful SaaS. We can design an adaptable and user-validated application UI quickly and effectively. Your customers will be able to take advantage of your application's value sooner, with fewer support demands.

Using AJAX and Web 2.0 interface components, performance and SaaS can go hand in hand

SaaS applications that rely on traditional HTTP/HTML don't offer the dynamic user interfaces of native enterprise applications. However, using AJAX and Rich Internet Applications technologies, SaaS applications can provide a dynamic and rich user experience. Catalyst is an expert in the design of AJAX, Flex and Java-based Rich Internet Applications. Based on an assessment of your SaaS project requirements, we select the toolkit that provides the best UI components, tools and scalability for development.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics | E-Commerce

Guidelines for Graphic Designers

by admin 4/1/2008 6:15:00 PM
Typically a graphic designer creates designs for a web application separate from the development of the web application software. During the project the design must be married to the software. Integration can be a very arduous and time-consuming process if the designer does not follow a few simple guidelines.

To simplify and ease the integration process I suggest these guidelines for the graphics designer:

Collaborate with the Developer at Project Start

Lack of discussion with the developer about the graphic designs leads to significant problems during integration.

To make the integration process smooth discuss your design ideas with the developer at the beginning of the project.

Keep Table Nesting Levels Shallow

As nesting levels increase so does the difficulty of understanding where you are in the table structure.

Conversely, shallow nesting means it's easier to know where one is at in the table structure.

Name Tables

 

Select names that clearly identify the purpose of tables. The name 'A' does not convey any meaning. Whereas, the name 'CollaborationGoals' provides a better indication of the purpose of the table.

Use Naming Conventions

Locating objects can be difficult in medium to large projects. Where is the CSS style? Where is the graphic image? Searching for project objects can waste significant amounts of time over the course of a project.

Using naming conventions to identify project objects eases the task of locating these items.

Naming guidelines:
  • Use a prefix.
  • Use a hierarchical naming order.

Examples:

  • NAMIC_ButtonBack.gif
  • NAMIC_ButtonGo.gif
  • NAMIC_MenuHome.gif
  • NAMIC_MenuLeft.gif

 

Use CSS

Suppose FONT tags are used across 30 application pages. Now imagine you, as the designer, desires to change the font face. How much time is required to modify the FONT tag in all 30 pages?

Suppose a CSS style is defined and then used across the 30 application pages instead of the FONT tag. To change the font face requires changing one CSS style in the applications CSS style sheet.

Using CSS is a time saver.

Organize in Alphabetical Order

Suppose you have 26 cards each stamped with the letters of the alphabet on the front the cards. Shuffle the cards. Now attempt to locate 'G'.

Place all the cards in alphabetical order. Now attempt to locate 'G'. Could you find 'G' quicker in the randomly shuffled deck or the sorted deck?

Yes, the idea makes common sense and you might ask "Why bother mentioning this guideline?". Because I've worked on projects where the objects were not organized in alphabetical order.

Design Master Pages

ASP.NET developers can create master pages which contain common graphical elements for a set of pages. All pages using the same master page have a common look and feel. Make a change in the master page and the look and feel is changed on all pages using the master page.

At project start determine which pages in the application must have a common look and feel. Then design a master page for each common set of pages and hand the master page designs to the developer. The developer will create the ASP.NET master pages and apply them to all associated pages.

Design Reusable SubForms

I've worked on projects where the designer created several slightly different subforms to collect the same information from the user. Had I used these subforms I would have spent additional time developing, debugging and testing the software for these subforms. These unnecessary subforms would have created more maintenance in the long-term. This results in higher project costs.

A better approach is to design a single reusable subform for each function in the application. Using this approach reduces design time, software development time, debugging and testing time and ultimately reduces project costs.

For example, the NAMIC Mentor Program application collects company information from the user during the account and application creation processes. I designed a single Company subform and used that subform on the account and application pages.

Minimize Precise Graphics Positioning

Debugging and fixing precise graphics positioning requires enormous amounts of time by you and\or the developer. The development time increases as one needs to debug increasing numbers of positioning problems. The problem is compounded by the differences in browser and browser versions.

A better approach is to rely less on precise graphics positioning.

Minimize Graphical Elements

For one project I worked on the designer created about 80 tiny graphical elements that had to be precisely positioned in order to create his desired design for a set of pages. I spent many hours debugging browser problems related to the 80 elements.

Was 80 elements needed for this project? Probably not. Unless the client has a large budget for the project the best option is to keep the number of graphical elements to a minimum.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics

Evolutionary Approach to Projects

by admin 3/31/2008 6:13:00 PM

Overview

Occasionally we discuss projects with clients who want us to create a web application with an enormous quantity of features. The disadvantages of this approach are:

  • very difficult to accurately estimate costs. developers tend to over estimate;
  • huge number of decisions to be made regarding software features (increases development time);
  • unknown whether users receive benefit from all features (unused features lead to waste);
  • development costs are high;
  • project management required which increases overhead costs;
  • testing is harder and thus more difficult to ensure quality;
  • development cycle is long; and
  • revenue delayed due to long development cycle.

We suggest an evolutionary approach to software development. A development evolution unfolds as follows:

  1. Select short list of features. (See Creating a Features Short List below).
  2. Write project specification detailing features.
  3. Design and develop software.
  4. Test software.
  5. Place software into production.
  6. Collect revenues.
  7. Gather feedback from users and use to guide future development direction.
  8. Repeat from step 1.

The advantages of an evolutionary approach are:

  • small set of decisions regarding software features. less decisions means less time;
  • user feedback can be used to guide future development direction;
  • development costs are lower;
  • little project management required thus reducing overhead costs;
  • testing is easier, thus increasing software quality;
  • development cycle is shorter; and
  • revenue realized sooner due to short development cycle.

Creating a Features Short List

A project with a huge feature list is extremely difficult to estimate. Developers over estimate due to concerns about working beyond the budgeted hours for the project resulting in reduced income for the developer. Over estimating leads to higher development costs for you. By reducing project size developers can more accurately estimate project costs. This results in better or lower development costs for you.

  1. Review sample web sites in detail. Understand how each feature works and its relationship to other features.
  2. Write a list of the features with a name and short phrase describing the features resulting in 1-2 pages.
  3. Prioritize the features into three groups:
    1. Critical Features

      Features required in order for the application to be useful.

    2. Important Features

      Features which add significant value to the application but are not critical for basic operations.

    3. Nice To Have Features

      Features that add "polish" to the application but are not critical for basic operations

  4. Write a short 3-4 sentence description of the Critical features. Your Critical features list will be turned into the initial project specifications.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics

How to Find a Good Web Developer

by admin 3/31/2008 5:57:00 PM
 
 

I develop web applications in C#, VB, ASP.NET, and SQL Server as a contractor. I have noticed that clients run into problems hiring web developers to  create web applications. Also, clients have mentioned problems they've had with developers in Craigslist job posts.

Clients had problems with web developers who: 

  • create poorly designed databases;
  • create web applications with many bugs;
  • create botched software designs;
  • develop what they want not what the client wants;
  • don't respond to client inquires; and
  • leave in the middle of the project.

The impact on clients is:

  • thousands of dollars are wasted; and
  • revenue is lost.

One Craigslist job poster noted that he wasted $3,500 in design and development costs.

In this article I offer suggestions for finding a good software developer who will design and develop a high quality web application that meets your objectives and functions well.

Does the Developer Follow a Process?

No process = project failure.

A development process must be well-defined and followed in all endeavors in order to reach an objective. Ask the prospective developer to explain their development process. Avoid developers who don’t have a well-defined process.

Read Keys to Successful Projects  for more about our software development process.

Does the Developer Write Project Specifications?

Robert Glass states in Software Runaways, Lessons Learned from Massive Software Project Failures, that 51% of projects fail due to poor or insufficient projects specifications. Thus project specifications are crucial to the success of your projects.

Ask the prospective developer whether they write project specifications and to send you copies of specifications they have written for past projects.

If requrested, I can send examples of past project specifications that I have worked on.

Seek Senior Contractors for Large Complex Projects

Robert Glass states in Software Runaways, Lessons Learned from Massive Software Project Failures, that 42% of projects fail due to lack of senior staff.

Interns and college graduates do not have sufficient project experience to design and develop software for large complex projects.

Match the seniority of the contractor to the size and complexity of the project.

I have over 10 years experience designing and developing complex software.

Hire Developers Based on Track Record

Many Craigslist posters request the developer be local to their office. Proximity of the developer to your office does not guarantee project success. Increase the probability of project success by selecting a developer based on these criteria:

  • Developer has a track record of successful projects.
  • Developer has a well-defined software development process which they follow.
  • Developer’s references confirm project successes.

 

Pay Market Rates

Several job posters offer to pay contractors $8.50 to $12.50/hour. This low rate attracts inexperienced and poor developers. The most likely outcome is a poor or non-functioning web site and you'll waste your time and money.

Pay market rates and you’ll attract experienced developers to work on your project and you’ll increase the likelihood of project success.

Current market rates (17-Jan-2006) are $50/hour to $75/hour for experienced developers. Students generally charge $20+. Developers who specialize may charge fees above the range stated. Rates vary based upon geographic location.

Check References

While I can’t be certain it seems apparent to me that many job posters do not check the developer’s references.

A few questions to ask the developers previous clients:

  • Did the developer understand your objectives before starting the project?
  • Did the developer write project specifications?
  • Did the developer stay on the project until completion?
  • Did the web application function as outlined in the specifications?
  • How many bugs are in the web application?
  • Did the developer respond promptly to inquires, phone calls, emails?

Know the Role of Designers vs. Developers

I’ve noticed some posters are confused about the role of a web designer versus a web developer. For example, the job title is “Web Designer” and the body of the post requests the contractor to perform software development.

A web designer designs the graphical appearance of the web site. This includes: colors, fonts, logos & images, placement of text and images on the page. Tools typically include HTML, JavaScript, Dreamweaver, Photoshop, and ImageReady.

A web developer designs the database and the actions of the web site. This includes: designing database tables, designing software to validate form inputs, storing data in the database, getting data from the database and displaying the data on pages. Tools typically include: C#, ASP.NET, and SQL Server. You may need both a web designer and a web developer for your project. Therefore, you may want to state that in your job post.

Summary

Doing your homework upfront can greatly increase the success of your project.

SourceLogic Solutions develops web applications in C#, ASP.NET, and SQL Server. We:

  • Understand your objectives at the beginning of the project.
  • Follow a well-defined software development process.
  • Have 10 years experience developing software.
  • Have a track record of successful projects.
  • Have good references.

You can read more about software development process and project specifications by reading Keys to Successful projects.

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics

Keys to Successful Projects

by admin 3/29/2008 6:06:00 PM

Senior Staff

Robert Glass states in Software Runaways, Lessons Learned from Massive Software Project Failures, that 42% of projects failed due to lack of senior staff.

We have over 10 years software development experience in an extensive range of areas:

  • Web Applications.
  • Database Design.
  • Complex Work Flow Analysis
  • Web Server configuration.
  • Real-Time Systems.

Given this extensive experience SourceLogic Solutions can bring this expertise to your project:

  • In-depth understanding of the software development process.
  • How to write project specifications which leads to project success.
  • Superb software design skills.
  • Professional approach.

Process

Process is an ordered sequence of steps to help you walk from a starting point to a goal. Expert software developers use process to lead a project from conception, through development, and to completion of a quality product.

Without process bad things happen. High costs, long development time, etc.

Our process for creating quality software is:

  1. We learn your objectives.
  2. We write project specifications.
  3. You review the project specifications.
  4. We design the software.
  5. We create and test the software.
  6. You test the software.
  7. We fix problems and you test.
  8. You use the software.

We Learn Your Needs and Goals

Many software developers rush to coding and create applications which do not meet the clients needs. The result is high development costs, lost time and frustrated clients.

During our initial conversations we ask insightful questions and listen carefully to learn and understand your needs and goals.

Project Specifications

According to Software Runaways, the major reason for failed projects is a lack of or poor project specifications.

We write project specifications that accurately reflect your needs and goals.

Good Communication

During the development process we need to ask you questions to refine our understanding of your objectives. Poor communication during this period results in web software which does not match your objectives. Causes of communication problems:

  • you are busy and are unable to devote sufficient time to discussions;
  • impatience; and
  • using poor communication tools such as email exclusively.

Hallmarks of good communication are when both parties:

  • devote sufficient time to discuss the project details;
  • are patient; and
  • use good communication tools;

Effective communication ensures that the product we produce will match your objectives.

Good Design

Poor design leads to software which does not function properly, has poor performance, and does not meet your needs and goals. The resulting software is commonly called "spaghetti" code. Bad? Yes, because it wastes your time and money.

We carefully design all components resulting in well organized and working software.

Develop Small Projects

Large projects are cumbersome, complex, costly, and have long development cycles which delay realizing income.

A better approach is to chunk the project into a series of small projects.

Use Evolutionary Approach

 

Your Involvement is Essential

Your involvement is essential to success of the project, without it failure results.

You need to set aside time to discuss your business needs and goals, review project specifications, prepare and provide us with material, such as, content, images for the application and test the software during development.

Set Reasonable Schedules

Tight schedules increases errors and poor design of your software.

 

Reasonable schedules allow the developer, graphics designer, and you to carefully develop, design, and test the application resulting in high quality software.

We Respond Promptly to Inquires

Developers who respond slowly delay your project.

 

Prompt responses keep your project moving at a good pace towards completion.
 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Consulting Basics

Powered by BlogEngine.NET 1.3.0.0
Theme by Mads Kristensen

About the author

Name of author Author name
Something about me and what I do.

E-mail me Send mail

Calendar

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Pages

    Recent comments

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2010

    Sign in