NOTE: I am in the process of moving my blog to this new system. Thus, it should be noted that this entry was originally posted on 3/24/08.
A colleague and good friend of mine approached me about assisting him in developing a somewhat major web-based application. It turns out that the application is a very good idea and I was anxious to lend a hand.
After our first meeting my friend asked me how we could get his supervisor to approve the project. This is a common problem for many subordinates when trying to approach management with a new idea. The following were my recommendations:
- Consider the circumstances – You will need to decide which of the following are necessary. For example, if its a small idea, you won’t need to develop a plan. You can decide what is necessary.
- Develop a plan – Create a plan that your supervisor will understand. This may be a simplified schedule of what needs to be planned, purchased, expensed, who is involved, etc. Or it could simply be a list of items you need from Purchasing.
- Make them a winner – Assist your supervisor in seeing how they benefit from the new system. This may be more efficient employees, cost-savings, or time-savings. Of course, this has to be tailored to the supervisor’s point of view. How does the new project affect his/her budget? Time? Effort?
- Do what you say you will do – If you say you’re going to do something, do it. If you get approval from your supervisor to create or do something, make it happen. If something occurs that prevents your project from happening, communicate this to your supervisor. Remember communicating your issues in either circumstance will aid your supervisor in being informed.
For some, its not easy selling new ideas to supervisors or even colleagues. But remember, you’re always selling something, whether you realize it or not. Encourage your selling strengths and strengthen your selling weaknesses. Good luck!
NOTE: I am in the process of moving my blog to this new system. Thus, it should be noted that this entry was originally posted on 3/18/08.
One of the most important elements of software (whether desktop or web-based applications) is quality assurance. When we (at DSS) sell a product to a customer, they obviously expect a high degree of quality and usability. Not just for their employees, but also for their citizens. Our products will be used by the public citizens of that state and in a sense our products provide a foundation by which citizens will judge the overall quality and integrity of the state and the services it provides. This is why the quality assurance of our web-based sofware is so important to our customers: they don’t want to betray citizen trust (and to avoid looking like idiots).
The sole focus of quality assurance should NOT be from the programmer or developer perspective (as it was early in my programming career). Q&A is so much more than just making sure the programmer thinks the system works correctly. It is ensuring that additions or modifications to software:
- Can be easily used by those who do not fully understand the software
- Performs the expected operations as planned
- Is efficient
- Is simple
- Is security enabled
- Is future-oriented
I’ll briefly explain each of the items:
1) Can be easily used by those who do not fully understand the software
Because programmers and users are so disparate in their usability logic, a pre-defined "link" must be created for programmers to the user. Some teams create this link by hiring a usability expert or interaction designer. This person is usually solely responsible for creating interfaces for consumers; thus, removing the need for a programmer to include interaction techniques in their development which could save significant time. Interaction designers can also train programmers to instill good interaction design techniques.
This quote perfectly portrays one of the major gaps between usability and software development. Programmers develop logically (that is, in a procedural way) whereas users scan quickly (which tends to be more emotional). These inherent differences always cause confusion for the user and difficulty for the programmer. Thus, when programmers perform the following non-exhaustive list of checks, users will have a much easier time adapting to the new application:
- Design interfaces first, then build the backend.
Building functional mockups of systems (or modules of systems) for user testing prior to full development will allow easier and faster modifications to the interface based on user testing results. Waiting until the system is fully coded to perform user testing is much more difficult to modify. - Perform user testing with multiple user groups.
Some users are inherently more skilled at using programs than others. I usually try to get the less-skilled users earlier in user testing, to work out the obvious usability obstacles.
2) Performs the expected operations as planned
This is a no-brainer. If the application does not perform as specified in an evolving requirements document, what’s the use? The application will not do what is expected and should not be built.
3) Is efficient
This is not meant efficiency in programming process (query optimization, efficient array processing, etc.) this is meant to explain efficienies in user interfaces and interface processes. For example, if a user needs to create a question to ask in a survey, have them finish the entire process in one screen. Clearly, adding the question text and adding possible responses (for a multi-choice question) should be done on the same screen. The old screen-refresh-at-submission designs are a thing of past (I admit that I have a lot of work to do). Technologies that assist with this are AJAX and Flex.
4) Is simple
A major application system is simply a lot of smaller components working together. Keeping those smaller components simple will always provide for a stable system.
5) Is security enabled
Don’t plan security into the picture after user testing. Security is an ongoing problem and should be an ongoing concern. Programmers should be routinely and frequently trained in the latest security threats and hacks and those procedures should be implemented DURING DEVELOPMENT; not after it has happened. It is more difficult and more risky to implement security features after development than to implement them during it.
6) Is future-oriented
That’s on odd one, eh? What I mean by "future-oriented" is that programs and applications (whether web-based or not) should evolve. There should be a continual re-evaluation of the application to asess enhancements, modifications and new features THAT MATTER. There is no need developing anything that really won’t matter to users.
In summary, this is simply a short list of a much longer one that may assist with approaching software development properly.
NOTE: I am in the process of moving my blog to this new system. Thus, it should be noted that this entry was originally posted on 2/4/08.
As much as I hate to admit it, I’m going back to Microsoft Project. I’ve worked for several weeks to get Open Workbench working the way I like. But there are two very important issues that I couldn’t get to work in OW.
The first was I had to double-click each task and assign dependencies and resources through the dialog box. I hated that. In MS Project, all you do is type the name of the resource to assign it. To set a predecessor, you type in the number of the task. As for as I know, I couldn’t do that in OW and it was the most frustrating thing about it.
Second, it is just not as user friendly as I would expect from a software program. I really tried to learn it and make it useful for me, but in the end I wasted a lot of time and effort working to make the projects work the way I liked. I guess you do get what you pay for… sometimes.
Honestly, I have to give Microsoft credit for their good usability and ease-of-use principles in their software. While a lot of people disdain them for various things (including myself), some things they do extremely well.
On a side note. I’ve never seen Microsoft as an INNOVATOR in technology. They’ve always been the COPY CATS with a good marketing plan. They copied Windows from Apple, copied Java with C#, began copying the iPhone with there phone (whatever the name was), copied Adobe Flex with Silverlight (??). Anyway, if there is one company that has a damn good marketing team, its Microsoft. If there is a company that has damn good innovations, it certainly isn’t them.
In my opinion… Of course…
NOTE: I am in the process of moving my blog to this new system. T Thus, it should be noted that this entry was originally posted on 11/30/07.
Open Workbench is an open source project scheduling tool for Windows. Due to personal and corporate budget constraints, I’ve quickly found interest in this tool. Also, trying it out seemed interesting due to the fact that it calculates work and scheduling events more intuitively than Microsoft Project.
However, I’ve had some difficulty in installing Open Workbench and allowing it to run properly on my machine. It looks as if the program does not use proper security access for Windows. I always work in a limited user account in Windows and only run in Admin for rare administrative tasks (like installing programs). Well, after installing Open Workbench via an Admin user, it wouldn’t run. I could have setup the program to “Run with different credentials” in Windows, but, I’d rather not require all users to enter the admin password.
Installing it strictly as a limited user didn’t work because the installer couldn’t write to C:\Program Files.
Allowing the limited user Full Control over the entire C:\Program Files directory was out of the question.
SOLUTION: Now, I know enough about Windows security to mess up a machine. But, I’m nowhere near an expert. So, I made a simple work around that I believe is more secure. As an Admin user, I created a folder C:\Program Files\Open Workbench and gave the Users group Full Control over that directory only. Then I installed Open Workbench from the limited user account into its default directory (C:\Program Files\Open Workbench). Since the folder already existed and it had full access, the install worked. The program now runs properly as either an admin or limited user.
However, I’ve only installed the darn thing. I haven’t run it and thus, we’ll have to see if the program runs properly down the road.
Latest Comments