Web Sites: From Design To Development
I'm working on a web design. I've done a few before. Technically this site and a handful of others were "designed" by me, but the art of web design is something I've never learned, and it's still difficult for me to conceptualize aesthetically pleasing designs. I also have a lot to learn about Photoshop before I can bring concepts to life. And I'm pretty bad about finding a good set of colors that work well together. So the deck is stacked against me. But I have a book I'm borrowing from work which walks me through the process and ideas behind creating a web design. In some ways, I'm liking what I've come up with so far, but I also leaned on Carlos a lot for suggestions including one of the fonts, the color palette and some of the navigation design elements. I've taken a few days off from working on the design though, and want to get back to it, either tweaking what I've got, or starting over with what I've learned. I could just settle, but I'm trying hard to work towards achieving a professional looking design. That sort of "final 10%" is the hard part that I need to learn if I'm ever going to resume doing freelance regularly, even if a lot of the design work still ends up being done by someone else.
Once done with the design, I can start in on yet another new challenge, which is coding the visual presentation elements of a web site. This involves learning how to effectively use valid, semantically significant XHTML (markup to help bridge the gap between textual content and how a web browser will interpret it) and using CSS (style and layout commands that work with HTML to take the content from meaningful to beautiful) intelligently. I've learned some key points in using CSS lately, and hope I can apply it to this new project.
And then I can work on another technology I'm in the process of learning. That's .NET 2.0. It's a difficult decision for me to switch from using (older, sometimes considered obsolete) Classic ASP to this newer framework and language for building web sites with a database and application base, because I know ASP so well and can accomplish a lot in a short amount of time. Unfortunately, the work and the money will all be through .NET in the future (and even today), so I really need it to keep working in this field. And fortunately, you can do some things with .NET without purchasing third party components like you often did with ASP, particularly resize uploaded photos.
All the while, I'll be practicing my database architecture and user interface design skills and trying to take a best guess at what functionality and features will be useful for (and used by) the target audience, a picky group of individuals that are reading this blog post right now.
Force Your Customer To Change?
For some people, web browser choice is very important. So why is it that so many business entities think it is OK to take that choice away?
Recently, I tried to browse the Lowes.com web site using Firefox 18.104.22.168. After entering my zip code, every page I browsed to froze the browser for a short while. Firefox alerted me that a script was running endlessly, allowed me to stop the script, and then the process repeated. Each page threw up an infinite script twice.
So I contacted their customer service alerting them to the issue, hoping they would fix it, but it's been a while since I've been optimistic about customer service. My pessimism was right on the money. They replied that I may experience problems when using browsers other than Internet Explorer or Netscape. Oh and I should enable my browser to accept cookies.
Wait a second... the solution to a company giving me a bad user experience is that I change? That is the most ridiculous thing ever, but it's not at all uncommon. Of course, we've been trying to steer away from that exact issue for a very long, because the days of "Best viewed in..." should be long over. I guess not everyone got the memo?
Look What I Can Do
Successfully designing a user interface is quite a feat. One of the main difficulties is being able to measure success. Many users are quick to blame themselves for any issues they encounter. Rather than finding an issue with the poor design, they decide they just don't have the skills needed. Because of this, I feel that a successful design is one that pleasantly surprises users by working just how they expect it to. Before they know it, they feel like masters of this new application, and that is a great feeling. That's the kind of thing that will entice them to spread the news and get other people interested.
As The Time Flies
It has been a great couple of months during which I've kept very busy. I'm working on a non-public web application, and as the launch nears, I'm excited to see it in action. I think what was even more exciting was working on this as a team. I've done a lot of projects as an individual, but as the project sizes have grown, it's started to make more sense to include more developers. This also helps everyone develop their own place within the team.
It's not unusual for me to do system architecture and database administration, since it's just one of the many things a project needs to be completed. For this project, though, I got to focus on it, and put a new perspective into it. This time I had to think about how a programmer that isn't also the architect will be seeing the code. They'll need some way of knowing what they can do with existing functions and database interfaces to easily complete their tasks, without knowing the whole system behind it, how the data might be stored and accessed, how certain checks are in place. Thinking this way as the architect forced me develop some very flexible stored procedures and application-wide functions that were also relatively self explanatory in their usage. It seems to have worked, because the programmers picked up their tasks and took off running, getting us from here to there quickly and smoothly. And I found myself not only happier with the overall product, but really enjoying the team environment, perhaps more than I expected.
Of course, I still did serve as project manager, and as many new to management will find, it's so very hard to let go of the things you did before. I helped with programming just because of the size of the project, but I really had to watch myself to avoid micro managing the other programmers in how they accomplish their share of the workload. I'm sure I wasn't perfect, but I hope to improve upon this skill as I exercise it more, and help the programmers grow and learn. That way I can fill in for fewer roles, focusing on the areas that make the most sense within the team, and being the best I can at those.
Welcome To The Inside
Over the past year, I've been developing a lot of projects for a variety of reasons. Sometimes I have a simple problem to solve. Sometimes someone else has a request. Whatever the reason, there's also the need for practice and innovation. So I put together these projects, and I want to share them and discuss them. But until now, I didn't have this outlet. So I pushed up this tiny project on my list of priorities.
Once I got my feet wet, I started seeking out projects for practice. One of these is a simple list application
Another nifty feature I put together which I think is more interesting to most people and used by many is a Google Suggest type of search interface. I put this together for my photo database, which I've tagged with keywords. With this new search interface, you can start to type keywords, and get a suggest list which shows how many photos match each possible keyword. You can use the keyboard or mouse to select one of the suggestions, or if there's only one suggestion left, you can hit enter. Then, without leaving the page, thumbnails of all the matching photos load, and you can click on them to load the full-sized image. This full-sized image also uses the object dragging class. You can enlarge more than one photo and drag them beside each other for comparisons.
The final project I'll mention has gone through a lot of changes, and still has a lot of work left as well as a lot of potential uses. I envisioned it being used to create web site wireframes or prototypes
, but it has progressed through some stages. At first it was simply a drawing tool, where you could make different colored rectangles, either outlines or solid. Then I added the ability to add text, and at this point you can format the text using a basic WYSIWYG interface. I've found that the more I work on this project, the more ideas I have, so this is one project I want to slow down, so I can take a good look at where it could go and how I can get there, rather than continue to change the application blind to the desired end result.
With that, I'll wrap this up. I hope to use this to continue to provide an insight into internal and external projects that I work on, and as I add features to the blog, to get feedback about what interests you and what you think of the work I've done.