Web Design

PM meets dev: a bigger picture look at the web – Part 2

This is a continuation from Part 1. If you have not read that, I encourage you to read it first. In my last post, we were looking at a large picture perspective of web applications. I first must apologize for a misuse of terminology. I used the terms “PM” and “Project Manager” when referring to the role being described in my last post. Strictly speaking that would be incorrect as just setting up premade software would not concern a PM in all likelihood. I should have just used the term “manager”. As we continue, we are going to look at usability and maintainability. We are going to continue to approach these problems from the perspective of effort/time and decisions rather than technical aspects except where very useful. 2. Usability Usability is arguably the most important part of the project for a manager. This is really what needs to be reasonably well defined before hand and what can make or break the final project. The largest and most important part of this is a well defined list of features. After all, this product is providing the users with access to some features. If they are good enough, the users will continue to use the product. If the features are lacking, convoluted, difficult or time consuming, wrong, inappropriate for the target audience or anything else negative, this can spoil the project. Since even though all these descriptors are similar they are still extremely important, I want to look more specifically about what each can entail. More importantly, how features could be better defined to remove the problem and give a better product. Lacking features references when a product lacks an element of completeness to the user. This comes from a couple of ways. The most direct is when a product helps the user toward a goal but fails to help from the start or until completion. Having to use external tools or do more work by hand is generally unacceptable unless there is good reason why the product cannot do more (licensing, technical limitations, etc.). Even if it might be more work to do it by hand, users may choose to do all the work without the product then simply because it involves less context switching. The more subtle way that a set of features can be lacking is when all of the features from start to finish do exist, but they are not well done. Not well done can refer to both flawed in a different way (possibly one of the ways described below) or that the feature itself does not provide enough help to the user to really be seen as a full feature. For example, if something expects...

Read More

PM meets dev: a bigger picture look at the web – Part 1

I feel like it might be a good time to step back. This blog has existed for only a few years (going on 4), but it really has been enough time to see quite a bit change in the world of the internet. I maybe a dev in general, but I think a PM perspective is valuable especially from this perspective I am by no means an expert on many topics including the ones I want to look at. I do argue that to be a feature in the regard that most of the world is not experts. Because of that, I can present a user’s perspective to a lot of topics. I have wanted to see a wonderful and accessible web for a long time. From the client side, we have achieved that to a great degree. Browsers are actually overall acceptable products. I will not call them perfect by any means, but I do not think that a large concern of the web needs to be focused on the client. Instead I want to focus on the server side. There are three major aspects to any application that are not foreign to the web: setup/development, usability, and maintainability. Now I usually play the role of developer on projects, but I am by no means foreign to the Project Manager role or big picture. For this post, we are going to stay with the big picture. To be very clear, we are going to start by defining each of the terms rather specifically: Setup/development Though these seem like two steps, they reference the same goal: what it takes to get the software running on the server. Setup here is referring to deploying premade software. These can differ greatly with a “from scratch” environment and something that exists. Development on the other hand references both man-hours needed to get the software created as well as the time based around the learning curve. This can differ for people of different backgrounds and should be approached from different perspectives. Usability From the web application’s stand point, there are two ways this must be usable: can the administrator easily achieve whatever task he wants (such as generating content) and can the users easily access and consume the results (such as reading the content). We are strictly looking at the amount of work needed for the day to day use of the product Maintainability Even when shipped, software is never really done. The web knows this to a great extent with regards to security. This also comes up with support from underlying technologies. For instance, does the software no longer work with future versions of the language interpreter/compiler? If so, now old software...

Read More

Running Custom

Well, I have to say, my interests in running the latest and greatest software comes at a price. I’ve taken to running svn releases of WordPress. I don’t exactly have a good reason, but it does seem to make themes not work right. (I tried to use two different themes because i’ve been doing a lot with dark backgrounds and light text recently. it went poorly). On the bright side, the new interfaces seem slick and the updates are easier using straight svn access. For development, I’ve come to find that I’m either in vim or Visual Studio 2008. That’s pretty much the two ends of the spectrum of light and generic program to highly customized and heavy for development. I’ve been doing some development with C#.net and really have to say it’s fun. I love programming in it probably more than any other language. I’m enjoying the environment too. I admit, I kind of miss my vim key bindings and jumping into normal mode to move around, but it’s not all bad. The code completion and intellisense is great in VS2008. The debugger for applications in extremely nice to step through whatever has gone wrong. I really must say that I miss those capabilities when I’m writing something else. Also, since I mentioned running light text on a dark background, I would suggest altering your theme (if your window manager supports that) to light-on-dark. It’s very nice on my eyes and you can find great places where only backgrounds or foregrounds were specified, making them unreadable! Well, at least it encourages you to think about what happens when someone does try to use high contrast light-on-dark settings with your program/web site. Accessibility...

Read More

Webtrends rant

Well, after abandoning my post for updating this for a while, I figure I might want to try Steve Yegge’s suggestion of being more opinionated in my blog. If nothing more, it might generate a bit of hate mail. I’m going to be honest. I enjoy writing web apps. I really enjoy the back end code and the product at the end. I have done pretty much everything of significance in PHP also. This shouldn’t offend anyone yet, but some people might see PHP and think less of me. And the real question becomes why? Now I’ve asked a lot of my friends this question. The general answer usually comes down to PHP yielding bad code or being unmaintainable. Um… I don’t think that’s PHP’s fault that the last person who worked on this project kinda hacked it together into somewhat working but terrible shape. Most if not all programming languages allow you to write bad or unmaintainable code (purely functional languages might be the exception, but my experience with them is far too limited to be able to comment). To be quite honest, I don’t have a problem maintaining my php code. Larger projects always have a framework (one I made usually) to power them and small scripts can easily be navigated by using find in the file or scrolling. Well Rails and Django are amazing frameworks. This may or may not be true. Rails does have a lot of cool features. It is even cooler when you start giving it extra gems. I’ll give it that, but even that isn’t good enough for me. If you actually want to start using more complicated conditions, you end up writing the SQL you were looking to avoid. Something like Symfony provides most if not all of the commonly requested features for php. There are many other frameworks available too. So if one isn’t good enough, you can always try another. PHP is slow. To be honest, PHP is usually not where scripts end up being slow. I frequently see one of the following: 1) Are you having PHP do calculations that your database could easily do? Why would you do that? 2) Are you having PHP parse pages that are static or virtually static? Why not use server side includes and not even use the php parse? 3) Did you make a huge data structure that you are recreating on every call? Look into functional programming or restful programming (both are stateless) and consider revising your code. And in the end, PHP has a lot of well known ways to speed it up. Why not try out a caching solution? memcache is nice and well supported. You could even...

Read More

Back to fun

Ok. I finally am coming to have some free time and have already started making things for the public. I noticed that there aren’t many (if any) good cURL tutorials that show you some of the power of cURL like manipulating cookies and such. Such a tutorial could be used for good (such as unit testing your work) or evil (trying to program a bot to do something that requires a login). After I get my contrived examples created and can demonstrate them, I’ll write up the tutorial that looks at cURL in more detail. This is supposed to both show users how to use cURL better as well as for site administrators to get an idea what could cause vulnerabilities. I will also discuss ways to create login systems to defeat cURL. To be posted...

Read More

Web Shame!

I was browsing the BBC news as I frequently will and found a very depressing article for all web designers. Most people who know me and have ever asked about web development have heard me preach about standards and accessibility. I realize my site itself is pretty plain, but it is very functional for screen readers among other things. I even verify it works on mobile devices (though I can’t post with my blackberry. That failed horribly). I know that most people don’t like to think about it, but it is really not that hard to keep things accessible. All of the people who need them will love you for it. If you have a really accessible site, I would love to even show it off. For a nice example, take a look at Molly Holzschlag’s homepage. Molly is an advocate of web standards and a good designer to boot. She is a good author and excellent speaker on the topic of web standards and accessibility. Her site is a good example. So what is most of the web like according to Nomensa (referenced in the BBC article)? Almost all major sites do not even provide basic access to those needing assistance such as screen readers or magnifying tools. That is not acceptable. We as web developers need to think about more than just how pretty things are. Standards are your friends! Follow them and all of these problems will virtually go away. The article is a good read. Even if you do follow standards. The article is ‘Most Websites’ failing disabled. Oh and if I remember, I have some music news to post as...

Read More