Необходимо найти программиста, у которого есть опыт при записи пользовательских приложений для нетехнических людей. У этого человека должен также быть технический опыт управления проектами. Он (или она) должен создать, с Вашей помощью, документом требований и функциональной спецификацией, на которой Вы закончите, прежде чем начинается фактическая разработка. Человек, который действительно хорош в этом, имеет большой опыт и не будет дешевым, но контакт с нетехническими клиентами является столь же трудным для большого количества разработчиков, как контакт с разработчиками для Вас.
, Даже если Вы заканчиваете на нем, который не означает, вещи не могут быть изменены позже. Если Вы захотите изменения, Вы обновите свои документы, и Ваш разработчик даст Вам новую оценку стоимости и время.
Теперь для проблемы курицы-или-яйца. Если Вы не являетесь техническими, как Вы находите хорошего разработчика программного обеспечения? Спросите людей, которых Вы знаете для рекомендаций. Если необходимо взять интервью у кого-то, попросите, чтобы они принесли демонстрационный документ требований и функциональную спецификацию. Посетите веб-сайты, которые они разработали. Безусловно, это устранит много полностью определенных программистов, поскольку многие не могут совместно использовать этот тип материала из-за проблем конфиденциальности. Но Вы в состоянии, где необходимо знать, что они могут понять бизнес-потребности и создать продукт для решения тех потребностей.
, Если Вы не удовлетворены документом требований и функциональной спецификацией, не продолжайте того человека. Вещи обязаны ухудшиться, не лучше. Вы закончите тем, что бросили хорошие деньги после плохо.
действительно трудно связаться с большим количеством разработчиков. Как нахождение доктора, найдите того, которым Вы довольны, кто слушает Вас и Ваши проблемы, и может повторить те проблемы в его собственных словах.
Удачи!
do.call on lists is very elegant, and fast. In fact do.call(rbind, my.list) once saved my ass when I needed to combine a huge list. It was by far the fastest solution.
To solve your problem, maybe something like:
do.call(rbind, lapply(foo, unlist))
> result.2 <- do.call(rbind, lapply(foo, unlist))
> result.2
a b
[1,] 1 2
[2,] 11 22
[3,] 111 222
> result.2[, 'a']
[1] 1 11 111
>
One possible solution is as follows (but am interested in alternatives):
new.result <- matrix(unlist(result), ncol=ncol(result),
dimnames=list(NULL, colnames(result)))