Wczoraj został uficjalnie uruchomiony portal med.aplikacja.info. Pozwala on zintegrować automatyczną rejestrację pacjentów z istniejącą stroną WWW przychodni. Tożsamość pacjentów jest weryfikowana za pomocą SMS, więc kontakt w postaci numeru telefonu komórkowego jest wymagany.
Zarejestrowany pacjent ma możliwość samodzielnej rezerwacji/anulowania wizyt a przychodnia zyskuje wygodną formę komunikacji z pacjentem (np. automatyczne przypominanie o umówionym terminie wizyty dzień wcześniej poprzez SMS).
Zdaję sobie sprawę, że konkuruję z takim potentatami jak Orange, ale uważam, że jestem w stanie dać korzystniejsze warunki i lepiej dopracowany system. Czas pokaże ...
Ponad rok temu miałem okazję przeprowadzić rutynową operacją jaką jest odnowienie polisy OC na samochód. Pomyślałem sobie, że sprawę załatwię w ciągu kilkunastu minut i pełen optymizmu wybrałem się do przedstawiciela PTU (Polskiego Towarzystwa Ubezpieczeń).
Jakież było moje zdziwienie kiedy na miejscu otrzymałem do przepisaniastertę papierowych formularzy. Jako pomoc otrzymałem formularze wypełnione przeze mnie przed rokiem! Poczułem się jakbym żył w średniowieczu. Nawet nie próbowałem pytać dlaczego tak "maltretują" swoich klientów.
Nauczony przykrym doświadczeniem w tym roku zmieniłem ubezpieczyciela. Rejestracja przez internet, żadnego ręcznego przepisywania papierków. PTU w XXI wieku dziękujemy.
Yesterday SMS notifications were added to site-uptime.net. You can specify cell phone number and get information on network problems directly to your cell phone. I hope this option will be useful for S-U customers (existing and new).
site-uptime.net, network monitoring service was extended today by HTTP method selection option. You can choose to use HEAD (smaller network overhead) or GET (maximum 10 kB is downloaded in one measurement). Get option allow to download and analyse HTML content for specific keywords (required, like static text on webpage or undesirable, like IFRAME viruses).
Miło mi ogłosić, że site-uptime.net (usługa monitorowania serwisów WWW) obsługuje od dziś płatności przez DotPay, co pozwala korzystać z wielu kanałów płatności dostępnych w Polsce takich jak mTransfer czy MultiTransfer.
Obsługa PayPal oczywiście nadal będzie dostępna równolegle z DotPay.
In Agile world there are no immutable constraints. Your requirements may change, libraries used may be replaced during development, application may outgrown your current server setup etc. I'll show you how to make web application migration between servers as fast as possible: with minimum downtime and data consistency preserved (techniques also apply to hosting providers environment).
Known Problems
You may say: moving a site? No problem: just copy your files, database and voila! Not so fast. There are many quirks you may want to handle properly:
DNS propagation time
Database consistency
Preserve logs
Preserve external system configuration
Environment change impact integration tests
DNS Propagation Time
DNS is a distributed database handed by servers along the globe. In order to be efficient some kind of caching had to be introduced. For every DNS record you can define so called "TTL": "Time To Leave" (time in seconds when the information can be cached safely). Typical it's half hour. I suggest you to make TTL shorter (5 minutes for example) during transition.
Then create new site under new temporary address and validate if it's working properly. I suggest to configure temporary.address.com in your DNS and redirect it to your new location. This way you can access new site and validate if all is working properly under new address.
Setup redirection on old site. This redirection will work during DNS update time. Here's example that can be used for Apache (place it in .htaccess if AllowOverride is enabled):
Redirect 301 / http://temporary.address.com
Here's the poor-mans' version that use HTML HTTP-EQUIV header (use it if you don't have .htaccess enabled on your account):
This will redirect all visitors that open your site in transition period. After it ends add redirect in opposite way: from temporary address to main application address.
Database Consistency
The worst thing you can do is to leave two public versions of your application and leave them "open" for customers. You will end up with two separate databases modifications that will result in data loss (it's practically impossible to merge updates from two databases). I suggest the following procedure:
Setup new site under temporary address (see previous section)
Prepare fully automated script that on new site (easy with SSH + RSA keys + Bash):
block both application instances (service message)
download database dump from old site
install database dump on new site
unblock old site and redirect to temporary adress
unblock new site
Test the script (only 2, 3 steps)
Run the script
Reconfigure DNS-es
Above procedure ensures:
no concurrent DB state modifications (only one public version available)
no updates lost (freeze during move)
minimum downtime (process is automated)
Preserve Logs
Application logs hold information on application history. They are not critical to application but you may want to move them with application in order to leave historic information for analysis.
Logs could be transferred in the same step as application database. Then new location will just append to transferred logs and all history is preserved.
Preserve External System Configuration
To be checked/migrated (listed in random order).
Webserver configuration (i.e. virtuals setup)
Crontab setup that supports the application
Mail Agent configuration (specific to application being moved)
Environment Change Impact Integration Tests
Your new environment may differ in environment setup to old one. That's why temporary DNS address is very useful here. You can make integration test on new location before migration to be sure no environment changes will break application. The following environment attributes need to be taken into account:
OS architecture (32 / 64 bit)
OS (i.e. Debian, Centos)
Webserver software used (Apache / Lighttpd / Ngnix)
Database versions
Application server (JBoss, Weblogic or just plain Tomcat?)
med.aplikacja.info to platforma pozwalająca zintegrować z istniejącą stroną przychodni możliwość rezerwacji wizyt online.
Jeden z moich klientów potrzebował udostępnić swoim pacjentom rezerwacje zmiennej długości (zależnej od rodzaju usługi). Zastosował on tymczasowe (przyznaję, sprytne) rozwiązanie polegające na rezerwacji dwóch kolejnych terminów dla dłuższej wizyty. Było ono jednak dość niewygodne dla pacjenta.
Dziś system został rozszerzony o możliwość definiowania usług (wraz z czasem), dzięki czemu wybór specjalisty i usługi jest wygodny. Zapraszam do zapoznania się z aktualną wersją systemu.
site-uptime.net is a web monitoring service that continuosly measures response time of a server.
Random network instability visible during last days forced me to make a fast migration S1 to new server. Linode slice deployed in UK was choosen as default platform for S1 monitoring station. Their networks and servers proved to be very stable in past few years.
I hope new infrastructure will make better measurements and lower false notifications ratio.
System rezerwacji med.aplikacja.info pozwala rezerwować wizyty pacjentów u specjalistów poprzez Internet. Dotychczas w pierwszym kroku pacjent wybierał specjalistę by móc zarezerwować wizytę. Aby ułatwić wybór w przypadku wielu specjalistów system rezerwacji został rozszerzony o możliwość wyboru usług.
Usługi mogą mieć różny czas trwania (i taki czas będzie rezerwowany w kalendarzu specjalisty)
Można przypisać usługi do różnych specjalistów
Uruchomienie mechanizmu jest bardzo proste: po pierwsze definiujemy usługi i przypisujemy je do wybranych lekarzy (zakładka "Usługi").
Od tego momentu pacjent w pierwszej kolejności wskazuje usługę którą jest zainteresowany:
Następnie wybiera specjalistę realizującego szukaną usługę (widzi opis i najbliższy dostępny termin):
Dalej procedura rejestracji postępuje jak dotychczas (z SMS-owym hasłem).
Dharmesh Shah, Hubspot (and author of the popular On Startups blog) presents "Inbound Marketing" term, mostly how to attract customers to your product using SEO (Search Engine Optimisation) techniques.
He believes "Outbound Maketing" (traditional channels like TV, phones, ...) that gives results in ~1% cases will be replaced by "Inbound Marketing" in future (allow the people to find your product). Dharmesh shows three main channels of "Inbound Marketing":
Kiedy człowiek dorasta to zwykle zakłada rodzinę i zaciąga kredyt na mieszkanie żeby mieć gdzie tę rodzinę pomieścić. Konieczność terminowego spłacania swoich zobowiązań powoduje, że warto kontrolować poziom wydatków względem przychodów na koncie w banku by uniknąć przykrych niespodzianek (patrz: przypadek Grecji). Narzędzia raportujące wbudowane w system transakcyjny mBanku ułatwiają taką operację. Przynajmniej ułatwiały - do czasu ostatniej aktualizacji oprogramowania.
Przelewy wychodzące zwykle związane są z kosztami stałymi które ciężko jest zoptymalizować (kredyt, czynsz, media). Kiedy trzeba kontrolować koszty warto więc spojrzeć na historię operacji na karcie. Możemy (czasami z zaskoczeniem) zobaczyć ile wydaliśmy np. w ciągu ostatniego miesiąca. Ustawiamy więc filtrowanie na 1 miesiąc:
i oglądamy wyniki:
Wyniki wyglądają sensownie, więc może teraz sprawdzić historię za ostatnie dwa miesiące?
W podsumowaniu operacji czeka nas niespodzianka:
Dane wyglądają nieco, hm, nierealistycznie. Analizując szczegółową listę operacji widać wyraźnie, że podsumowanie nie odzwierciedla sumy z listy. Obroty na rachunku są źle sumowane.
Kiedy ten błąd jest widoczny? Muszą być spełnione dwa warunki:
lista operacji na koncie nie mieści się na jednej stronie wyników i aktywuje się stronicowanie wyników
dla danego konta jest aktywny kredyt hipoteczny z mechanizmem bilansującym (tzw. mPlan)
W przypadku aktywowania się stronicowania podsumowanie gubi informację o wybranym rodzaju operacji.
Dobry proces testowania powinien uwzględnić przypadki szczególne (aktywny mPlan + stronicowana lista wyników). Z tego co widzę taką kombinację pominięto przy wprowadzaniu nowej wersji oprogramowania w mBanku. Problem zgłosiłem, zobaczymy ile czasu Bank potrzebuje na reakcję w przypadku takiego (dość prostego) błędu. Mam nadzieję, że procedury wpływające bezpośrednio na stan konta nie mają tego typu defektów ;-)
Niedawno miałem okazję przekonać się jak ukształtowanie interfejsu użytkownika może wpływać na sposób w jaki aplikacja będzie odbierana przez użytkowników. W skrajnym przypadku może prowadzić do odrzucenia systemu.
Czekając w kolejce do bankomatu zauważyłem, że dwie osoby przede mną odchodzą nie pobierając gotówki. Gdyby to była tylko jedna osoba pomyślałbym, że chodzi o brak środków na koncie. Gdy druga osoba odebrała kartę obstawiałem problem z bankomatem. Postanowiłem sprawdzić co jest przyczyną problemów.
Na pierwszym ekranie widocznym po włożeniu karty pojawiło się pytanie:
Czy potrzebujesz gotówki?
Poniżej znajdowały się dwa przyciski: TAK i NIE. Pytanie wydało mi się dziwne jak na bankomat sieci Euronet.
Kiedy użytkownik wybierał "TAK" (przecież po gotówkę przyszedł do bankomatu) kierowany był na stronę ze szczegółami reklamy kredytów gotówkowych i "głupiał". Użytkownik oczekiwał przecież pojawienia się menu bankomatu, dostawał coś mylącego. Rezygnował więc z transakcji ("bankomat zepsuty") i odchodził.
Aby móc dokończyć transakcję należało wybrać "NIE" - dalej procedura przebiegała już standardowo.
Tak oto z mojego małego doświadczenia można wnioskować, że prosty błąd popełniony na etapie projektowania interfejsu użytkownika potrafi zniechęcić większość potencjalnych użytkowników systemu. Nie był to błąd działania systemu (nie poleciał żaden wyjątek, salda zachowały poprawną wartość), ale operacja do której bankomat był stworzony nie doszła do skutku.
Stało się tak, ponieważ przy integracji komponentów (nowa wersja reklamy w istniejącym UI bankomatu) nie sprawdzono jak całość zostanie odebrana przez klientów. Nie dokonano "testów integracyjnych na poziomie interfejsów białkowych". Z moich doświadczeń wynika, że styk człowiek-komputer jest trudniejszy do oprogramowania niż interfejsy pomiędzy komponentami oprogramowania.
Jakiś czas temu rozglądałem się po możliwościach najmu powierzchni biurowej w Warszawie i nieco odstraszyły mnie koszty związane z biurem w Warszawie. Wiedząc ile jeden z moich klientów płaci za wynajem biura zacząłem się zastanawiać, czy stać mnie na taki "luksus".
Z pomocą, podobnie jak w innych dziedzinach (wirtualizacja, outsorcing) przychodzi efekt skali. Jeśli możesz pogodzić się ze współdzieleniem zasobu z innymi użytkownikami jego cena potrafi spaść o rząd wielkości do wartości już akceptowalnej dla niedużej firmy.
Najtańszą opcją dostępu do powierzchni biurowej (poza pracą w swoim domu) jest tzw. "coworking". Nie wiem czy istnieje dobre polskie określenie na ten termin, ale wydaje mi się, że "współdzielona przestrzeń biurowa" mogła by dobrze oddawać sens tego typu usług (jak zwykle język angielski pokazuje swoją przewagę jeśli chodzi o zwięzłość).
Poniżej zamieszczam przegląd wybranych opcji w Warszawie (Centrum i okolice) pod kątem trzech typowych profili użytkowych:
współdzielone biuro dostępne tylko kilka dni w miesiącu
współdzielone biuro dostępne bez ograniczeń
mały kilkuosobowy startup potrzebujący wydzielonej przestrzeni
Noa Cowork: najtańsza opcja dla 6 dni / miesiąc wynosi 250 PLN + VAT. Nieograniczony dostęp do przestrzeni współdzielonej to 550 PLN + VAT, natomiast biuro dla dwóch osób to koszt 1400 PLN + VAT. Dobrze znana lokalizacja: okolice gmachu głównego Politechniki Warszawskiej :-)
CoPoint: 8 dni / miesiąc to 199 PLN + VAT, nieograniczony dostęp kosztuje 450 PLN + VAT. Na 4-osobowe biuro należy wyłożyć 1750 PLN + VAT miesięcznie. Lokalizacja: nieco dalej od Centrum, w okolicy metra Służew.
GoldPlace jest natomiast zlokalizowane w najbardziej chyba prestiżowej lokalizacji (Atrium Centrum przy Jana Pawła). Nielimitowany dostęp to koszt 650 PLN + VAT (na stronie jest promocja 500 PLN, ale nie jest jasne na jakich regułach oferta została doprecyzowana, jest to cena standardowa). Za opcję "minibiuro" (3-4 osoby) zapłacimy 2500 PLN + VAT.
W Biurco za 8 dni / miesiąc zapłacimy 200 PLN + VAT. Dostęp nielimitowany to 500 PLN + VAT, a dwuosobowe zamknięte biuro kosztuje 900 PLN + VAT. Lokalizacja: niedaleko skrzyżowania Jana Pawła i Solidarności.
Czy przegapiłem jeszcze jakąś ciekawą ofertę w Warszawie z niższej półki cenowej (poniżej 2 tys. zł/mc)?
We, Aplikacja.info are delivering online booking services for Polish customers using med.aplikacja.info service since 2008. The service is mainly targeted at small/medium medical businesses and allows to integrate seamlessly with existing webpage.
I was asked recently about integration with hosted Microsoft Exchange calendar. Customer (also medical business) is using currently iPhone to record visits and would like to use existing contacts and calendar events and allow his customers to book online.
Our current persistence mechanism is local SQL database. In order to integrate with external contact / event source we have the following options:
keep local SQL storage and make periodical import/export of events/contacts to Microsoft Exchange
replace local SQL storage with remote-only storage thus import/export will not be needed
First option drawback is possible de-synchronisation / higher probability of conflicts. The benefit is that local storage is more reliable than rely only on remote system availability. Also some customers doesn't have existing calendars we can connect to. Then setup is much simpler (just signup to our online service).
The latter gives better guarantees of eliminating conflicts, but may be slower / less reliable (when remote system is unavailable for some reason).
We started few weeks ago attempt to integrate with Google Calendar - the interface is pretty well documented. Current option that will probably win is to rely only on remote storage with some data cached locally to make things go faster. Maybe the same approach will be used for MS Exchange (probably CalDAV as transport option).
After making decision to launch online booking service for existing calendars (Google / Microsoft Exchange) it's time to make minimal functionality specification. Then landing page will be prepared to check if the subject catch attendance then MVP to prove basic flows will work as expected.
Glossary:
Customer: calendar owner
Client: wants to book an appointment with customer
Time slot: period of time that can be selected for appointment
MVP Use case list below (will define implementation order and priorities):
Show customer's calendar on a website with available slots
WHY: Proves that we can read existing event source
Allow to book an appointment for selected slot
WHY: Proves that we can write existing event source
Allow customer to register new calendar
WHY: Allow for external tests for potential customers
Allows to set timezone, day of week range, hours range
Optional use case list:
SMS book confirmation
WHY: prevent abuse
Phone number is required from client
SMS code should be entered on confirmation screen to finish booking a visit
SMS notifications
WHY: minimize no-shows
One day before a visit notification SMS is sent
Vacation management by Customer
WHY: block booking for selected days
allow to specify date range for "unavailable" days
Automatic SMS after moving a reservation
WHY: easy change schedule
compares local cache with current calendar state
sends SMS to client and e-mail to customer
Custom SMS messages (with proper character limit check)
WHY: more details (address) in a message
Client cancels appointment
WHY: minimize no-shows
Maybe as easy as sending SMS to some address with confirmation?
Lean methodology is a "production practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination". Lean ideas were moved into Software Development Fields by Marry and Tom Poppendieck. It's interesting how general idea behind "Lean" (originally applied to manufacturing) can be applied for other fields (software development in this case).
Waste of Over-production
Have you ever developed a module that was never used in final product? Or end users weren't using some functionality because it was too complicated? You will probably say "yes" here (like me). How can we eliminate unneeded functionality from specs? How can we validate user interface to ensure a part of a system will be useful before actual build?
We have two opposite options here: prototyping with detailed design (yeah, Waterfall!), and iterative functionality delivery (bye, bye fixed-price contracts, welcome estimated iteration deliverables). The former is better for customer ("my budget is fixed"), the latter for development shop (lower risk of invalid estimates).
Waste of Defects
The Holly Grall of software development methodologies: to limit number of defects. There are many approaches here:
Test-in quality at the end of a whole process (worst case IMHO)
Parallel tests with development (waste of repeated tests)
Automated system-level tests (may be hard to maintain!)
Automated unit-level tests (my choose)
Random DBC-based system level tests (promising ...)
Defect means: slower delivery and it's waste of resources (time, QA time, ...).
Waste of Inventory
Means "Holding inventory (material and information) more than required". Looks like it's missing continuous integration practices. If you working on a topic too long time integration effort might me much bigger than syncing in smaller steps (minimum once a day?). The only problem with frequent syncing might me hitting regression (thus slowing work). But we can handle that by automated testing (see "Defect" above).
Waste of Over-Processing
"Processing more than required wherein a simple approach would have done" tells us we should prefer KISS (Keep It Simple Stupid) over heavy frameworks and complicated (fat) interfaces. In my opinion not the completeness of an interface designates it's quality. Better interfaces are ones that are harder to be used in incorrect way (for example: eliminate default constructor if it does not have sense).
Waste of Transportation
"Movement of items more than required resulting in wasted efforts and energy and adding to cost", in my field possible wastes are:
duplicating bugtrackers within one project - needs syncing in both directions
duplicating version control storage (local SVNs + central Perforce as a real example) - requires syncing methods
submitting code always to more than one branch - is it better to cherry-pick set of commits from branch A to B then retest before submit?
Waste of Waiting
If team A is waiting for team B to produce module that will be used by team A it's a waste of waiting. The solution:
Create draft interfaces
Stub implementations from lower layer
Then upper level modules can be started in parallel with lover level and stubs can be eliminated during integration. Interface will emerge as a result of two processes (A requirements + B possibilities).
Waste of Motion
How many "proxies" do we have for any information flow? Is there a person that just pushes some messages between customer and programmers without added value? Maybe we can make flows shorter (they will be faster and more effective).
Waste of Un-utilized People
Looks very similar to "Waste of waiting". Our work strictly depends on people. We can improve our tools but people will be always be most important in software development activities. Avoid "push"-style, prefer "pull"-style work item assignment.
Modern bug tracking software are not only the bug trackers. There are more features. Typical additional components that are included are:
Wiki systems: to share knowledge
Estimations
Time tracking
I'd like to focus today on time tracking capabilities and compare few mainstream bug trackers: Trac, Redmine, FogBugz, Jira.
Why do I expect time tracking to be included in ticket management system? Some of our project are invoiced by time & materials, so it is useful for a developer (or designer, or tester, ...) to register hours spent on subject in his basic workflow tool (bug tracker).
What functionality do I expect from such time tracking module:
Able to start/stop work on particular issue
Able to fix existing time table (in case of a mistake)
Show total time spent on issue
Compute total time spent on milestone / software component / ... (reporting with aggregations)
Let's review some bugtrackers time tracking abilities then.
Trac
Trac is Python-based ticket tracker well known for his integrated Wiki and extremely powerful queries tool.
We have few options to select from:
TracHours plugin: no start/stop ability, only hour:minutes registration
BudgetingPlugin: no connection with tickets directly, no start/stop
Using custom ticket fields: interface only by commit meesage, no start/stop capability
Redmine, on the other hand, is written in Ruby. It's positioned as biggest Trac competitor. Unlike Trac "batteries are included" in default installation (no need to install additional plugins).
Redmine contains "Log time" option, but there's no start/stop options available:
FogBugz
FogBugz is a commercial, hosted solution used by my customer at the moment.
There's "Working On" menu you can use to start (by selecting an issue) or stop (select "Nothing") time measurement. Very convenient feature. I don't have to track time, just switching current tasks and resulting reports are generated automatically.
Jira
I was using that commercial, hosted, solution in the past for Websphere-based projects management. Probably written in Java.
Also time tracking is included, but without start/stop (is there any plugin for such feature present?).
Summary
Currently I see FogBugz the only viable option for time tracking, however Trac's query language (you can embed queries even in your Wiki page) attracts my attention to Trac. Looks like I will have to write start/stop time tracking plugin for Trac myself. Have I missed any existing plugin with that functionality?
Recent e-mailing fragment from STMicroelectronics:
Dear Dariusz
In our previous notification there was a mistake, the go-live date for
the new web sites should read correctly :
Monday February 18 , 2013 instead of November 18.
We apologize for any inconvenience this might have caused.
Best regards
STMicroelectronics
No comments.
To jest chyba zaraźliwe (e-mail od Freeconet, wzorowali się naSTMicro):
Szanowny Użytkowniku!
Do poprzedniej wiadomości, dotyczącej niższych stawek za połączenia komórkowe, wkradł się błąd związany z datą wprowadzenia obniżki. Zmiana cennika obowiązuje od 10 kwietnia br. (a nie od 10 marca, jak podane było we wcześniejszej wiadomości).
Przepraszamy za pomyłkę,
Wnioski:
1) Czytamy e-maile dwa razy przed wysłaniem, żeby nie musieć potem prostować. Zwłaszcza dotyczy to komunikatów marketingowych do tysięcy klientów.
2) Czytając pierwszy e-mail nawet nie zwróciłem uwagi na błędną datę. Pomyłka raczej oczywista (nie zmienia się zwykle stawek z poprzedniego okresu rozliczeniowego). Ktoś zadecydował, że muszę się o tym fakcie koniecznie dowiedzieć. Kolejny e-mail do przeczytania. Dlaczego? Teraz Freeconet ma na moim blogu darmowa reklamę :-P
Below you will find two sample projects announced on guru.com. First: is hardware-related work, 2nd is a plain database:
Notice the difference in proposals counters. 1st project has no bids as it's:
complicated: real time compression probably will require hardware support thus it requires pretty complicated embedding of H264 encoder on FPGA chip
unpopular: I bet hardware guys are outnumbered by PHP programmers with ratio 1 to 1000
risky: you cannot work on high level of abstraction leaving all the ugly details (OS services, memory management, ...) for lower layers
2nd project has many proposals and I bet there are many talented Hindi specialists that will do the job for 20% of offer you expect to earn. So you will loose with your bid (make no money).
The general idea is to find a niche that is not easy to reach by other software development companies to be able to compete in smaller market. Even if you have brilliant PHP programmers you have to limit your project budget expectations according to 100s others PHP-related companies around, the one with highest quality / cost will win.
The best idea PR guys from PayU might have:
Dear Sir or Madam,
We would like to apologize for the INCORRECT INFORMATION in our last communication.
During the break which will take place on 27 November 2014 from 05:00 am to 05:30 am you could not be able to log in into the system but all transactions WILL BE SETTLED. A message informing about unavailability of the service may be displayed during login attempt.
We are very sorry for the inconvenience and misrepresentation.
Kind regards,
PayU Team
The funny thing is that I haven't got any e-mail on the technical break in the first place.
Nobody likes it. They are boring duty you ought to do after a meeting. What? "Minutes", of course.
By "minutes" I mean: a note from the meeting (or a telco) that should be sent after a call to all participants involved in order to remind what has been agreed on the meeting and what action items are specified and who is responsible for implementation.
Is there a way to make this very useful tool more effective? The answer is: YES!
First of all: lets enumerate expected properties of those "minutes":
easy to write
do not skip/forget anything important
allow to control if every action item has an assignee
Having above properties in mind I've implemented the following process using an online documents solution (Google Docs, to be specific):
I send proposed agenda as online document link to every participants and I allow them to extend it if needed
During the call I (or any participant) add action items and responsible persons to the document. Remember: concurrent editing is fun!
A copy the document is sent after the call in the same e-mail thread as invitation
And now: the previous step delivers your team "minutes"! Voila!
Everyone has R/W access to the document and this is the gag - you can delegate your job to add notes and complete document (including completeness checks) to meeting participants. They enjoy that as they're involved in the meeting flow and the output directly. Nobody is bored.
To speed things up you can add timestamp to each agenda item. Such meeting could never miss allocated time!
Implementation tracking is also easy - you can add ticket tracking ID (Jira, Redmine) to the minutes and assign appropriately.
Sometimes you need to provide encrypted traffic to your site. Besides proper configuration in web server you need to authenticate your server using some publicly trusted certificates, so your customer's browser won't show warnings about untrusted site.
One of the cheapest SSL certificate solution is ssls.com. Let's check their price for 3 year lease:
I used to pay $10 per year in the past for ComodoSSL certificates, this offer seems to cut the usual price in half. Sounds unrealistic? Let's check it!
First step is to add your purchase to the basket:
Then you need to select payment method:
And you proceed to account registration and the payment itself. When you complete payment you can see the following message:
You need to:
pass your CSR file (I've already mentioned how to create that file)
then confirm you are the owner of the domain (typically by responding to special e-mail sent to administering contact of the domain)
and finally install you new *.crt key in the web server
use https://www.sslshopper.com/ssl-checker.html to check if your domain SSL config is OK
If you hit the following warning from SSL checker:
You need to install COMODORSADomainValidationSecureServerCA.crt as ssl.ca-file (SSLCertificateChainFile). After web server restart you should see the following picture:
And finally, manual browser test, just use https:// for your connection. Should be 100% green now.
crosses inter-company and inter cultural boundaries with ease
enjoys working directly with customer and partners (knows that a conf call could be not a boring waste of time, but an effective tool)
is, like me, a "script guy" who automates everything in projects
efficiently uses grep / sed / awk, and the command line in Linux
knows that *.pcap is not another MS Office file format
is willing to analyze the systems source code one has never contributed to
uses many languages (C++ is a must, Java & JavaScript are nice to have)
has Linux embedded background (preferably IPTV)
is able to capture patterns where others see only noise (i.e.: effective scanning of gigabytes of log files)
learns new things in real time
owns "sixth sense" to reduce the entropy in IT projects
... then:
... in Warsaw office (Poland), for big, international, IPTV project.
My team makes things happen by:
analysis of stream of bugs effectively
introducing automation
improving development processes and flows
squeezing everything possible (and more) from existing build systems
pro-actively tracks and improves project health by (guess what?) AUTOMATION!!!
If you match the profile highlighted above do not hesitate to contact me via Skype: cieslakd or by e-mail: dariusz.cieslak at schange.com. I'll be glad to share more details about the position.