Development team collaboration via Google Wave - workflow

I hope I am not repeating any previously asked question.
Anyway, so Google Wave is nice and shiny and sounds like a lot of folks(at least at Google I/O :) used it in a useful for work(!) way. I've been beta-testing Google Wave for sometime now, but can't quite grasp how to improve our workflow using it. We have a medium size team of developers that are spread out around US and Europe and naturally most of communication is happening via IM and Skype and email of course. So what are specific things that could be offloaded to Google Wave to improve collaboration by leaps and bounds(meaning not just replacing IM with nicer IM)?

I do not think Google Wave will ever replace "communication" tools, so you won't be able to offload much in terms of IM/Skype/email (and imho the ping feature in Google wave kinda sucks).
What's it's great for is collaboratively and concurrently editing content in the chaotic initial phase, be it documentation, emails, press releases or whatever. Then once documents are stable I find it's easier to manage them as Google docs, which can still be versioned but in a more mature environment.
Also, I think Wave would be great for concurrent programming, and I am hoping someone will put together a code-completion/syntax-highlighting extension for concurrent programming (would do it myself if I had time). it would change "pair programming forever", and at least that way the other wouldn't just sit there occasionally trying to grab your keyboard!

Notifications.
Unload the daily/hourly/whatever notifications about people pushing git updates, how many errors were found, etc onto Wave for people to monitor and respond to instead of making them filter all sorts of email notifications.

Hey, youll be happy to know Devunity.com is finishing up a Google Wave/App Engine + Eclipse Perspective team collaboration. it will let you post your code automatically into a created wave and syntax highlight it side by side with your current code.
be sure to check for updates http://beta.devunity.com.
coming soon! :)

We're working on a desktop app here that leverages email communication to help teams succeed with projects. The app represents email communication in channels, as chats, and adds project related info so that all ownerships and requests could be tracked.
It is in "beta" but check it out, may be there is a fit for your team: http://yoxel.com/personal-commitment-manager.html

Related

Send transcribed, spoken text from smart speakers/displays to server after Conversational Action shutdown?

If I need to explain how insanely important and useful this functionality is, please let me know. However, I suspect this is obvious to everyone except Google.
Please, please tell me there is another way to accomplish this.
I need to do all speech parsing, processing, and responses on my own. And from a smart speaker/display. Conversational Actions allowed for this. As far as I have been able to tell, there is no alternative way to accomplish this. I'm shocked and severely disappointed. You're literally crippling your smart speakers and displays. I have one in every room right now and will be selling them after the shutdown unless something changes. I sure hope you reverse course on this.
We noted your ask here and will continue to monitor for other similar requests involving the Conversational Actions in our support channels. We do collect these requests, share with the teams involved in the planning process, and try to get them in our feature development timeline.
Unfortunately there are no features readily available to replace the capability you mentioned above, but our teams are constantly working towards providing a better Google Smart Home Ecosystem. When we have any updates on these features, we will update our public documentation.

Real time web page

I want to build simple web based app, where users, for example, could push the spacebar button, and then do something further, like answer a question, and while other users at the same time only sees that this question is not available any more for answer. When user submits answer, everyone see it.
All right, here is an example. I have seen TV shows, where four players have one button, if one or two of them know answer, they hit a button, and one lamp turns on and the first is allowed to answer, while other keeps their mouths shut. I want to build the same idea, but in the web.
But problem is that, I don't know where to start, what keywords I should search for help on google and so on. I see, that it might work on HTML5, maybe JavaScript and so on.
I have idea using Ajax, but request it every second to get latest actions made seems rubbish. Also I found one service called Pusher, but it has limited users in one time, which doesn't fit my needs.
I need just ideas. Thanks.
Before you read the rest, a disclaimer: I work for Realtime.co but I do believe I can help here so I'm not trying to "pitch a sale".
You can check out Realtime (www.realtime.co). It's basically a set of tools for developers to use real time technologies on their projects. It uses websockets but does fallback to whatever the user's browser supports (such as long polling, for example).
Behind Realtime you have a one-to-one/one-to-many/many-to-many messaging system that will transport your messages to and from your users.
There's also a plus which is the fact that the Realtime framework is actually cross-platform. This means that you can even have your web users communicate with iPhone users, Android, users, Windows Phone, desktop applications, server applications, etc..
You can learn about the JavaScript API here: http://docs.xrtml.org/getting_started/hello_message.html#javascript.
You only need to register at Realtime.co as a developer and start using the free license.
I really hope that helps.
Okey, I think I will go with node.js.
Writing all this previous post, made me think in right way :)

crm/project management/helpdesk [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
My company has been evaluating different crm/project management solutions, hoping to find a solution to our ever increasing workload. I've found some good crm solutions, some good PM solutions, and some good helpdesks, but nothing that integrates well. It seems all the "package deals" that includes all options generally do things rather poorly.
I'm involved in some client sales, a lot of project management, and quite a lot of helpdesk queries. To get an overview of my day I need to keep track of tasks in 3 completely different systems + handle email and calendar. That's tasks/meetings scattered over 5 different places, and I don't feel like I have a good overview of my day. I use a lot of time on just pushing tasks around to make sure I dont forget anything.
What kind of solutions do people use to avoid this? Is there a good "all in one" solution out there that I've missed. Or do people use tools that integrate well with eachother? Or maybe it's my workflow that's the issue.
My team and I have been in the similar situation. We have tested Trello, Asana and many more. In my case I am working with multiple projects in parallel, where every project has different groups of people involved. And, after all the searching, Wrike appeared to be the best option.
I like it as it has a simple and clear dashboard view (with my current and overdue tasks, tasks assigned to others, etc.), Activity Stream and Gantt chart that solved my workload management issue. It also came in very handy for managing our CRM workflow, keeping all our leads and projects in one app. Well, and e-mail integration is my personal favorite (basically, it converts my e-mails into tasks, I just need to add Wrike into the e-mail’s CC and it will be transferred into the app). This, Outlook add-in and couple of more integrations helped us minimize iterations and avoid losing data. Wrike has actually become the “all-in-one” tool we’ve been searching for.
Hope, you’ll find it helpful too. Tell me how it went afterwards.
Microsoft Dynamics Crm 2011 should be able to handle all of this.
It comes with a stack of core functionality which you can then customise and extend to meet your specific requirements. It also have inbuilt integration with Outlook to handle your emails, calendars and tasks.
Client Sales: Mscrm comes with a Sales pipeline, get more information from here and make sure to watch the demo to see how it integrates with Outlook.
Helpdesk: Mscrm comes with a generic 'Customer Service' module, which you can use for helpdesk and support. Info here and demo here.
Project Management: Mscrm does'nt really have anything inbuilt for this, you would need to extend Mscrm for this, that said, Mscrm allows easy customisations (that's not to say it will do everything you want, that's not to say you wont need custom code at times and that's not say its all easy). There's some info here.
Right so that all said, as a little disclaimer: I don't work for Microsoft and I don't get anything out of you buying Mscrm (unless you happen to use my company as an IT consultancy). I also don't know how Mscrm compares to other Crm's out in the market place. However I do know that Mscrm is a very able system.
Hope this helps you to come to an informed decision.
Generally speaking:
Clients don't care about project management other than "where is my stuff?"
Clients will generally pester you through email
Something out-of-the-box is not going to 100% fit what you need (tweaking required)
Unless everything is in ONE TOOL you have no chance of reducing the data silos and the constant "jumping around" that kills productivity
IMHO, you need three projects:
Sales/CRM 'lite' = provides a simple sales pipeline/opportunity management.
Help-desk = incoming email automatically turned in tickets from customers, etc.
Tracking = for managing tasks with workflow so stuff gets done internally.
Simply link items between those three projects so people get a "connected" view of the business. Don't get hung up on Gantt charts but instead focus on managing simple lists of tasks, tickets and the like. That is what needs managing.
You also need an Outlook connector so that:
You can one-click turn a client email into a ticket inside the Help-desk project
You can see in Outlook what is assigned to you
You can see in an Outlook Calendar when items start/finish
You will probably need to find something that you can implement and tune in days not weeks.
Disclaimer: we use the EXACT same model have depicted above: Sales, Help-desk, Tracking. We build a product called Gemini in an attempt to solve this problem hence bias/opinion is inevitable.
Everyone has their favorite PM / Tracker software, and their least favorite, but this one (JIRA) worked well for a very complex and fast-paced dev shop I used to work for:
https://www.atlassian.com/software/jira/whats-new
Things to note
It's primarily a bug tracker, so workflows and issue filtering are
paramount
It can be used as a helpdesk service, through email-to-ticket feature, but requires some (non-coding) fenagling
Medium-sized developer community with many helpful plugins
Can get pricey, cheaper than most CRM solutions though
Lots of reporting features and plugins, including Gantt Agile/SCRUM/waterfall OOTB
setups
Atlassian makes it, and while their documentation and customer service aren't the best around, they're sufficient enough to get the job done when debugging, and it's a big enough company that they can be considered stable (for CYA protection when things go bad).
I personally wrangled a JIRA instance into being a PM system for 50+ projects (internal and client-facing), with 300+ users in 5-15 depts at any given time, with integrated version control features (tickets could be affected via git commit messages), and we also used it to handle inter-office requests (from printer setups to domain purchases).
In some ways we stretched it a little too far (workflows became incredible complex when too many departments had a say in the process), but in some ways we barely scratched the surface of what it could do (it's reporting features are extremely robust).
It's not always the best idea to make one tool do every job, but when push came to shove, JIRA wasn't the worst choice we could have made, and it ended up looking great to front-end/client users. It's probably a little much for a small group to use, but can handle anything from small to extra-large (1000+ users) org's.
[EDIT: forgot to mention, calendar integration (with iCal especially) was not that great when I used it, many events were either in-JIRA or out-of-JIRA (in iCal, gCal, etc) but it may have been improved in the last two years]
Consider RT. I'm a fan, and expect no material gain from this recommendation. Indeed, since the question is OT for SO I expect to lose rep.

How to write a spec for a website

As I'm starting to develop for the web, I'm noticing that having a document between the client and myself that clearly lays out what they want would be very helpful for both parties. After reading some of Joel's advice, doing anything without a spec is a headache, unless of course your billing hourly ;)
In those that have had experience,
what is a good way to extract all
the information possible from the
client about what they want their
website to do and how it looks? Good
ways to avoid feature creep?
What web specific requirements
should I be aware of? (graphic
design perhaps)
What do you use to write your specs in?
Any thing else one should know?
Thanks!
Ps: to "StackOverflow Purists" , if my question sucks, i'm open to feed back on how to improve it rather than votes down and "your question sucks" comments
Depends on the goal of the web-site. If it is a site to market a new product being released by the client, it is easier to narrow down the spec, if it's a general site, then it's a lot of back and forth.
Outline the following:
What is the goal of the site / re-design.
What is the expected raise in customer base?
What is the customer retainment goal?
What is the target demographic?
Outline from the start all the interactive elements - flash / movies / games.
Outline the IA, sit down with the client and outline all the sections they want. Think up of how to organize it and bring it back to them.
Get all changes in writing.
Do all spec preparation before starting development to avoid last minute changes.
Some general pointers
Be polite, but don't be too easy-going. If the client is asking for something impossible, let them know that in a polite way. Don't say YOU can't do it, say it is not possible to accomplish that in the allotted time and budget.
Avoid making comparisons between your ideas and big name company websites. Don't say your search function will be like Google, because you set a certain kind of standard for your program that the user is used to.
Follow standards in whatever area of work you are. This will make sure that the code is not only easy to maintain later but also avoid the chances of bugs.
Stress accessibility to yourself and the client, it is a big a thing.
More stuff:
Do not be afraid to voice your opinion. Of course, the client has the money and the decision at hand whether to work with you - so be polite. But don't be a push-over, you have been in the industry and you know how it works, so let them know what will work and what won't.
If the client stumbles on your technical explanations, don't assume they are stupid, they are just in another industry.
Steer the client away from cliches and buzz words. Avoid throwing words like 'ajax' and 'web 2.0' around, unless you have the exact functionality in mind.
Make sure to plan everything before you start work as I have said above. If the site is interactive, you have to make sure everything meshes together. When the site is thought up piece by piece, trust me it is noticeable.
One piece of advice that I've seen in many software design situations (not just web site design) relates to user expectations. Some people manage them well by giving the user something to see, while making sure that the user doesn't believe that the thing they're seeing can actually work.
Paper prototyping can help a lot for this type of situation: http://en.wikipedia.org/wiki/Paper_prototyping
I'm with the paper prototyping, but use iplotz.com for it, which is working out fine so far from us.
It makes you think about how the application should work in more detail, and thus makes it less likely to miss out on certain things you need to build, and it makes it much easier to explain to the client what you are thinking of.
You can also ask the client to use iplotz to explain the demands to you, or cooperate in it.
I also found looking for client questionnaires on google a good idea to help generate some more ideas:
Google: web client questionnaire,
There are dozens of pdfs and other forms to learn from

Personal Website Construction [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm currently trying to build a personal website to create a presence on the web for myself. My plan is to include content such as my resume, any projects that I have done on my own and links to open source projects that I have contributed to, and so on. However, I'm not sure which approach would be better from a perspective of "advertising" myself, since that what this site does, especially since I am a software developer.
Should I use an out-of-the-box system and extend it as needed, with available modules and custom modules where needed or should I custom build a site and all of its features as I need them? Does a custom site look better in the eyes of a potential employer who might visit my site?
I've toyed with this idea in the past but I don't think it's really a good idea for a number of reasons. Firstly, there are a number of places that can take care of most of this without you needing to do the work or maintenance. Just signing up for a linkedIn account for example will allow you to get most of your needs catered for in this regard. You can create your resume there and bio information etc and make it publicly viewable. The other issue with your "own site" is that if you don't update it often, the information gets stale, and worse yet, people have no reason to go back because "nothing has changed" - and that's not much of an advert for you is it?
Now that I've said all that, I'll make another recommendation. Why not start a blog instead?! If you've got decent experience, why not share that. I'd be willing to bet that this will be the best advert for your skills because:
It's always updated (if you post often)
It's not like you're looking for work doing it - but your (future) employer, or their developers will check it out anyway to get a better insight into your character.
Putting something on your resume doesn't mean you can do it. I'm not saying that you'd lie about your skills :-), but there's no argument about your ability when you're writing articles about the stuff, getting comments and feedback, and better yet, learning EVEN MORE about your passions.
Best of all - you can run your blog from your chosen domain and also point to your resume that is stored in linkedIn. Just an idea...
That's my two pennys worth on that - hope it helps you come to a decision!
If you are a web-specific developer I would go with a custom site, but if you focus more on desktop applications or backend technologies, I think an out of the box system would be fine.
A nice looking, default, off the shelf, complete website could be more impressive than a poorly done, broken, tacked together, incomplete website. Perhaps start with something "off the shelf" but nice looking, keep it simple, professional, and then eventually add more custom functionality, style and content. Potential employers may like to see that you are capable of reusing tried and trued solutions instead of trying to create everything from scratch without a good reason. Or you could spend time combining great components into something even better than the sum of the parts, as Jeff Atwood talks about extensively in the Stack Overflow podcasts. Stack Overflow is a good example of writing lots of custom code, but combining that with some of the best Web 2.0 technologies/widgets/etc. into something coherent, instead of trying to prove that they could implement x/y/z from scratch.
(On the other hand, it's really fun to build your own login system, blog, or photo gallery. If you really enjoy it and you want to learn a lot or create something new and different, then go for it!)
Here's what I did (or am currently doing). First, use an out of the box solution to begin with. In my case, I used BlogEngine.NET, which was open source and easy to set up. This allows me to put content on my site as fast as possible. Now, I can continue to use BlogEngine.NET, and skin my site to give it more personality or I can start rolling out my own solution. However, I haven't found a requirement yet that would give me a reason to waste time building my own solution. Odds are you probably won't either.
I don't think it matters if your site is blatantly using a framework or other "generic" solution. The real question is "is it done well, with taste?" If you are using an out of the box solution, you should take the time and pay attention to details when customizing it as if you were creating it from scratch.
Alternatively, if you're looking for a great learning experience and something to spend a lot of your free time on -- write it yourself. But know that you are re-inventing the wheel, and embrace it.
edit
A recent post from 37Signals, Gearheads don't get it, really sums up a good point about not focusing on the technical details, but "content and community".
Reinventing the wheel is not such a great idea when you are building a personal site. Building your own CMS is fun, and to some degree is something to brag about, but not so much features you won't have the time to build and all the security holes that you won't have the time to fix.
It's much better to pick a good, well-established engine, build a custom theme, and contribute a module or two to it: you'll be writing code that you can show off as a code sample and at the same time creating something useful.
Knowing your way around an open source CMS is a good skill in just about any job: when your boss says - hey, we need a three pager site for client/product/person X in 10 hours, you can say - no problem.
For a simpler portfolio site, Wordpress might meet your needs.
You can set up 'static' Wordpress pages for contact information, various portfolios, a resume, etc. This would also give you a blog if you want to do this.
Wordpress does give you the flexibility to "hide" the blogging part of it and use it basically as a simpler CMS. For example, your root URL of example.com could point to a WP static page, while example.com/blog would be the actual blog pages.
If you self-host Wordpress on your own domain (which I really would recommend instead of going through wordpress.com), it should be trivial to set up a few subdomains for extra content. For example, downloads.example.com could host the actual downloads for projects you've developed linked from the Wordpress portfolio pages. Similarly, if you're doing a lot of web work, a subdomain like lab.example.com or samples.example.com could then host various static (or dynamic) pages where you show off sandboxed pages that are not under the control of Wordpress.
Keep in mind though that you'll want to make your page look good. A sloppy looking site can scare away potential clients, even if you are not looking to do any web work for them.
Putting your resume up online somewhere helps, I get a lot of recruitment emails from people who happened on my resume via googling. However I agree with ColinYounger in that you'll probably get more bang for your buck from LinkedIn.
My advice is this - if you want to take the time out to LEARN a CMS or something, to better yourself, then why not make your first project in one be your homepage?
Maybe enlighten us as to the "features" you want to have on a personal homepage? Outside of a link to an HTML resume and perhaps some links to things you like, not sure exactly what the features of a homepage would be...
It really depends on:
a) what services you provide
b) what your skill level is when it comes to web design/development
If you are primarily a web applications developer then running an off the shelf product or using blatantly using DreamWeaver to develop it may not be so smart -- or maybe your clients aren't adept enough to notice?
Likewise if you're primarily a web designer then it is probably a good idea to design your own website.
Just as a side question and following up on my 'ego trip' comment: why would you take anything on the web to be 'true'? IME printed submissions, while not necessarily accurate, tend to be slightly less, erm... exaggerated than web submissions.
Do those responding\viewing ever hire? I wouldn't google for a candidate. I might ego surf for a respondent, but would ignore CVs.
Rounding back to the OP, I would suggest that you need to SHOW what you're good at - participate in Open Source projects and POST on their forums, link to projects you can post details of and generally try to show what a Good Employee you could be. Just telling me that you're good at [insert latest trend here] means diddly.
I have come to see that the best way to advertise yourself is to put quality content out there. If you write about the technology that you have experience in, maybe create a few tutorials, and if you do all that often enough, that shows some authority in your chosen field of work.
This alone is one of the best advertisements. However, you also want to show passion. And online, that can be shown through how meticulously your site is done (it doesn't have to be a super great UI or something), but it should be neat, clean, and professional. It doesn't matter if its out of the box, or custom designed.
Either way, you will have to work hard to make it look good.