To have a more flexible easy to set-up, and reliable platform for simple websites, Red Green Refactor explores moving to the next level with its use of WordPress blog engine. Now as we already have our first tiny little plugin WP-Markdown-Code-Highlighting-Options (soon to be published to the WordPress repository) we start exploring building our own Themes in WordPress. It means we are getting a bit more serious about WordPress and this means we need a bit more quality. That – in turn – means we would like to be able to test our WordPress sites locally and off-line.
Again, some things from Apple could be done easier…here is the story.
Problem: Your iPhone app needs to talk to a web app which responds only over SSL (so you have to use https url scheme). In testing, you do not want to use the real service, because sometimes it costs you money, and, well, it just does not seem right. Of course you may create a server that responds on http and then use that instead of using secure connection, but it would mean you will have change your app just before releasing it. The same would happen if you follow some of the answers posted to this StackOverflow question where many advise disabling certificate verification programmatically when your app is still in development. All right, maybe you do not release your app after every single build, but still you give it to testers and so on. And while forgetting changing
http back to
https would just make your app rejected, forgetting to turn on certificated verification is opening your app to man-in-the-middle (my favorite) attack. I was searching desperately to some good quick but elegant solution to this problem. Fortunately, on the StackOverflow topic mentioned above I found some very helpful clue.
There are at least three very important sources of information:
Having said that, here some additional hints.
- It does not really matter if you use schemes with workspaces (or without workspaces) or you decide to use targets. Both will work just fine.
- iPhone Simulator will start regardless of the kind of testing you are doing. It will start with logic tests and it will start with application tests. The difference is that with logic tests it does not run your app and so you have no access to the application object. Also, the simulator window will not be brought to the foreground when running logic tests – therefore it will not be disruptive – just do not kill the simulator after each run, and then you will hardly notice its presence.
- Logic Tests are naturally supported from the command line. For Application Tests you will have to do something extra.
Working Agile changed my live. And I was excited when my employee agreed to pay €1700,– for my Certified ScrumMaster training with Jeff Sutherland. After the training I took the evaluation as well. Was it all worth it ? No. At the moment I applied for a training I knew all the stuff such a training is capable to deliver. So it was not worth money spent. It was nice to shake Jeff Sutherland’s hand but that’s it.
As Scrum Guide says: Scrum is easy to understand and extremely hard to master. A training is only about understanding the basics and establishing common vocabulary. Do we really need to be certified as Scrum professionals then ? I am not sure. I would rather suggest that we change our approach to hiring rather than looking at the CSM in front of the candidate’s name as a pre-requisite. Introducing certification can make a feeling that Scrum is yet another prescriptive project management approach like Prince2, RUP, or DSDM. And Scrum is not one. It is not enough to follow the steps, it is not enough to understand what the roles and artefacts are. Unfortunately, organisations are mislead or the point is not being made strong enough. Scrum is not a defined process, it is an empirical process framework for complex products. Having 100 CSM’s by the end of the year will not make you agile. Making sure people understand that is one of the objective of a good Scrum training. Make sure people see the difference.
Would you believe that in Scrum Alliance one could become a Certified ScrumMaster without actually passing any evaluation ? Following just a training was all you needed still in 2009. Since the end of 2009 one needs to approach a so called “pass-fail” evaluation (even if you fail, you pass) to earn the certificate. Scrum.org wants you to pay $100,- for an evaluation but at least you do not need to follow a training (it is up to you).
Evaluations seem to be a necessity if you want to certify people – otherwise what does the certificate mean – you may have slept through the whole training. An evaluation, however, will never be able to check how far you are with Scrum, how advanced you are. Not because it is hard to test, it is because it is impossible to test. When it (the evaluation) tries to go beyond the rules (and only rules can be captured in the multiple choice questions) then it becomes tricky and one has to resort to those pass-fail evaluations and surveys to check if it has not became too complex (a high failure rate endangers the certification body’s business).
Still trainings are good to build the common vocabulary, and tell you why, and when, a give you a kick to leave your comfort zone. Evaluations are good to see if you know the basics or even some intermediate concepts or scenarios. But, do we really need to have authority for such an evaluation ? Especially, shall we pay for it ? I have mixed feelings: 1) it seems that they motivate people to prepare, but 2) what do you need to prepare for ? Scrum is a trivial framework with just 3 roles and a couple of artefacts. As hinted above, a checklist cannot check how good your understanding of Scrum is, it can only trigger some thinking or cause some improvement actions and as such maybe we do not need any official to guard it. Maybe community can do the job. Are we afraid of anarchy ? Linked-in discussions are doing well and answer way more questions than Scrum Alliance Certified Trainer can. There are more enthusiastic practitioners out there than Scrum Alliance and Scrum.org can hire – and experiences can only be shared as they cannot be taken as rules.
Don’t you end-up in a trap, thinking that 100 CSMs by the end of the year will make you agile. Think and learn: continuously, if that’s not obvious .
Google’s missions is to “organize the world’s information and make it universally accessible and useful”.
A couple of days ago I received a promotional coupon from Google (The Netherlands) for €75,–.
Wow, I said to myself, they found out that I just stopped temporarily my AdWords campaign and want me to start it again ! Isn’t it beautiful ? I though, God must using Google to help my business growing. Then I opened the enveloped and there you find:
De promotie code kan alleen worden gebruikt voor nieuwe AdWords-accounts, die niet ouder zijn dan 14 dagen.
The promotional code can be only used for new AdWords-accounts that are not older than 14 days.
Isn’t it humiliating for an organisation with so inspirational mission statement to be so unprofessional ? Should we expect Google to check if potential customer happened to have a Google AdWords-account before sending an offer bound to cause disappointment ? I think the answer is yes.
It is certainly harder to do than to say, but making sure you company image is integral with your company actions is important.
Do we need to improve on our soft-skills ? Sure, but first things first. The question can be compared to “does it make sense to track the test coverage ?”. You can have great test-coverage and yet have garbage tests and even worse code. Similarly, soft skills won’t guarantee your team is not dysfunctional. Soft skills will help but as with test coverage, you have to start from the right direction.
Organizations too frequently believe soft-skills is panacea to all their team dynamics problems. We send developers for a training and we are good – now they should work better. Rather than deodorizing themselves, organizations should first focus on their organizational structure and then their hiring procedures. Rather than blindly scanning CVs or listing meaningless “desired competences” they should focus on 1) making sure that they have teams that can grow together for sufficiently long time , and then 2) make sure they hire the person that the team needs. Soft skills can prevent some problems but they are insufficient to grow hyper-productive teams. Many HR managers or hiring consultants are fooling developers with personality tests without even seeing one successful long-lasting team in their live – a team where developers can flourish. Developer thinks that organization cares about people but when they need 1/2 FTE in another project they shift people like machines (human resources ). Whatever good soft-skills you have, you need at least a couple of weeks and sometimes more than two months for people to align, understand each others, and start liking each others, so that they can be open, respectful, and stop lying. It takes time to grow interactions. In the Netherlands we have very insufficient data sharing model that tends to move people around without thinking. It is good to have a pool of experts – it is really great – the problem is that whole teams are created ad-hoc. I also do not like that data sharing organizations are fooling developers saying that they will work in an agile way meaning actually that they want their experts to know how to behave when they happen to be “placed” in an agile team. These are not the same things! It may come from the fact that (data sharing) organizations usually have no well-established idea what agile means and sometimes they – even openly – say to the candidate that every team has is own definition of what Scrum actually is. Great start.
Agile Manifesto emphasizes the role of individuals and interactions. You want to have the team rather than a group of individuals sitting together. The difference is huge and worth fighting for. If you want your team to be hyper-productive you have to start respecting people and make anything you can to make your developers happy so that they love (yes love not just like) coming to work. The last thing you want is to have an ad-hoc set of people with 9-17 mentality, who are just making their money.
Most of us: engineers, developers, programmers, or even coders as we are often called, were a subject of a job interview – sometimes a hard one taking 2 days or more. How often you, the programmer felt cheated. And they – the organizations – they know they have to advertise themselves as being Agile or that they do Scrum, or they won’t get the best. They say they want you to do Continuous Integration and practice TDD. They say they want to have fast feedback and continuous customer involvement, and – they say – they want a high quality defect-free code. And then when you start working you realize it is not the case ! No customer involvement at all, no Scrum Master, no Product Owner, and…well…yes: terrible lack of engineering practices. It is nice to talk about them, it is harder to implement them. These organizations are selling themselves as being Agile but are not.
I am wondering, is there a place where developers can find a list of organizations that can somehow prove themselves as being good eXtreme Programming organizations: organizations that take engineering practices seriously. That take software engineering seriously. That understand that programming is a creative process – more – it’s an art ! If you are like me – you think that software engineering is an art – you won’t let yourself to work at a crappy place, where people hack rather than do proper engineering.
I could not find any place where developers can find testimonies of good organizations that are living the agile manifesto. I could not find any regulatory. Now I am also training people, but I am proud being an engineer. And I hate wasting time on interviews in places where they do not know how to write software and they do not have any passion, haven’t read a book since they left school, and give no crap about doing their job right.
We loose many people on the field. Many are frustrated and disappointed because their boss is not letting them doing their job right. We loose lot’s of talented, skilled people, eager to learn. We need to save them.
Are you an eXtreme Programming organization ? I would like to know. I would like let other developers to know. Let do something about it !
Recently, I spent some quality time trying to figure out what would be the cheapest yet solid testing infrastructure for iOS and possibly Mac OS X (Lion). I was intimidated how immature is the tool support from Apple when it comes to continuous integration. Probably the most obvious thing about Continuous Integration is that one must be able to run the tools from the command line. I am pretty sure Apple does have automated acceptance tests (otherwise, looking at reasonable quality of their products, I would conclude that automated acceptance testing has no value at all) they just do not say complete truth (are they lying ?) saying they give to developers the same tools they are using. So although Xcode has its command line equivalent (xcodebuild), it is very limited – you can build, and even (after fixing some scripts) run the tests, but forget about running the production code on the simulator or the device. How can we get Continuous Integration working for iOS, if we cannot easily run their stuff from the command line ? The short answer is, we can, but it will require some creativity and maybe a bit of common sense.
openview LABS! just published a free book about retrospectives: Get Better Faster: Ultimate Guide to Practicing Retrospectives. You can get the book by registering to openview LABS! newsletter by using the link above.
Note: The book reads badly on Kindle. It seems to be a standard PDF file with the formatting meant to look good not to read good. If you have any solution to this problem let me know. I am reading on Kindle.