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?
If he's just now looking into HTML and Javascript, he's screwed. Best to find another way to contribute.
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.
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."
I was a noob and read John Duckett's book, it was good..highly recommend ..BTW I am in no way related to the author or paid for recommending the book
Web Design with HTML, CSS, JavaScript and jQuery Set - Jon Duckett
Hi:
I'm a non technical person who needs to do some database administration. Guess what -- my degree in fine arts left me woefully unprepared for this but it's a small company where someone just had a heart attack in the street so database management of our customers/logistics AND production of our product has just landed on my desk.
Okay: we're using MySQL Light.
My first step was to prowl YouTube.
I have the password list in Excel.
I've a good enough computer user that I can make mail merges in MS Office sit up and bark, and I once delivered a baby in the back of a car in traffic. (These events are unrelated.)
When planning, if the developers indicate the duration of each task in months, get a second opinion.
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
I believe the responders are missing the point. The accountant likely does not intend to develop technical skills with the technologies used, but instead seeks a decent understanding of the scope and capabilities of the technologies which will be used.
I disagree with the "it's useless! Stay in your dept!" Crowd. Like some mentioned that's not entirely possibly in the smaller startups. More so no one suggested he be inputting codeing advice. There are a hundred reasons where at least a cursory knowledge of what each language does, would be applicable to him performing his job best. Not the least of which is writing paychecks and maybe thats what has you all so scared. Though maybe the accountant comes back after a stab at codeing with a greater reapect for his fellow employees.
As a founder I'm encouraged by anyone who asks for knowledge to better perform thier job.
To practically answer the question: Ive had several employees make the same request and have had terric experience sending them through the courses at Udemy. There is a Web dev from scratch course that takes about 40 hours. At the end of which they can at least recognize the language and have a sense of value to how hard each would be to fundamentally learn.
There is value in everyone feeling a parts. I dont need the accountant to code, but him (or her) feeling more engaged and a part of things? Thats how successful teams are built.
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.
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
> A cursory knowledge is just enough to get you in big trouble if you try to use it.
The saying is: "A little knowledge is a dangerous thing."
Paul Ford's essay "What is Code?" http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/ might be an interesting read for your friend. Ford has an equally entertaining and insightful way of describing development from various perspectives. He talks about some technical details and history but also about the culture of developers, their world view, typical misunderstandings between business people and developers and the tools and methods used for daily work.
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
Nothing wrong with getting an overview. Or use google and YouTube and just start doing a bunch of searches. Sometimes it is better to be able to jump from topic to topic.
Tell him to get a copy of the Mythical Man Month and get Scrum Master certified. That should give him a start. In reality, they need to hire someone that knows what they're doing but I assume that is off the table for financial reasons.
I realize some developers hate Agile, but we're talking about a startup and inexperienced managers. They're never going to pull off waterfall. They probably have no clue how to manage projects like this.
MidnightBSD: The BSD for Everyone
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.
Without knowing the friends role I do not see why the level of developing knowledge he's requesting is pertinent. If he is the SME then be the SME and work with the Devs to get the right features and processes. You need zero dev skills for that.
It is extremely difficult to write a book on technical matters. When you write you have the environment or context in mind but not stated specifically. For example a 5th grade teachers should say what he or she expects from the 4th grade knowledge – bullets and some explanation. That way, he or she can say, now we are going to add another layer to what you know.... When you talking, the listener can stop and ask you questions as to your assumptions. But when you read a text you get only that information and not the assumptions and background information to understand the current topic. For example, in a typical programming exercise, the instructor will say, write a program in language X for the following problem. Given the cost, sales and find the profit for company Y. Now assumptions are: there is no tax on items sold or there is a sales tax @8.25%, the value of the sales figure can be up to 6 digits and may include two decimals, the input is used via assignment to a variable as static data, and so on. Do we ever see such broad explicit assumptions ever given. So, different students will come with different algorithms and will be punished which did not match the instructor's ' assumptions. I have rewritten over 40 times one book. I leave it and rework on it after a month or two. At that time, I can see more missing points. Reviewers need to have extensive knowledge to review and suggest actual changes and not cosmetic ones. Since they are paid about $150-200, they don't want to share their knowledge acquired over the period of 30 years, thus the book never makes any sales volume. 99% of books fail in the market. The way to learn is to go and audit courses in the evening starting from CS 101 and so on. It takes time, but one can relate it to their field of specialization providing examples from their domain. There is no magic bullet. Reviewers do not talk to authors and so on. Most publishers do not want innovative ways of creating books. They have a template. So, while there is great need for simple straight forward book, creating is another story.