Ask Slashdot: Technical Resources For Non-Technical Disciplines?
New submitter nashpt writes: An accountant friend has recently joined a startup looking at developing a web platform. My friend is now dealing with developers directly where he would not have done so previously and feels he is at somewhat of a disadvantage. He asked me if I could advise on how he could get knowledgeable in the relevant technologies, HTML and JavaScript, in order to better interact with their developers. While there are numerous resources available to learn to program both of these, I didn't feel that would be the best approach; if nothing else, because he will have significant constraints on his time. Instead I looked for any primers that focus on technical subjects for non-technical disciplines. I haven't found much I think would be suitable for his needs. I appreciate this is a broad subject but can you recommend any resources that would be suitable in general or specific to these technologies? Do you even agree that this is an appropriate approach or should he look to develop a working knowledge of these languages instead? Any other suggestions on how to approach this?
there are a plethora of ppl that could fill this role. he shouldn't be interacting if he doesn't know what he's talking about... developer nightmare
Account should not try to "get knowledgeable" in HTML and JavaScript. He will only seem more of an idiot.
1. Be a great accountant, and dominate your existing field. Teach developers how to make the products more profitable
2. Be a human and a user, and gain user and interface expertise, so you can say what you think about the product with authority and clarity. Tell the developers how to make a more usable product.
3. Can your expertise be used to improve the product? Accounting skills may be important for the platform to make money, and the financial analysis tools needed to understand the web platforms performance.
don't cut it off www.mgmbill.org
He seems to have accounting skills and a business plan to develop. Focus on those skills -- leave development decisions to the developers.
Take time to create some wire frame (pen on paper) mockups of workflows and business rules. Find similar layouts and "look & feel" from existing sites that he can give as examples to the dev team.
If he's worried the developers won't understand his requirements and he's wasting money, hire you (the friend) to interface with them. Build mock-ups as iteratively as possible without connecting any back-end logic so he is "comfortable" with the UX before spending time on the back-end.
If he already had web skills, he'd just implement the idea himself; hiring others is when you know you cannot do everything yourself. Hire fewer, but better, people. Good luck.
If your friend were to develop semi- (or worse) skills, the only thing he could do is give bad technological input and make bad technological decisions. Either get somebody that has the required insights, skills, and, most importantly, experience (and experience can only be replaced by more experience) or refrain from giving technological input and making technological decisions. A good option is to get a consulting firm with respective expertise to fill that role, especially, when no full-time person is required.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
It's relatively straight forward, put someone in the position to make a decision. Why not go out and hire someone who is not so bright, or so smart; but can still get the job done. And let them do it?
I agree with the other commenters that it does not make sense for the accountant to learn technical skills. At most, some sort of "Intro to programming for non-programmers" may be useful if the guy wants to develop a minimal mental model of what's going on in a computer program.
But the accountant's role is critical. Why is he interacting with developers? The answer to that question would drive what (non-technical) skills the accountant should pick up in order to do his job better. I agree with the previous posters also in that this person's greatest contribution probably will be in giving his feedback as a user, or in some other form on the product side.
Learn to think about a product as a product, and to be able to discuss his company's product as a product. Bring that to the table when collaborating with developers. Maybe this means reading a little about product design, or doing wireframes of workflows/business rules as suggested. Maybe it means communicating to dev team important features of product.
Lastly, if the developers have the time, asking them what they need and would like from him cannot hurt.
I'm not sure what good javascript would be for an accountant. It's hard to get anything done unless you know what you're doing with coding and have put years in. It's like asking to dabble as a concert violinist. You just won't perform until you become really good.
An accountant would have a lot of use for Excel scripting though or the Open Office equivalent. I think one's job could be boosted in numerous ways by the automatic math of tables, columns and cells. And if he likes that, maybe then introduce him into coding.
Software Engineering is a lifestyle where you either are all in, or don't touch it. Like anything, it takes about 10,000 hours before you get up to a respectable level of knowledge. If he really wants to learn Software Engineering, don't start with a messy scripting language to start. Get all your core principals in the basics with Java first.
God spoke to me
Wikipedia. If that's too advanced, you can always try UrbanDictionary (html = how to meet ladies).
Seriously though, I've seen people get basic literacy in HTML in a few hours. There are a lot of details beyond that, figuring out how to get things exactly where you want them on the page, how to deal with browser incompatibilities...........plenty of things that take a while to learn. But basic literacy in HTML? Start here, or maybe here.
"First they came for the slanderers and i said nothing."
Don't bother learning a specific language, instead invest time in understanding basic principles of software structure and design. Understand object oriented principles, data structures, algorithms, and the basic concept that various blocks of the software work through interfaces. Focus on a higher level of abstraction than the specifics of a given language and he'll understand enough to say "and then this section of code needs to pass this information on to the next section of code which does this stuff with it, then passes the result to this next stage."
developers aren't interested in advisers or clients telling them how to code. they're interested in learning the requirements and domain-specific knowledge that those people have that helps them design the best product to fill their needs. the best language with which to convey these requirements isn't code. it's not photoshop (UX designers: listen) it's english. preferably spoken, maybe loudly, in a room with coffee and whiteboards, lots of both.
Unless we know what his role in this startup is, it's hard to give really good advice. I'm pretty sure that he wasn't hired for his coding skills though, so any approach that spends a lot of time learning to program probably isn't a good use of his time. The question is, exactly what knowledge does he need to do his job? Maybe reading about some concepts like the "Mythical man-month" would be more useful than trying to grok introductory computer science?
----- Question authority, but not ours. Hate the man, but we're not him.
I would advise to read some book that works like a children's book and pretends you've never seen or heard of a computer.
That it consists in a central processing unit, memory, some kind of input and output : like a keyboard and a teleprinter. It describes memory addressing and the memory address space, mentions machine code and then almost immediately jumps to pseudo-assembler examples that teach about simple program flow. By the way, the program might be loaded from a paper tape.
Next, perhaps text is encoded this way, and perhaps data is encoded that way on the paper tape.
But don't get bogged down in hardware specifics, and certainly don't bogged down by an OS, 3D graphics API, java, php etc. in such an introduction. A high level concept that may be introduced would be that of a file instead.
I know such books exist as I read an illustrated one from about 1980.
The hairball that is networking surely has to be introduced somewhere but perhaps an example of computers talking through a phone line is easier first, sending sort of telegrams.
Don't drop the ball on this, there are ways to learn the basics and it will already be something to know what is a file and what is an interpreter.
The developers don't understand the nuances and lingo of accounting.
A cursory knowledge is just enough to get you in big trouble if you try to use it.
"they're interested in learning the requirements and domain-specific knowledge"
So for some reason it is appropriate for software developers to gain domain-specific knowledge from the people around them but inappropriate for others.
The accountant has been placed in a role of management. You can be a manager without knowing the details of the tasks for the people being managed.
Unfortunately for your friend, he is being thrown into the project management with no experience in project management. That by itself is a near-certain guarantee that the project will fail. So his first action should be to hire or contract someone who knows how to manage a project
That said, assuming he's going to foolishly wing it...
There is a pretty good book on the subject, "How to cheat at IT project management". I'm sure there are many others, too. He needs to hit the books. Still not as good as having someone who knows what they are doing, but sometimes it takes a baptism by fire and reading will help.
There are many keys and guides to being a good manager. Middle managers buffer the roles between those above and those below. They don't need to know how to do the tasks above them in the org chart, they don't need to know how to do the tasks below them in the org chart. And that's okay, because their position is in between the two. The person -- in this case your "accountant friend" -- needs to know enough technical details to communicate with the people he is managing, and needs to know enough business details to manage upward, or to communicate with his bosses who expect progress and accountability.
The roles that your accountant friend will have in managing others is many faceted. They must remove roadblocks and enable the team to do their best. They must manage expectations and communicate clearly to those up the chain what they can expect, the progress that is being made, and present positive, realistic overviews of status. They must also communicate expectations downward, negotiate what success looks like, and understand the difference between tasks that can be completed and tasks that have no hope of being done on time no mater how many experts are thrown at them.
Without experience that will be extremely difficult, as experience shows what to look for to recognize when a project is in the earliest signs of drowning. If you spot the signs and symptoms a struggling project can be corrected if spotted early enough and the right actions are taken. Spotted too late, though, and the project is doomed no matter what heroic efforts you apply.
Wish your friend good luck. He'll need it. ;-)
//TODO: Think of witty sig statement
A big problem with these guys, especially if they have to evaluate a project, is that they are embarrassingly ignorant about what technology cannot do. They're liable to ask for the impossible, and think they asked for something trivial. Well, if you can solve this problem with 50 coordinates, then 100 coordinates should only take twice as long! Depends on the problem. If it is Traveling Salesperson, the compute time roughly doubles for every 1 additional coordinate, not for a doubling of the number of coordinates. A list of limits would be helpful.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
It sounds like the start-up is in need of a business analyst (BA). And this could well be the role of your accountant friend. I am an experienced business analyst with a technical background, although I know many business analysts who have little or no technical background. The role of the business analyst is to work with the stakeholders (e.g. developers, users, management, etc) to design solutions (technical or not). The business analyst creates documentation (user stories, business requirements, business logic flow diagrams, etc) by working with the stakeholders. The developers and testers then use this documentation to develop the solution. There are many business analysis books out there, one of the most popular is the BABOK (Business Analyst Body of Knowledge), see https://www.iiba.org/babok-gui.... It has many tools that a BA requires. But I don't recommend your friend becomes a full blown BA, but it may help to learn some tools and techniques described in the BABOK.
I always see the Business Analyst as an interpreter or go-between, between the business and the developers. And the Business Analyst uses tools (i.e. methods of documentation) to formally describe what the customers want.
It's not exactly clear if the accountant was hired/joined the startup to code, to do accounting, or as part of management. It really depends on what his role is to determine how he interacts with the developers and what he needs to do to interact effectively with them.
Sleep your way to a whiter smile...date a dentist!
He will not be able to get to a level where his technical expertise matches the coders. However he should (already) be able to listen and understand the business-orientated aspects of the issues put before him. It is probably worth his while becoming conversant with the basic workings, limitations and abilities of the platforms the startup is using, but any more would not be a good use of his time. You might as well require the coders talk accountancy.
For example, he should probably be aware, that no: you can't keep expanding the power of a computer indefinitely. Nor is a cloud solution always the best, cheapest and most reliable. He should probably be told that creating software is (still) basically a hit and miss exercise and that a great programmer does not make a great GUI creator or a great technical designer.
However, he should be brought up to speed on the need for designing in security and that testing, while a large cost in terms of developer time, is an even larger cost if not done. Give him a copy of The Mythical Man Month which should be right up his street.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
How to talk to Software Engineers:
1) Learn to model your business processes.
2) Learn to express what you want to do, instead of how you want to do it.
3) Make clear definitions of what you mean with certain words.
2a) Write down Use Cases, examples of what you need the software for.
These three/four points will be the biggest help for the programmers to understand what you want and what they need to do.
Then it's the quality of the programmers and how well they're managed if you get good results.
RogerWilco the Adventurous Janitor
Without knowledge of software engineering and the software world in general, there is a huge risk that the developers will in fact BS the leader 1) because he won't be able to judge the people he is hiring, and 2) he won't be able to filter their advice appropriately once he's hired them.. One hiring mistake, and any startup is finished.
He needs to very carefully hire someone with experience both in software and hiring developers, and then trust that person. It's the only way he'll have a fighting chance. I've seen the alternative happen too many times...
https://www.youtube.com/watch?...
Seriously he needs a systems annalist - someone who has a better understanding of the technology and that can take time to understand the needs of the accountant and be able to offer suggestions on how to implement on the web, knowing what limitations as well as opportunities that can be had. Many developers aren’t the best designers, unless you give someone significant insight and time to see how the big picture works you are going to get only exactly what you ask for (or at least the developer's interpretation of what you asked for.)
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
So just point him at a brief description of web development languages (such as this article). If there are bits in there that are of interest, he can pursue them.
So having to deal with this with my GF - there is a legit need. For example, a dev will say 'do you want a responsive or non-responsive website'. Devs understand what responsive stands for - the accountant is looking for a 101 type answer. When you start talking about technologies, knowing what a wireframe is, and how it applies to a time line is critical. There is geek jargon for every discipline, and knowing a bit about what phrases mean to a non-tech is a legit concern. For example, if they're proposing a Flash based site, and the target mobile users, it's not a good fit. Unless the dev is of the right mindset and patient, the customer can become really frustrated, to the point they're blindly accepting the dev's recommendations, and then there are issues when the finished product doesn't work.