How to Write a Good Application Design TextFrom beginnings working maybe as a tester you’ve progressed to a team developer, then a senior developer, and now you’ve made another leap, the biggest of them all, to working directly with clients. While in the past you got your marching orders from an employer that worked with clients or was itself in the software business, now all those responsibilities that were once distributed between expert testing, program management, etc. And now you’re working with clients who are not in the software business they’re in another business that needs a piece of software, and they don’t have a clear and precise vision of what they want from you. note: here, i’m describing smaller clients who want a one man army from their developer. It’s not the only route a freelancer can take, and those aren’t the only clients we work with at toptal, but it’s the route i enjoy most. You’ll probably want to structure your milestones slightly differently. from beginnings working maybe as a tester you've progressed to a team developer, then a senior developer, and now you've made another leap, the biggest of them all, to working directly with clients. You can’t work by getting a few sentences of terse description over skype and saying see you in three months when i’m done. You have to be in communication with your client and at every stage of your work make certain that you have congruent ideas about the objective, because it’s rare indeed that a client will send you wireframes and a detailed functional specification. You will get a very general idea of what the software is supposed to do, look like, and flow. If you write an application based on the cursory description you usually start with, there’s almost no chance that your client will be happy with the result. You can't work by getting a few sentences of terse description over skype and saying see you in three months when i'm done. Having worked for years at companies that were themselves in the software business, where everyone on the team was from the same culture, spoke the same native language, worked in the same hallway, met each other daily, etc. It was noteworthy that the company still didn’t get what it wanted half the time. So, when you take on a new project, before you even open xcode or visual studio, you need to have clear and agreed upon design goals. If the client hasn’t written one, you should write it, and submit it to them for review before you even open your ide. And if you encounter a client who says, we don’t have time for design documents , candidly, you should walk away from the project because you have trouble ahead. The specification need not be particularly lengthy it can be just a few pages, but at the very least it should lay out the user interface, include wireframes if there’s a ui component , and set completion milestones. without this document, you’ll end up in a loop of acrimonious equivocation, clients disputing what they told you or what you told them, angrily sending cut and pastes of previous communications, interpreting and arguing until the time comes when the client demands that you make changes to bring the application into conformance with what they actually asked for, and expects you to make those changes without pay. with this software design document, you’ll have an answer to any such quibble: when disagreements arise, you can refer to the specification which the client agreed to and signed off on, pointing out that you have fulfilled it to the letter. Instead of angry arguments, you’ll make amendments and clarifications to the document. If anything, the client will apologize for letting the imprecision slip through in the first place. But these can’t be achieved if there’s any vagueness whatsoever about what the job actually is. If your client says that a design document is too much extra work, it’s your job to explain to them that the real extra work will emerge when revisions need to be made due to some sort of misunderstanding. If the client still insists that you advance without such a document, you should accept the fact that you have an unworkable relationship and walk away. at the very least, it should be a description of the desired application, criteria for completion, and milestones. remember, you are sharing what is best described as a requirements and function document, not an implementation specification. And unless a specific implementation is a stated client objective, how you make it work is up to you. A Scary Experience Narrative EssayBut if you happen to have one of these as a deliverable, count yourself lucky because the user interface is far and away the most problematic component of your design document template. Many clients will send you perfect illustrations created in a graphic editor by a graphic designer who is not a programmer. But the problem is: these illustrations say nothing about animations, control states e.g. Is this button disabled? does it disappear when unusable? , or even what actions to perform when a button is pressed. But these illustrations say nothing about animations, control states, or even what actions to perform when a button is pressed. Before you start writing the code behind these illustrations, you should be able to answer all of those questions. This can be exhaustive and tedious work, but you won’t regret it it can save you from re writing huge amounts of code and re creating interfaces due to a minor misunderstanding with major implications. Separate wireframes for 3.5 and 4 screens are probably excessive, but you may have to make them in most cases, you can simply change proportions. If your client supplies you with graphics, make sure that they are correctly sized with the proper aspect ratios morphing any bitmap that has text or objects like circles will introduce distortions. Don’t presume that you can stretch a 3.5 splash screen into a 4 splash and just roll with it. Key questions to ask in the application design document: what does the application do, and how quickly does it do it? what are possible failure conditions and how are they handled? what one time operations are done at the first execution i.e. Bookmarks , what are the limitations? generalize these ideas, and be as detailed and thorough as you can because errors or misunderstandings here will mean rewriting code. If your client writes the functional and user interface design, you should subsequently agree on a set of milestones. Sometimes these are billing thresholds as well, but at the very least they provide a clear metric toward completion. Milestones may be in terms of functionality and/or components they may even be separate applications if the gig involves a suite of deliverables. What application states high level descriptions of core user scenarios will the user encounter? for example, your functional description might look like: first run creating a new _ game, search, etc. Operations background and foreground behavior include wireframes for each page, with detailed descriptions of: each control, including states enabled/disabled/highlighted and operations. Here are the wireframes related to my latest ios app, notifeye available now on the app store: if you’re interested, i made these mockups using balsamiq’s wireframing tool. From Father With Love Essay GoodwinFor example, your ui description might look like: navigation bar left navigation control: return to home page title bar: current screen or operation name new button: create a new thing table view section 0: section title section 0 rows: row control 0 e.g. Image text line 0 text line 2 as described above, deadlines for completion and expected deliverables. There will always be details that neither of you had considered, and both you and the client will, while looking at the intermediate results, encounter new ideas, design changes, unexpected design flaws, and unworkable suggestions. In my 25 years of experience, i have never once worked on a project where this didn’t happen and that includes my own applications i.e. Even then, i created a design document with detailed specifications, and adjusted it as necessary. At least several times a week, contact your client, report on your progress, ask for clarification, and make certain that you share identical visions. As a litmus test for your communication, try and ensure that you and your client give the same answers to these three questions:
Make your personal profile concise and bespoke to the position you are applying for. List your jobs and experience in a clear format use a consistent style and avoid indulging in excessive underlining and capitals. Add precise dates and clear job titles, and for each description focus on your responsibilities and achievements in each role with illustrations of where skills were used or deployed. Use competency based words at the start of sentences that stress the skill, quality or achievement you are highlighting. Take the opportunity to tailor your cv to the needs and philosophy of the company. If you can do this well enough to be noticed by the employer and you have the necessary skills, your application will be very strong. Communicating an understanding of the brand values of a fashion company is a very smart move. To reinforce the above point, each cv you send with an application should be unique to that application. Unless the role you are applying for is very creative, avoid coloured paper or other ‘tricks’. Stick to 2 pages max as interviewers are busy and see a lot of cvs content must be factual and accurate, and remember what you included in order to answer questions. Ensure that these are your previous employers and remember to include their contact details. Check spelling and grammar once, twice, and then ask a third party to read and check. summary: application usability is enhanced when users know how to operate the ui and it guides them through the workflow. It's hard to write a general article about application design mistakes because the very worst mistakes are domain specific and idiosyncratic. Usually, applications fail because they a solve the wrong problem. B have the wrong features for the right problem, or c make the right features too complicated for users to understand. Any of these three mistakes will doom your app, and yet i still can't tell you what to do. What's the right problem? what are the right features? what complicating curlicues can safely be cut from those features? for each domain and user category, these questions have specific and very different answers. The only generalizable advice is this: rather than rely on your own best guesses.
© Copyright 2013 - 2016 - www.writehomestudio.com.
All rights reserved. |